- Added missing drbg_nopr_sha1 and rfc4106(gcm(aes)) self-test
- Manually fixed below patches due to cherry-pick failure
0002-FIPS-canister-creation.patch
0007-crypto-Remove-EXPORT_SYMBOL-EXPORT_SYMBOL_GPL-from-c.patch
Change-Id: Ia73744d1ac55322df2f06cae9d04ce100fb9d9a7
Signed-off-by: Keerthana K <keerthanak@vmware.com>
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/c/photon/+/22237
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Alexey Makhalov <amakhalov@vmware.com>
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/c/photon/+/22530
Reviewed-by: Keerthana K <keerthana.kalyanasundaram@broadcom.com>
Tested-by: Keerthana K <keerthana.kalyanasundaram@broadcom.com>
| ... | ... |
@@ -66,6 +66,7 @@ |
| 66 | 66 |
#include <crypto/sha1_base.h> |
| 67 | 67 |
#include <crypto/sha512_base.h> |
| 68 | 68 |
#include <crypto/sha3.h> |
| 69 |
+#include <crypto/internal/geniv.h> |
|
| 69 | 70 |
|
| 70 | 71 |
static __ro_after_init bool alg_request_report = false; |
| 71 | 72 |
|
| ... | ... |
@@ -611,4 +612,7 @@ EXPORT_SYMBOL(sha256); |
| 611 | 611 |
EXPORT_SYMBOL(crypto_sha3_init); |
| 612 | 612 |
EXPORT_SYMBOL(crypto_sha3_update); |
| 613 | 613 |
EXPORT_SYMBOL(crypto_sha3_final); |
| 614 |
+EXPORT_SYMBOL_GPL(aead_geniv_alloc); |
|
| 615 |
+EXPORT_SYMBOL_GPL(aead_init_geniv); |
|
| 616 |
+EXPORT_SYMBOL_GPL(aead_exit_geniv); |
|
| 614 | 617 |
/* End of Exports */ |
| ... | ... |
@@ -23,7 +23,7 @@ Signed-off-by: Keerthana K <keerthanak@vmware.com> |
| 23 | 23 |
Signed-off-by: Vamsi Krishna Brahmajosyula <vbrahmajosyula@vmware.com> |
| 24 | 24 |
--- |
| 25 | 25 |
arch/x86/crypto/aesni-intel_glue.c | 73 ++++++++++--------- |
| 26 |
- crypto/Makefile | 84 ++++++++++++++++++++++ |
|
| 26 |
+ crypto/Makefile | 86 +++++++++++++++++++++++ |
|
| 27 | 27 |
crypto/algboss.c | 5 +- |
| 28 | 28 |
crypto/ccm.c | 7 +- |
| 29 | 29 |
crypto/cmac.c | 3 +- |
| ... | ... |
@@ -36,10 +36,11 @@ Signed-off-by: Vamsi Krishna Brahmajosyula <vbrahmajosyula@vmware.com> |
| 36 | 36 |
crypto/gcm.c | 11 +-- |
| 37 | 37 |
crypto/hmac.c | 3 +- |
| 38 | 38 |
crypto/rsa-pkcs1pad.c | 13 ++-- |
| 39 |
+ crypto/sha3_generic.c | 5 +- |
|
| 39 | 40 |
crypto/testmgr.c | 108 ++++++++++++++++------------- |
| 40 | 41 |
crypto/xts.c | 3 +- |
| 41 | 42 |
include/crypto/drbg.h | 3 +- |
| 42 |
- 17 files changed, 252 insertions(+), 130 deletions(-) |
|
| 43 |
+ 18 files changed, 257 insertions(+), 132 deletions(-) |
|
| 43 | 44 |
|
| 44 | 45 |
diff --git a/arch/x86/crypto/aesni-intel_glue.c b/arch/x86/crypto/aesni-intel_glue.c |
| 45 | 46 |
index a5b0cb3ef..10420b2aa 100644 |
| ... | ... |
@@ -321,10 +322,21 @@ index a5b0cb3ef..10420b2aa 100644 |
| 321 | 321 |
err = skcipher_walk_done(&walk, 0); |
| 322 | 322 |
} |
| 323 | 323 |
diff --git a/crypto/Makefile b/crypto/Makefile |
| 324 |
-index 1c6775c9a..7f7957e8f 100644 |
|
| 324 |
+index 19bf4080d..d3df694c0 100644 |
|
| 325 | 325 |
--- a/crypto/Makefile |
| 326 | 326 |
+++ b/crypto/Makefile |
| 327 |
-@@ -44,6 +44,7 @@ rsa_generic-y += rsaprivkey.asn1.o |
|
| 327 |
+@@ -18,8 +18,10 @@ crypto_algapi-y := algapi.o scatterwalk.o $(crypto_algapi-y) |
|
| 328 |
+ obj-$(CONFIG_CRYPTO_ALGAPI2) += crypto_algapi.o |
|
| 329 |
+ |
|
| 330 |
+ obj-$(CONFIG_CRYPTO_AEAD2) += aead.o |
|
| 331 |
++canister += geniv.o |
|
| 332 |
+ |
|
| 333 |
+ obj-$(CONFIG_CRYPTO_SKCIPHER2) += skcipher.o |
|
| 334 |
++canister += seqiv.o |
|
| 335 |
+ obj-$(CONFIG_CRYPTO_ECHAINIV) += echainiv.o |
|
| 336 |
+ |
|
| 337 |
+ crypto_hash-y += ahash.o |
|
| 338 |
+@@ -42,6 +44,7 @@ rsa_generic-y += rsaprivkey.asn1.o |
|
| 328 | 339 |
rsa_generic-y += rsa.o |
| 329 | 340 |
rsa_generic-y += rsa_helper.o |
| 330 | 341 |
rsa_generic-y += rsa-pkcs1pad.o |
| ... | ... |
@@ -332,7 +344,7 @@ index 1c6775c9a..7f7957e8f 100644 |
| 332 | 332 |
|
| 333 | 333 |
$(obj)/sm2signature.asn1.o: $(obj)/sm2signature.asn1.c $(obj)/sm2signature.asn1.h |
| 334 | 334 |
$(obj)/sm2.o: $(obj)/sm2signature.asn1.h |
| 335 |
-@@ -57,22 +58,30 @@ $(obj)/ecdsasignature.asn1.o: $(obj)/ecdsasignature.asn1.c $(obj)/ecdsasignature |
|
| 335 |
+@@ -55,22 +58,30 @@ $(obj)/ecdsasignature.asn1.o: $(obj)/ecdsasignature.asn1.c $(obj)/ecdsasignature |
|
| 336 | 336 |
$(obj)/ecdsa.o: $(obj)/ecdsasignature.asn1.h |
| 337 | 337 |
ecdsa_generic-y += ecdsa.o |
| 338 | 338 |
ecdsa_generic-y += ecdsasignature.asn1.o |
| ... | ... |
@@ -363,7 +375,7 @@ index 1c6775c9a..7f7957e8f 100644 |
| 363 | 363 |
obj-$(CONFIG_CRYPTO_SM3) += sm3.o |
| 364 | 364 |
obj-$(CONFIG_CRYPTO_SM3_GENERIC) += sm3_generic.o |
| 365 | 365 |
obj-$(CONFIG_CRYPTO_STREEBOG) += streebog_generic.o |
| 366 |
-@@ -81,13 +90,21 @@ CFLAGS_wp512.o := $(call cc-option,-fno-schedule-insns) # https://gcc.gnu.org/b |
|
| 366 |
+@@ -79,13 +90,21 @@ CFLAGS_wp512.o := $(call cc-option,-fno-schedule-insns) # https://gcc.gnu.org/b |
|
| 367 | 367 |
obj-$(CONFIG_CRYPTO_BLAKE2B) += blake2b_generic.o |
| 368 | 368 |
CFLAGS_blake2b_generic.o := -Wframe-larger-than=4096 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105930 |
| 369 | 369 |
obj-$(CONFIG_CRYPTO_GF128MUL) += gf128mul.o |
| ... | ... |
@@ -385,7 +397,7 @@ index 1c6775c9a..7f7957e8f 100644 |
| 385 | 385 |
obj-$(CONFIG_CRYPTO_CHACHA20POLY1305) += chacha20poly1305.o |
| 386 | 386 |
obj-$(CONFIG_CRYPTO_AEGIS128) += aegis128.o |
| 387 | 387 |
aegis128-y := aegis128-core.o |
| 388 |
-@@ -122,6 +139,7 @@ obj-$(CONFIG_CRYPTO_TWOFISH) += twofish_generic.o |
|
| 388 |
+@@ -120,6 +139,7 @@ obj-$(CONFIG_CRYPTO_TWOFISH) += twofish_generic.o |
|
| 389 | 389 |
obj-$(CONFIG_CRYPTO_TWOFISH_COMMON) += twofish_common.o |
| 390 | 390 |
obj-$(CONFIG_CRYPTO_SERPENT) += serpent_generic.o |
| 391 | 391 |
CFLAGS_serpent_generic.o := $(call cc-option,-fsched-pressure) # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79149 |
| ... | ... |
@@ -393,7 +405,7 @@ index 1c6775c9a..7f7957e8f 100644 |
| 393 | 393 |
CFLAGS_aes_generic.o := $(call cc-option,-fno-code-hoisting) # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83356 |
| 394 | 394 |
obj-$(CONFIG_CRYPTO_SM4) += sm4.o |
| 395 | 395 |
obj-$(CONFIG_CRYPTO_SM4_GENERIC) += sm4_generic.o |
| 396 |
-@@ -165,11 +183,14 @@ obj-$(CONFIG_CRYPTO_USER_API_RNG) += algif_rng.o |
|
| 396 |
+@@ -163,11 +183,14 @@ obj-$(CONFIG_CRYPTO_USER_API_RNG) += algif_rng.o |
|
| 397 | 397 |
obj-$(CONFIG_CRYPTO_USER_API_AEAD) += algif_aead.o |
| 398 | 398 |
obj-$(CONFIG_CRYPTO_ZSTD) += zstd.o |
| 399 | 399 |
obj-$(CONFIG_CRYPTO_OFB) += ofb.o |
| ... | ... |
@@ -408,7 +420,7 @@ index 1c6775c9a..7f7957e8f 100644 |
| 408 | 408 |
|
| 409 | 409 |
$(obj)/ecrdsa_params.asn1.o: $(obj)/ecrdsa_params.asn1.c $(obj)/ecrdsa_params.asn1.h |
| 410 | 410 |
$(obj)/ecrdsa_pub_key.asn1.o: $(obj)/ecrdsa_pub_key.asn1.c $(obj)/ecrdsa_pub_key.asn1.h |
| 411 |
-@@ -193,6 +214,69 @@ obj-$(CONFIG_CRYPTO_SIMD) += crypto_simd.o |
|
| 411 |
+@@ -191,6 +214,69 @@ obj-$(CONFIG_CRYPTO_SIMD) += crypto_simd.o |
|
| 412 | 412 |
# Key derivation function |
| 413 | 413 |
# |
| 414 | 414 |
obj-$(CONFIG_CRYPTO_KDF800108_CTR) += kdf_sp800108.o |
| ... | ... |
@@ -1005,9 +1017,39 @@ index 1cf267bc6..e3a77b398 100644 |
| 1005 | 1005 |
+ inst = fcw_kzalloc(sizeof(*inst) + sizeof(*ctx), GFP_KERNEL); |
| 1006 | 1006 |
if (!inst) |
| 1007 | 1007 |
return -ENOMEM; |
| 1008 |
+ |
|
| 1009 |
+diff --git a/crypto/sha3_generic.c b/crypto/sha3_generic.c |
|
| 1010 |
+index 3e4069935..7d107460b 100644 |
|
| 1011 |
+--- a/crypto/sha3_generic.c |
|
| 1012 |
+@@ -14,6 +14,7 @@ |
|
| 1013 |
+ #include <linux/types.h> |
|
| 1014 |
+ #include <crypto/sha3.h> |
|
| 1015 |
+ #include <asm/unaligned.h> |
|
| 1016 |
++#include "fips_canister_wrapper.h" |
|
| 1008 | 1017 |
|
| 1018 |
+ /* |
|
| 1019 |
+ * On some 32-bit architectures (h8300), GCC ends up using |
|
| 1020 |
+@@ -185,7 +186,7 @@ int crypto_sha3_update(struct shash_desc *desc, const u8 *data, |
|
| 1021 |
+ if ((sctx->partial + len) > (sctx->rsiz - 1)) {
|
|
| 1022 |
+ if (sctx->partial) {
|
|
| 1023 |
+ done = -sctx->partial; |
|
| 1024 |
+- memcpy(sctx->buf + sctx->partial, data, |
|
| 1025 |
++ fcw_memcpy(sctx->buf + sctx->partial, data, |
|
| 1026 |
+ done + sctx->rsiz); |
|
| 1027 |
+ src = sctx->buf; |
|
| 1028 |
+ } |
|
| 1029 |
+@@ -203,7 +204,7 @@ int crypto_sha3_update(struct shash_desc *desc, const u8 *data, |
|
| 1030 |
+ |
|
| 1031 |
+ sctx->partial = 0; |
|
| 1032 |
+ } |
|
| 1033 |
+- memcpy(sctx->buf + sctx->partial, src, len - done); |
|
| 1034 |
++ fcw_memcpy(sctx->buf + sctx->partial, src, len - done); |
|
| 1035 |
+ sctx->partial += (len - done); |
|
| 1036 |
+ |
|
| 1037 |
+ return 0; |
|
| 1009 | 1038 |
diff --git a/crypto/testmgr.c b/crypto/testmgr.c |
| 1010 |
-index 5e4be63ba..5fb27ae33 100644 |
|
| 1039 |
+index af31ff549..322f40897 100644 |
|
| 1011 | 1040 |
--- a/crypto/testmgr.c |
| 1012 | 1041 |
+++ b/crypto/testmgr.c |
| 1013 | 1042 |
@@ -37,6 +37,7 @@ |
| ... | ... |
@@ -1339,7 +1381,7 @@ index 5e4be63ba..5fb27ae33 100644 |
| 1339 | 1339 |
if (!output_buf) {
|
| 1340 | 1340 |
err = -ENOMEM; |
| 1341 | 1341 |
goto free_req; |
| 1342 |
-@@ -4083,13 +4084,13 @@ static int test_akcipher_one(struct crypto_akcipher *tfm, |
|
| 1342 |
+@@ -4085,13 +4086,13 @@ static int test_akcipher_one(struct crypto_akcipher *tfm, |
|
| 1343 | 1343 |
if (testmgr_alloc_buf(xbuf)) |
| 1344 | 1344 |
return err; |
| 1345 | 1345 |
|
| ... | ... |
@@ -1355,7 +1397,7 @@ index 5e4be63ba..5fb27ae33 100644 |
| 1355 | 1355 |
GFP_KERNEL); |
| 1356 | 1356 |
if (!key) |
| 1357 | 1357 |
goto free_req; |
| 1358 |
-@@ -4112,7 +4113,7 @@ static int test_akcipher_one(struct crypto_akcipher *tfm, |
|
| 1358 |
+@@ -4114,7 +4115,7 @@ static int test_akcipher_one(struct crypto_akcipher *tfm, |
|
| 1359 | 1359 |
*/ |
| 1360 | 1360 |
err = -ENOMEM; |
| 1361 | 1361 |
out_len_max = crypto_akcipher_maxsize(tfm); |
| ... | ... |
@@ -1364,7 +1406,7 @@ index 5e4be63ba..5fb27ae33 100644 |
| 1364 | 1364 |
if (!outbuf_enc) |
| 1365 | 1365 |
goto free_key; |
| 1366 | 1366 |
|
| 1367 |
-@@ -4189,7 +4190,7 @@ static int test_akcipher_one(struct crypto_akcipher *tfm, |
|
| 1367 |
+@@ -4191,7 +4192,7 @@ static int test_akcipher_one(struct crypto_akcipher *tfm, |
|
| 1368 | 1368 |
err = 0; |
| 1369 | 1369 |
goto free_all; |
| 1370 | 1370 |
} |
| ... | ... |
@@ -1373,7 +1415,7 @@ index 5e4be63ba..5fb27ae33 100644 |
| 1373 | 1373 |
if (!outbuf_dec) {
|
| 1374 | 1374 |
err = -ENOMEM; |
| 1375 | 1375 |
goto free_all; |
| 1376 |
-@@ -5885,13 +5886,22 @@ int alg_test(const char *driver, const char *alg, u32 type, u32 mask) |
|
| 1376 |
+@@ -5906,13 +5907,22 @@ int alg_test(const char *driver, const char *alg, u32 type, u32 mask) |
|
| 1377 | 1377 |
int i; |
| 1378 | 1378 |
int j; |
| 1379 | 1379 |
int rc; |
| ... | ... |
@@ -1398,7 +1440,7 @@ index 5e4be63ba..5fb27ae33 100644 |
| 1398 | 1398 |
if ((type & CRYPTO_ALG_TYPE_MASK) == CRYPTO_ALG_TYPE_CIPHER) {
|
| 1399 | 1399 |
char nalg[CRYPTO_MAX_ALG_NAME]; |
| 1400 | 1400 |
diff --git a/crypto/xts.c b/crypto/xts.c |
| 1401 |
-index de6cbcf69..f548992c2 100644 |
|
| 1401 |
+index b05020657..7c926f7bb 100644 |
|
| 1402 | 1402 |
--- a/crypto/xts.c |
| 1403 | 1403 |
+++ b/crypto/xts.c |
| 1404 | 1404 |
@@ -20,6 +20,7 @@ |
| ... | ... |
@@ -23,12 +23,12 @@ Signed-off-by: Srish Srinivasan <ssrish@vmware.com> |
| 23 | 23 |
crypto/gcm.c | 26 +++---- |
| 24 | 24 |
crypto/hmac.c | 4 +- |
| 25 | 25 |
crypto/rsa-pkcs1pad.c | 6 +- |
| 26 |
+ crypto/seqiv.c | 3 +- |
|
| 26 | 27 |
crypto/sha1_generic.c | 5 +- |
| 27 | 28 |
crypto/sha512_generic.c | 5 +- |
| 28 | 29 |
crypto/testmgr.c | 110 ++++++++++++++--------------- |
| 29 |
- crypto/xts.c | 2 +- |
|
| 30 | 30 |
lib/crypto/sha256.c | 10 +++ |
| 31 |
- 22 files changed, 176 insertions(+), 161 deletions(-) |
|
| 31 |
+ 22 files changed, 177 insertions(+), 161 deletions(-) |
|
| 32 | 32 |
|
| 33 | 33 |
diff --git a/arch/x86/crypto/aesni-intel_glue.c b/arch/x86/crypto/aesni-intel_glue.c |
| 34 | 34 |
index 0628c2bca..6a4378bac 100644 |
| ... | ... |
@@ -867,7 +867,7 @@ index 7c289df3b..b3e099505 100644 |
| 867 | 867 |
for (i = 0; i < bs; i++) {
|
| 868 | 868 |
ipad[i] ^= HMAC_IPAD_VALUE; |
| 869 | 869 |
diff --git a/crypto/rsa-pkcs1pad.c b/crypto/rsa-pkcs1pad.c |
| 870 |
-index 1c9d29552..ab144392a 100644 |
|
| 870 |
+index e3a77b398..f8983636f 100644 |
|
| 871 | 871 |
--- a/crypto/rsa-pkcs1pad.c |
| 872 | 872 |
+++ b/crypto/rsa-pkcs1pad.c |
| 873 | 873 |
@@ -166,7 +166,7 @@ static void pkcs1pad_sg_set_buf(struct scatterlist *sg, void *buf, size_t len, |
| ... | ... |
@@ -897,6 +897,27 @@ index 1c9d29552..ab144392a 100644 |
| 897 | 897 |
!ctx->key_size || sig_size != ctx->key_size) |
| 898 | 898 |
return -EINVAL; |
| 899 | 899 |
|
| 900 |
+diff --git a/crypto/seqiv.c b/crypto/seqiv.c |
|
| 901 |
+index b1bcfe537..c593c2947 100644 |
|
| 902 |
+--- a/crypto/seqiv.c |
|
| 903 |
+@@ -17,6 +17,7 @@ |
|
| 904 |
+ #include <linux/module.h> |
|
| 905 |
+ #include <linux/slab.h> |
|
| 906 |
+ #include <linux/string.h> |
|
| 907 |
++#include "fips_canister_wrapper.h" |
|
| 908 |
+ |
|
| 909 |
+ static void seqiv_aead_encrypt_complete2(struct aead_request *req, int err) |
|
| 910 |
+ {
|
|
| 911 |
+@@ -30,7 +31,7 @@ static void seqiv_aead_encrypt_complete2(struct aead_request *req, int err) |
|
| 912 |
+ goto out; |
|
| 913 |
+ |
|
| 914 |
+ geniv = crypto_aead_reqtfm(req); |
|
| 915 |
+- memcpy(req->iv, subreq->iv, crypto_aead_ivsize(geniv)); |
|
| 916 |
++ fcw_memcpy(req->iv, subreq->iv, crypto_aead_ivsize(geniv)); |
|
| 917 |
+ |
|
| 918 |
+ out: |
|
| 919 |
+ kfree_sensitive(subreq->iv); |
|
| 900 | 920 |
diff --git a/crypto/sha1_generic.c b/crypto/sha1_generic.c |
| 901 | 921 |
index 325b57fe2..193345133 100644 |
| 902 | 922 |
--- a/crypto/sha1_generic.c |
| ... | ... |
@@ -958,7 +979,7 @@ index be70e76d6..07e27910c 100644 |
| 958 | 958 |
} |
| 959 | 959 |
EXPORT_SYMBOL(crypto_sha512_finup); |
| 960 | 960 |
diff --git a/crypto/testmgr.c b/crypto/testmgr.c |
| 961 |
-index 783c006d0..7899ab3cd 100644 |
|
| 961 |
+index 322f40897..22f4ec725 100644 |
|
| 962 | 962 |
--- a/crypto/testmgr.c |
| 963 | 963 |
+++ b/crypto/testmgr.c |
| 964 | 964 |
@@ -587,7 +587,7 @@ static int build_test_sglist(struct test_sglist *tsgl, |
| ... | ... |
@@ -1191,7 +1212,7 @@ index 783c006d0..7899ab3cd 100644 |
| 1191 | 1191 |
template[i].dt, template[i].dtlen); |
| 1192 | 1192 |
|
| 1193 | 1193 |
err = crypto_rng_reset(tfm, seed, seedsize); |
| 1194 |
-@@ -3929,14 +3929,14 @@ static int do_test_kpp(struct crypto_kpp *tfm, const struct kpp_testvec *vec, |
|
| 1194 |
+@@ -3930,14 +3930,14 @@ static int do_test_kpp(struct crypto_kpp *tfm, const struct kpp_testvec *vec, |
|
| 1195 | 1195 |
|
| 1196 | 1196 |
if (vec->genkey) {
|
| 1197 | 1197 |
/* Save party A's public key */ |
| ... | ... |
@@ -1208,7 +1229,7 @@ index 783c006d0..7899ab3cd 100644 |
| 1208 | 1208 |
vec->expected_a_public_size)) {
|
| 1209 | 1209 |
pr_err("alg: %s: Party A: generate public key test failed. Invalid output\n",
|
| 1210 | 1210 |
alg); |
| 1211 |
-@@ -3967,7 +3967,7 @@ static int do_test_kpp(struct crypto_kpp *tfm, const struct kpp_testvec *vec, |
|
| 1211 |
+@@ -3969,7 +3969,7 @@ static int do_test_kpp(struct crypto_kpp *tfm, const struct kpp_testvec *vec, |
|
| 1212 | 1212 |
|
| 1213 | 1213 |
if (vec->genkey) {
|
| 1214 | 1214 |
/* Save the shared secret obtained by party A */ |
| ... | ... |
@@ -1217,7 +1238,7 @@ index 783c006d0..7899ab3cd 100644 |
| 1217 | 1217 |
if (!a_ss) {
|
| 1218 | 1218 |
err = -ENOMEM; |
| 1219 | 1219 |
goto free_all; |
| 1220 |
-@@ -4005,7 +4005,7 @@ static int do_test_kpp(struct crypto_kpp *tfm, const struct kpp_testvec *vec, |
|
| 1220 |
+@@ -4007,7 +4007,7 @@ static int do_test_kpp(struct crypto_kpp *tfm, const struct kpp_testvec *vec, |
|
| 1221 | 1221 |
* verify shared secret from which the user will derive |
| 1222 | 1222 |
* secret key by executing whatever hash it has chosen |
| 1223 | 1223 |
*/ |
| ... | ... |
@@ -1226,7 +1247,7 @@ index 783c006d0..7899ab3cd 100644 |
| 1226 | 1226 |
vec->expected_ss_size)) {
|
| 1227 | 1227 |
pr_err("alg: %s: compute shared secret test failed. Invalid output\n",
|
| 1228 | 1228 |
alg); |
| 1229 |
-@@ -4061,7 +4061,7 @@ static int alg_test_kpp(const struct alg_test_desc *desc, const char *driver, |
|
| 1229 |
+@@ -4063,7 +4063,7 @@ static int alg_test_kpp(const struct alg_test_desc *desc, const char *driver, |
|
| 1230 | 1230 |
|
| 1231 | 1231 |
static u8 *test_pack_u32(u8 *dst, u32 val) |
| 1232 | 1232 |
{
|
| ... | ... |
@@ -1235,7 +1256,7 @@ index 783c006d0..7899ab3cd 100644 |
| 1235 | 1235 |
return dst + sizeof(val); |
| 1236 | 1236 |
} |
| 1237 | 1237 |
|
| 1238 |
-@@ -4094,11 +4094,11 @@ static int test_akcipher_one(struct crypto_akcipher *tfm, |
|
| 1238 |
+@@ -4096,11 +4096,11 @@ static int test_akcipher_one(struct crypto_akcipher *tfm, |
|
| 1239 | 1239 |
GFP_KERNEL); |
| 1240 | 1240 |
if (!key) |
| 1241 | 1241 |
goto free_req; |
| ... | ... |
@@ -1249,7 +1270,7 @@ index 783c006d0..7899ab3cd 100644 |
| 1249 | 1249 |
|
| 1250 | 1250 |
if (vecs->public_key_vec) |
| 1251 | 1251 |
err = crypto_akcipher_set_pub_key(tfm, key, vecs->key_len); |
| 1252 |
-@@ -4135,18 +4135,18 @@ static int test_akcipher_one(struct crypto_akcipher *tfm, |
|
| 1252 |
+@@ -4137,18 +4137,18 @@ static int test_akcipher_one(struct crypto_akcipher *tfm, |
|
| 1253 | 1253 |
} |
| 1254 | 1254 |
|
| 1255 | 1255 |
err = -E2BIG; |
| ... | ... |
@@ -1275,7 +1296,7 @@ index 783c006d0..7899ab3cd 100644 |
| 1275 | 1275 |
akcipher_request_set_crypt(req, src_tab, NULL, m_size, c_size); |
| 1276 | 1276 |
} else {
|
| 1277 | 1277 |
sg_init_one(&dst, outbuf_enc, out_len_max); |
| 1278 |
-@@ -4203,9 +4203,9 @@ static int test_akcipher_one(struct crypto_akcipher *tfm, |
|
| 1278 |
+@@ -4205,9 +4205,9 @@ static int test_akcipher_one(struct crypto_akcipher *tfm, |
|
| 1279 | 1279 |
|
| 1280 | 1280 |
err = -E2BIG; |
| 1281 | 1281 |
op = vecs->siggen_sigver_test ? "sign" : "decrypt"; |
| ... | ... |
@@ -1287,7 +1308,7 @@ index 783c006d0..7899ab3cd 100644 |
| 1287 | 1287 |
|
| 1288 | 1288 |
sg_init_one(&src, xbuf[0], c_size); |
| 1289 | 1289 |
sg_init_one(&dst, outbuf_dec, out_len_max); |
| 1290 |
-@@ -5829,13 +5829,13 @@ static void alg_check_test_descs_order(void) |
|
| 1290 |
+@@ -5834,13 +5834,13 @@ static void alg_check_test_descs_order(void) |
|
| 1291 | 1291 |
int diff = strcmp(alg_test_descs[i - 1].alg, |
| 1292 | 1292 |
alg_test_descs[i].alg); |
| 1293 | 1293 |
|
| ... | ... |
@@ -1303,7 +1324,7 @@ index 783c006d0..7899ab3cd 100644 |
| 1303 | 1303 |
pr_warn("testmgr: duplicate alg_test_descs entry: '%s'\n",
|
| 1304 | 1304 |
alg_test_descs[i].alg); |
| 1305 | 1305 |
} |
| 1306 |
-@@ -5847,12 +5847,12 @@ static void alg_check_testvec_configs(void) |
|
| 1306 |
+@@ -5852,12 +5852,12 @@ static void alg_check_testvec_configs(void) |
|
| 1307 | 1307 |
int i; |
| 1308 | 1308 |
|
| 1309 | 1309 |
for (i = 0; i < ARRAY_SIZE(default_cipher_testvec_configs); i++) |
| ... | ... |
@@ -1320,7 +1341,7 @@ index 783c006d0..7899ab3cd 100644 |
| 1320 | 1320 |
} |
| 1321 | 1321 |
|
| 1322 | 1322 |
static void testmgr_onetime_init(void) |
| 1323 |
-@@ -5968,7 +5968,7 @@ int alg_test(const char *driver, const char *alg, u32 type, u32 mask) |
|
| 1323 |
+@@ -5973,7 +5973,7 @@ int alg_test(const char *driver, const char *alg, u32 type, u32 mask) |
|
| 1324 | 1324 |
} |
| 1325 | 1325 |
pr_warn("alg: self-tests for %s using %s failed (rc=%d)",
|
| 1326 | 1326 |
alg, driver, rc); |
| ... | ... |
@@ -9,16 +9,17 @@ Signed-off-by: Keerthana K <keerthanak@vmware.com |
| 9 | 9 |
crypto/aes_generic.c | 5 ----- |
| 10 | 10 |
crypto/ecc.c | 20 -------------------- |
| 11 | 11 |
crypto/ecdh_helper.c | 5 +---- |
| 12 |
+ crypto/geniv.c | 3 --- |
|
| 12 | 13 |
crypto/rsa_helper.c | 2 -- |
| 13 | 14 |
crypto/sha1_generic.c | 3 --- |
| 14 | 15 |
crypto/sha256_generic.c | 4 ---- |
| 15 |
- crypto/sha3_generic.c | 8 +++----- |
|
| 16 |
+ crypto/sha3_generic.c | 3 --- |
|
| 16 | 17 |
crypto/sha512_generic.c | 4 ---- |
| 17 | 18 |
crypto/testmgr.c | 2 -- |
| 18 | 19 |
lib/crypto/aes.c | 6 ------ |
| 19 | 20 |
lib/crypto/sha1.c | 2 -- |
| 20 | 21 |
lib/crypto/sha256.c | 5 ----- |
| 21 |
- 12 files changed, 4 insertions(+), 62 deletions(-) |
|
| 22 |
+ 13 files changed, 1 insertion(+), 63 deletions(-) |
|
| 22 | 23 |
|
| 23 | 24 |
diff --git a/crypto/aes_generic.c b/crypto/aes_generic.c |
| 24 | 25 |
index 27ab27931..f73022bed 100644 |
| ... | ... |
@@ -234,6 +235,34 @@ index 5dac6b348..78cd5252f 100644 |
| 234 | 234 |
-EXPORT_SYMBOL_GPL(crypto_ecdh_decode_key); |
| 235 | 235 |
+} |
| 236 | 236 |
\ No newline at end of file |
| 237 |
+diff --git a/crypto/geniv.c b/crypto/geniv.c |
|
| 238 |
+index bee4621b4..2ac9bc761 100644 |
|
| 239 |
+--- a/crypto/geniv.c |
|
| 240 |
+@@ -104,7 +104,6 @@ struct aead_instance *aead_geniv_alloc(struct crypto_template *tmpl, |
|
| 241 |
+ inst = ERR_PTR(err); |
|
| 242 |
+ goto out; |
|
| 243 |
+ } |
|
| 244 |
+-EXPORT_SYMBOL_GPL(aead_geniv_alloc); |
|
| 245 |
+ |
|
| 246 |
+ int aead_init_geniv(struct crypto_aead *aead) |
|
| 247 |
+ {
|
|
| 248 |
+@@ -148,7 +147,6 @@ int aead_init_geniv(struct crypto_aead *aead) |
|
| 249 |
+ crypto_put_default_null_skcipher(); |
|
| 250 |
+ goto out; |
|
| 251 |
+ } |
|
| 252 |
+-EXPORT_SYMBOL_GPL(aead_init_geniv); |
|
| 253 |
+ |
|
| 254 |
+ void aead_exit_geniv(struct crypto_aead *tfm) |
|
| 255 |
+ {
|
|
| 256 |
+@@ -157,7 +155,6 @@ void aead_exit_geniv(struct crypto_aead *tfm) |
|
| 257 |
+ crypto_free_aead(ctx->child); |
|
| 258 |
+ crypto_put_default_null_skcipher(); |
|
| 259 |
+ } |
|
| 260 |
+-EXPORT_SYMBOL_GPL(aead_exit_geniv); |
|
| 261 |
+ |
|
| 262 |
+ MODULE_LICENSE("GPL");
|
|
| 263 |
+ MODULE_DESCRIPTION("Shared IV generator code");
|
|
| 237 | 264 |
diff --git a/crypto/rsa_helper.c b/crypto/rsa_helper.c |
| 238 | 265 |
index 94266f290..9deb71e13 100644 |
| 239 | 266 |
--- a/crypto/rsa_helper.c |
| ... | ... |
@@ -319,15 +348,7 @@ diff --git a/crypto/sha3_generic.c b/crypto/sha3_generic.c |
| 319 | 319 |
index 3e4069935..7d107460b 100644 |
| 320 | 320 |
--- a/crypto/sha3_generic.c |
| 321 | 321 |
+++ b/crypto/sha3_generic.c |
| 322 |
-@@ -14,6 +14,7 @@ |
|
| 323 |
- #include <linux/types.h> |
|
| 324 |
- #include <crypto/sha3.h> |
|
| 325 |
- #include <asm/unaligned.h> |
|
| 326 |
-+#include "fips_canister_wrapper.h" |
|
| 327 |
- |
|
| 328 |
- /* |
|
| 329 |
- * On some 32-bit architectures (h8300), GCC ends up using |
|
| 330 |
-@@ -170,7 +171,6 @@ int crypto_sha3_init(struct shash_desc *desc) |
|
| 322 |
+@@ -171,7 +171,6 @@ int crypto_sha3_init(struct shash_desc *desc) |
|
| 331 | 323 |
memset(sctx->st, 0, sizeof(sctx->st)); |
| 332 | 324 |
return 0; |
| 333 | 325 |
} |
| ... | ... |
@@ -335,22 +356,7 @@ index 3e4069935..7d107460b 100644 |
| 335 | 335 |
|
| 336 | 336 |
int crypto_sha3_update(struct shash_desc *desc, const u8 *data, |
| 337 | 337 |
unsigned int len) |
| 338 |
-@@ -185,7 +185,7 @@ int crypto_sha3_update(struct shash_desc *desc, const u8 *data, |
|
| 339 |
- if ((sctx->partial + len) > (sctx->rsiz - 1)) {
|
|
| 340 |
- if (sctx->partial) {
|
|
| 341 |
- done = -sctx->partial; |
|
| 342 |
-- memcpy(sctx->buf + sctx->partial, data, |
|
| 343 |
-+ fcw_memcpy(sctx->buf + sctx->partial, data, |
|
| 344 |
- done + sctx->rsiz); |
|
| 345 |
- src = sctx->buf; |
|
| 346 |
- } |
|
| 347 |
-@@ -203,12 +203,11 @@ int crypto_sha3_update(struct shash_desc *desc, const u8 *data, |
|
| 348 |
- |
|
| 349 |
- sctx->partial = 0; |
|
| 350 |
- } |
|
| 351 |
-- memcpy(sctx->buf + sctx->partial, src, len - done); |
|
| 352 |
-+ fcw_memcpy(sctx->buf + sctx->partial, src, len - done); |
|
| 353 |
- sctx->partial += (len - done); |
|
| 338 |
+@@ -209,7 +208,6 @@ int crypto_sha3_update(struct shash_desc *desc, const u8 *data, |
|
| 354 | 339 |
|
| 355 | 340 |
return 0; |
| 356 | 341 |
} |
| ... | ... |
@@ -358,7 +364,7 @@ index 3e4069935..7d107460b 100644 |
| 358 | 358 |
|
| 359 | 359 |
int crypto_sha3_final(struct shash_desc *desc, u8 *out) |
| 360 | 360 |
{
|
| 361 |
-@@ -235,7 +234,6 @@ int crypto_sha3_final(struct shash_desc *desc, u8 *out) |
|
| 361 |
+@@ -236,7 +234,6 @@ int crypto_sha3_final(struct shash_desc *desc, u8 *out) |
|
| 362 | 362 |
memset(sctx, 0, sizeof(*sctx)); |
| 363 | 363 |
return 0; |
| 364 | 364 |
} |
| ... | ... |
@@ -403,10 +409,10 @@ index 07e27910c..32ff5a0b1 100644 |
| 403 | 403 |
static struct shash_alg sha512_algs[2] = { {
|
| 404 | 404 |
.digestsize = SHA512_DIGEST_SIZE, |
| 405 | 405 |
diff --git a/crypto/testmgr.c b/crypto/testmgr.c |
| 406 |
-index 7899ab3cd..94279afed 100644 |
|
| 406 |
+index 22f4ec725..91325e2a8 100644 |
|
| 407 | 407 |
--- a/crypto/testmgr.c |
| 408 | 408 |
+++ b/crypto/testmgr.c |
| 409 |
-@@ -5976,5 +5976,3 @@ int alg_test(const char *driver, const char *alg, u32 type, u32 mask) |
|
| 409 |
+@@ -5996,5 +5996,3 @@ int alg_test(const char *driver, const char *alg, u32 type, u32 mask) |
|
| 410 | 410 |
} |
| 411 | 411 |
|
| 412 | 412 |
#endif /* CONFIG_CRYPTO_MANAGER_DISABLE_TESTS */ |
| ... | ... |
@@ -38,6 +38,7 @@ Signed-off-by: Keerthana K <keerthanak@vmware.com> |
| 38 | 38 |
crypto/ecdh.c | 10 +- |
| 39 | 39 |
crypto/ecdsa.c | 16 +- |
| 40 | 40 |
crypto/gcm.c | 15 +- |
| 41 |
+ crypto/geniv.c | 2 - |
|
| 41 | 42 |
crypto/hmac.c | 11 +- |
| 42 | 43 |
crypto/internal.h | 7 +- |
| 43 | 44 |
crypto/rsa-pkcs1pad.c | 1 - |
| ... | ... |
@@ -47,7 +48,7 @@ Signed-off-by: Keerthana K <keerthanak@vmware.com> |
| 47 | 47 |
crypto/sha256_generic.c | 15 +- |
| 48 | 48 |
crypto/sha3_generic.c | 19 +- |
| 49 | 49 |
crypto/sha512_generic.c | 15 +- |
| 50 |
- crypto/testmgr.c | 648 ++++++++--------------------- |
|
| 50 |
+ crypto/testmgr.c | 652 ++++++++--------------------- |
|
| 51 | 51 |
crypto/testmgr.h | 23 +- |
| 52 | 52 |
crypto/xts.c | 13 +- |
| 53 | 53 |
include/crypto/algapi.h | 6 + |
| ... | ... |
@@ -60,7 +61,7 @@ Signed-off-by: Keerthana K <keerthanak@vmware.com> |
| 60 | 60 |
include/linux/crypto.h | 8 + |
| 61 | 61 |
include/linux/rtattr.h | 6 + |
| 62 | 62 |
include/linux/swait.h | 4 + |
| 63 |
- 38 files changed, 370 insertions(+), 824 deletions(-) |
|
| 63 |
+ 39 files changed, 372 insertions(+), 828 deletions(-) |
|
| 64 | 64 |
create mode 100644 include/linux/rtattr.h |
| 65 | 65 |
|
| 66 | 66 |
diff --git a/arch/x86/crypto/aesni-intel_glue.c b/arch/x86/crypto/aesni-intel_glue.c |
| ... | ... |
@@ -530,7 +531,7 @@ index bd11953dc..466f5e261 100644 |
| 530 | 530 |
-MODULE_ALIAS_CRYPTO("cmac");
|
| 531 | 531 |
-MODULE_IMPORT_NS(CRYPTO_INTERNAL); |
| 532 | 532 |
diff --git a/crypto/crypto_self_test.c b/crypto/crypto_self_test.c |
| 533 |
-index aad09e6a6..79c07c7d6 100644 |
|
| 533 |
+index eb4ed8bdb..19ecf60a5 100644 |
|
| 534 | 534 |
--- a/crypto/crypto_self_test.c |
| 535 | 535 |
+++ b/crypto/crypto_self_test.c |
| 536 | 536 |
@@ -5,12 +5,11 @@ |
| ... | ... |
@@ -547,7 +548,7 @@ index aad09e6a6..79c07c7d6 100644 |
| 547 | 547 |
|
| 548 | 548 |
extern int alg_test(const char *driver, const char *alg, u32 type, u32 mask); |
| 549 | 549 |
|
| 550 |
-@@ -65,7 +64,7 @@ extern int FIPS_NOT_ALLOWED(char *); |
|
| 550 |
+@@ -97,7 +96,7 @@ extern int FIPS_NOT_ALLOWED(char *); |
|
| 551 | 551 |
#define FIPS_NOT_ALLOWED(algname) 0 |
| 552 | 552 |
#endif |
| 553 | 553 |
|
| ... | ... |
@@ -556,7 +557,7 @@ index aad09e6a6..79c07c7d6 100644 |
| 556 | 556 |
{
|
| 557 | 557 |
int err = -ENOMEM; |
| 558 | 558 |
int i = 0; |
| 559 |
-@@ -78,7 +77,7 @@ static int __init crypto_self_test_init(void) |
|
| 559 |
+@@ -110,7 +109,7 @@ static int __init crypto_self_test_init(void) |
|
| 560 | 560 |
continue; |
| 561 | 561 |
err = alg_test(alg_self_test_tbl[i].driver_name, alg_self_test_tbl[i].alg_name, 0, 0); |
| 562 | 562 |
if (err) {
|
| ... | ... |
@@ -565,7 +566,7 @@ index aad09e6a6..79c07c7d6 100644 |
| 565 | 565 |
alg_self_test_tbl[i].driver_name, |
| 566 | 566 |
alg_self_test_tbl[i].alg_name); |
| 567 | 567 |
goto error; |
| 568 |
-@@ -88,4 +87,3 @@ static int __init crypto_self_test_init(void) |
|
| 568 |
+@@ -120,4 +119,3 @@ static int __init crypto_self_test_init(void) |
|
| 569 | 569 |
error: |
| 570 | 570 |
return err; |
| 571 | 571 |
} |
| ... | ... |
@@ -1241,6 +1242,16 @@ index 887033a38..89ea69061 100644 |
| 1241 | 1241 |
-MODULE_ALIAS_CRYPTO("rfc4106");
|
| 1242 | 1242 |
-MODULE_ALIAS_CRYPTO("rfc4543");
|
| 1243 | 1243 |
-MODULE_ALIAS_CRYPTO("gcm");
|
| 1244 |
+diff --git a/crypto/geniv.c b/crypto/geniv.c |
|
| 1245 |
+index 2ac9bc761..8064aa6b4 100644 |
|
| 1246 |
+--- a/crypto/geniv.c |
|
| 1247 |
+@@ -156,5 +156,3 @@ void aead_exit_geniv(struct crypto_aead *tfm) |
|
| 1248 |
+ crypto_put_default_null_skcipher(); |
|
| 1249 |
+ } |
|
| 1250 |
+ |
|
| 1251 |
+-MODULE_LICENSE("GPL");
|
|
| 1252 |
+-MODULE_DESCRIPTION("Shared IV generator code");
|
|
| 1244 | 1253 |
diff --git a/crypto/hmac.c b/crypto/hmac.c |
| 1245 | 1254 |
index b3e099505..e9116ae4c 100644 |
| 1246 | 1255 |
--- a/crypto/hmac.c |
| ... | ... |
@@ -1307,7 +1318,7 @@ index c08385571..edee7e0d5 100644 |
| 1307 | 1307 |
|
| 1308 | 1308 |
static inline int crypto_is_larval(struct crypto_alg *alg) |
| 1309 | 1309 |
diff --git a/crypto/rsa-pkcs1pad.c b/crypto/rsa-pkcs1pad.c |
| 1310 |
-index cb54c382d..5464d13ad 100644 |
|
| 1310 |
+index 82e5eb5e2..dbeeb60a7 100644 |
|
| 1311 | 1311 |
--- a/crypto/rsa-pkcs1pad.c |
| 1312 | 1312 |
+++ b/crypto/rsa-pkcs1pad.c |
| 1313 | 1313 |
@@ -12,7 +12,6 @@ |
| ... | ... |
@@ -1531,7 +1542,7 @@ index 32ff5a0b1..845c40f7e 100644 |
| 1531 | 1531 |
-MODULE_ALIAS_CRYPTO("sha512");
|
| 1532 | 1532 |
-MODULE_ALIAS_CRYPTO("sha512-generic");
|
| 1533 | 1533 |
diff --git a/crypto/testmgr.c b/crypto/testmgr.c |
| 1534 |
-index 94279afed..c2e52e4c3 100644 |
|
| 1534 |
+index 91325e2a8..91afcb502 100644 |
|
| 1535 | 1535 |
--- a/crypto/testmgr.c |
| 1536 | 1536 |
+++ b/crypto/testmgr.c |
| 1537 | 1537 |
@@ -21,7 +21,6 @@ |
| ... | ... |
@@ -2975,7 +2986,7 @@ index 94279afed..c2e52e4c3 100644 |
| 2975 | 2975 |
} |
| 2976 | 2976 |
|
| 2977 | 2977 |
/* Calculate shared secret key by using counter part (b) public key. */ |
| 2978 |
-@@ -3960,7 +3660,7 @@ static int do_test_kpp(struct crypto_kpp *tfm, const struct kpp_testvec *vec, |
|
| 2978 |
+@@ -3962,7 +3662,7 @@ static int do_test_kpp(struct crypto_kpp *tfm, const struct kpp_testvec *vec, |
|
| 2979 | 2979 |
crypto_req_done, &wait); |
| 2980 | 2980 |
err = crypto_wait_req(crypto_kpp_compute_shared_secret(req), &wait); |
| 2981 | 2981 |
if (err) {
|
| ... | ... |
@@ -2984,7 +2995,7 @@ index 94279afed..c2e52e4c3 100644 |
| 2984 | 2984 |
alg, err); |
| 2985 | 2985 |
goto free_all; |
| 2986 | 2986 |
} |
| 2987 |
-@@ -3991,7 +3691,7 @@ static int do_test_kpp(struct crypto_kpp *tfm, const struct kpp_testvec *vec, |
|
| 2987 |
+@@ -3993,7 +3693,7 @@ static int do_test_kpp(struct crypto_kpp *tfm, const struct kpp_testvec *vec, |
|
| 2988 | 2988 |
err = crypto_wait_req(crypto_kpp_compute_shared_secret(req), |
| 2989 | 2989 |
&wait); |
| 2990 | 2990 |
if (err) {
|
| ... | ... |
@@ -2993,7 +3004,7 @@ index 94279afed..c2e52e4c3 100644 |
| 2993 | 2993 |
alg, err); |
| 2994 | 2994 |
goto free_all; |
| 2995 | 2995 |
} |
| 2996 |
-@@ -4007,7 +3707,7 @@ static int do_test_kpp(struct crypto_kpp *tfm, const struct kpp_testvec *vec, |
|
| 2996 |
+@@ -4009,7 +3709,7 @@ static int do_test_kpp(struct crypto_kpp *tfm, const struct kpp_testvec *vec, |
|
| 2997 | 2997 |
*/ |
| 2998 | 2998 |
if (memcmp(shared_secret, fcw_sg_virt(req->dst), |
| 2999 | 2999 |
vec->expected_ss_size)) {
|
| ... | ... |
@@ -3002,7 +3013,7 @@ index 94279afed..c2e52e4c3 100644 |
| 3002 | 3002 |
alg); |
| 3003 | 3003 |
err = -EINVAL; |
| 3004 | 3004 |
} |
| 3005 |
-@@ -4031,7 +3731,7 @@ static int test_kpp(struct crypto_kpp *tfm, const char *alg, |
|
| 3005 |
+@@ -4033,7 +3733,7 @@ static int test_kpp(struct crypto_kpp *tfm, const char *alg, |
|
| 3006 | 3006 |
for (i = 0; i < tcount; i++) {
|
| 3007 | 3007 |
ret = do_test_kpp(tfm, vecs++, alg); |
| 3008 | 3008 |
if (ret) {
|
| ... | ... |
@@ -3011,7 +3022,7 @@ index 94279afed..c2e52e4c3 100644 |
| 3011 | 3011 |
alg, i + 1, ret); |
| 3012 | 3012 |
return ret; |
| 3013 | 3013 |
} |
| 3014 |
-@@ -4047,7 +3747,7 @@ static int alg_test_kpp(const struct alg_test_desc *desc, const char *driver, |
|
| 3014 |
+@@ -4049,7 +3749,7 @@ static int alg_test_kpp(const struct alg_test_desc *desc, const char *driver, |
|
| 3015 | 3015 |
|
| 3016 | 3016 |
tfm = crypto_alloc_kpp(driver, type, mask); |
| 3017 | 3017 |
if (IS_ERR(tfm)) {
|
| ... | ... |
@@ -3020,7 +3031,7 @@ index 94279afed..c2e52e4c3 100644 |
| 3020 | 3020 |
driver, PTR_ERR(tfm)); |
| 3021 | 3021 |
return PTR_ERR(tfm); |
| 3022 | 3022 |
} |
| 3023 |
-@@ -4162,19 +3862,19 @@ static int test_akcipher_one(struct crypto_akcipher *tfm, |
|
| 3023 |
+@@ -4164,19 +3864,19 @@ static int test_akcipher_one(struct crypto_akcipher *tfm, |
|
| 3024 | 3024 |
/* Run asymmetric encrypt */ |
| 3025 | 3025 |
crypto_akcipher_encrypt(req), &wait); |
| 3026 | 3026 |
if (err) {
|
| ... | ... |
@@ -3043,7 +3054,7 @@ index 94279afed..c2e52e4c3 100644 |
| 3043 | 3043 |
op); |
| 3044 | 3044 |
hexdump(outbuf_enc, c_size); |
| 3045 | 3045 |
err = -EINVAL; |
| 3046 |
-@@ -4218,12 +3918,12 @@ static int test_akcipher_one(struct crypto_akcipher *tfm, |
|
| 3046 |
+@@ -4220,12 +3920,12 @@ static int test_akcipher_one(struct crypto_akcipher *tfm, |
|
| 3047 | 3047 |
/* Run asymmetric decrypt */ |
| 3048 | 3048 |
crypto_akcipher_decrypt(req), &wait); |
| 3049 | 3049 |
if (err) {
|
| ... | ... |
@@ -3058,7 +3069,7 @@ index 94279afed..c2e52e4c3 100644 |
| 3058 | 3058 |
op, out_len); |
| 3059 | 3059 |
err = -EINVAL; |
| 3060 | 3060 |
goto free_all; |
| 3061 |
-@@ -4231,7 +3931,7 @@ static int test_akcipher_one(struct crypto_akcipher *tfm, |
|
| 3061 |
+@@ -4233,7 +3933,7 @@ static int test_akcipher_one(struct crypto_akcipher *tfm, |
|
| 3062 | 3062 |
/* verify that decrypted message is equal to the original msg */ |
| 3063 | 3063 |
if (memchr_inv(outbuf_dec, 0, out_len - m_size) || |
| 3064 | 3064 |
memcmp(m, outbuf_dec + out_len - m_size, m_size)) {
|
| ... | ... |
@@ -3067,7 +3078,7 @@ index 94279afed..c2e52e4c3 100644 |
| 3067 | 3067 |
hexdump(outbuf_dec, out_len); |
| 3068 | 3068 |
err = -EINVAL; |
| 3069 | 3069 |
} |
| 3070 |
-@@ -4260,7 +3960,7 @@ static int test_akcipher(struct crypto_akcipher *tfm, const char *alg, |
|
| 3070 |
+@@ -4262,7 +3962,7 @@ static int test_akcipher(struct crypto_akcipher *tfm, const char *alg, |
|
| 3071 | 3071 |
if (!ret) |
| 3072 | 3072 |
continue; |
| 3073 | 3073 |
|
| ... | ... |
@@ -3076,7 +3087,7 @@ index 94279afed..c2e52e4c3 100644 |
| 3076 | 3076 |
i + 1, algo, ret); |
| 3077 | 3077 |
return ret; |
| 3078 | 3078 |
} |
| 3079 |
-@@ -4275,7 +3975,7 @@ static int alg_test_akcipher(const struct alg_test_desc *desc, |
|
| 3079 |
+@@ -4277,7 +3977,7 @@ static int alg_test_akcipher(const struct alg_test_desc *desc, |
|
| 3080 | 3080 |
|
| 3081 | 3081 |
tfm = crypto_alloc_akcipher(driver, type, mask); |
| 3082 | 3082 |
if (IS_ERR(tfm)) {
|
| ... | ... |
@@ -3085,7 +3096,7 @@ index 94279afed..c2e52e4c3 100644 |
| 3085 | 3085 |
driver, PTR_ERR(tfm)); |
| 3086 | 3086 |
return PTR_ERR(tfm); |
| 3087 | 3087 |
} |
| 3088 |
-@@ -5815,13 +5515,13 @@ static void alg_check_test_descs_order(void) |
|
| 3088 |
+@@ -5835,13 +5535,13 @@ static void alg_check_test_descs_order(void) |
|
| 3089 | 3089 |
alg_test_descs[i].alg); |
| 3090 | 3090 |
|
| 3091 | 3091 |
if (fcw_warn_on(diff > 0)) {
|
| ... | ... |
@@ -3101,7 +3112,7 @@ index 94279afed..c2e52e4c3 100644 |
| 3101 | 3101 |
alg_test_descs[i].alg); |
| 3102 | 3102 |
} |
| 3103 | 3103 |
} |
| 3104 |
-@@ -5846,7 +5546,7 @@ static void testmgr_onetime_init(void) |
|
| 3104 |
+@@ -5866,7 +5566,7 @@ static void testmgr_onetime_init(void) |
|
| 3105 | 3105 |
alg_check_testvec_configs(); |
| 3106 | 3106 |
|
| 3107 | 3107 |
#ifdef CONFIG_CRYPTO_MANAGER_EXTRA_TESTS |
| ... | ... |
@@ -3110,7 +3121,7 @@ index 94279afed..c2e52e4c3 100644 |
| 3110 | 3110 |
#endif |
| 3111 | 3111 |
} |
| 3112 | 3112 |
|
| 3113 |
-@@ -5877,7 +5577,7 @@ static int alg_find_test(const char *alg) |
|
| 3113 |
+@@ -5897,7 +5597,7 @@ static int alg_find_test(const char *alg) |
|
| 3114 | 3114 |
|
| 3115 | 3115 |
static int alg_fips_disabled(const char *driver, const char *alg) |
| 3116 | 3116 |
{
|
| ... | ... |
@@ -3119,7 +3130,7 @@ index 94279afed..c2e52e4c3 100644 |
| 3119 | 3119 |
|
| 3120 | 3120 |
return -ECANCELED; |
| 3121 | 3121 |
} |
| 3122 |
-@@ -5889,11 +5589,6 @@ int alg_test(const char *driver, const char *alg, u32 type, u32 mask) |
|
| 3122 |
+@@ -5909,11 +5609,6 @@ int alg_test(const char *driver, const char *alg, u32 type, u32 mask) |
|
| 3123 | 3123 |
int rc; |
| 3124 | 3124 |
static bool done = false; |
| 3125 | 3125 |
|
| ... | ... |
@@ -3131,7 +3142,7 @@ index 94279afed..c2e52e4c3 100644 |
| 3131 | 3131 |
/* Replace DO_ONCE by this. As DO_ONCE generates jump labels entry |
| 3132 | 3132 |
* and its data (__once_key) get changed at early boot time at |
| 3133 | 3133 |
* jump_label_init() from setup_arch(). We cannot run |
| 3134 |
-@@ -5945,27 +5640,26 @@ int alg_test(const char *driver, const char *alg, u32 type, u32 mask) |
|
| 3134 |
+@@ -5965,27 +5660,26 @@ int alg_test(const char *driver, const char *alg, u32 type, u32 mask) |
|
| 3135 | 3135 |
|
| 3136 | 3136 |
test_done: |
| 3137 | 3137 |
if (rc) {
|
| ... | ... |
@@ -3166,7 +3177,7 @@ index 94279afed..c2e52e4c3 100644 |
| 3166 | 3166 |
if (type & CRYPTO_ALG_FIPS_INTERNAL) |
| 3167 | 3167 |
return alg_fips_disabled(driver, alg); |
| 3168 | 3168 |
diff --git a/crypto/testmgr.h b/crypto/testmgr.h |
| 3169 |
-index b23d8f1d9..4b4d56963 100644 |
|
| 3169 |
+index 0ec3d5863..0d71f0b65 100644 |
|
| 3170 | 3170 |
--- a/crypto/testmgr.h |
| 3171 | 3171 |
+++ b/crypto/testmgr.h |
| 3172 | 3172 |
@@ -20,32 +20,11 @@ |
| ... | ... |
@@ -3204,7 +3215,7 @@ index b23d8f1d9..4b4d56963 100644 |
| 3204 | 3204 |
* cipher_testvec: structure to describe a symmetric cipher test |
| 3205 | 3205 |
* @key: Pointer to key |
| 3206 | 3206 |
diff --git a/crypto/xts.c b/crypto/xts.c |
| 3207 |
-index 12edd6525..25116457f 100644 |
|
| 3207 |
+index 7c926f7bb..ce5425371 100644 |
|
| 3208 | 3208 |
--- a/crypto/xts.c |
| 3209 | 3209 |
+++ b/crypto/xts.c |
| 3210 | 3210 |
@@ -13,7 +13,6 @@ |
| ... | ... |
@@ -3240,10 +3251,10 @@ index 12edd6525..25116457f 100644 |
| 3240 | 3240 |
-MODULE_IMPORT_NS(CRYPTO_INTERNAL); |
| 3241 | 3241 |
-MODULE_SOFTDEP("pre: ecb");
|
| 3242 | 3242 |
diff --git a/include/crypto/algapi.h b/include/crypto/algapi.h |
| 3243 |
-index 224b86064..446cd7bf1 100644 |
|
| 3243 |
+index 939a3196b..1b8b7358d 100644 |
|
| 3244 | 3244 |
--- a/include/crypto/algapi.h |
| 3245 | 3245 |
+++ b/include/crypto/algapi.h |
| 3246 |
-@@ -27,7 +27,9 @@ |
|
| 3246 |
+@@ -28,7 +28,9 @@ |
|
| 3247 | 3247 |
|
| 3248 | 3248 |
struct crypto_aead; |
| 3249 | 3249 |
struct crypto_instance; |
| ... | ... |
@@ -3253,7 +3264,7 @@ index 224b86064..446cd7bf1 100644 |
| 3253 | 3253 |
struct notifier_block; |
| 3254 | 3254 |
struct rtattr; |
| 3255 | 3255 |
struct seq_file; |
| 3256 |
-@@ -66,7 +68,11 @@ struct crypto_instance {
|
|
| 3256 |
+@@ -69,7 +71,11 @@ struct crypto_instance {
|
|
| 3257 | 3257 |
struct crypto_template {
|
| 3258 | 3258 |
struct list_head list; |
| 3259 | 3259 |
struct hlist_head instances; |
| 3260 | 3260 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,295 @@ |
| 0 |
+From a31ce76f47615c99cc429e8ca0c615401a6f0b0e Mon Sep 17 00:00:00 2001 |
|
| 1 |
+From: Keerthana K <keerthanak@vmware.com> |
|
| 2 |
+Date: Wed, 20 Sep 2023 07:38:08 +0000 |
|
| 3 |
+Subject: [PATCH] FIPS canister binary usage |
|
| 4 |
+ |
|
| 5 |
+Build with fips canister and skip building crypto algorithms. |
|
| 6 |
+Invoke fips canister integrity check during kernel startup. |
|
| 7 |
+ |
|
| 8 |
+This patch can be used at two stages: |
|
| 9 |
+ 1. Prerequisite patch for canister creation. |
|
| 10 |
+ 2. Binary canister usage time. |
|
| 11 |
+ |
|
| 12 |
+Signed-off-by: Alexey Makhalov <amakhalov@vmware.com> |
|
| 13 |
+Signed-off-by: Keerthana K <keerthanak@vmware.com> |
|
| 14 |
+Signed-off-by: Vamsi Krishna Brahmajosyula <vbrahmajosyula@vmware.com> |
|
| 15 |
+--- |
|
| 16 |
+ arch/x86/crypto/Makefile | 4 -- |
|
| 17 |
+ crypto/Makefile | 116 +++++++++++++++++++++++++++++++-------- |
|
| 18 |
+ init/main.c | 3 + |
|
| 19 |
+ lib/crypto/Makefile | 9 --- |
|
| 20 |
+ 4 files changed, 95 insertions(+), 37 deletions(-) |
|
| 21 |
+ |
|
| 22 |
+diff --git a/arch/x86/crypto/Makefile b/arch/x86/crypto/Makefile |
|
| 23 |
+index 3b1d701a4..3836c4e30 100644 |
|
| 24 |
+--- a/arch/x86/crypto/Makefile |
|
| 25 |
+@@ -46,10 +46,6 @@ obj-$(CONFIG_CRYPTO_CHACHA20_X86_64) += chacha-x86_64.o |
|
| 26 |
+ chacha-x86_64-y := chacha-avx2-x86_64.o chacha-ssse3-x86_64.o chacha_glue.o |
|
| 27 |
+ chacha-x86_64-$(CONFIG_AS_AVX512) += chacha-avx512vl-x86_64.o |
|
| 28 |
+ |
|
| 29 |
+-obj-$(CONFIG_CRYPTO_AES_NI_INTEL) += aesni-intel.o |
|
| 30 |
+-aesni-intel-y := aesni-intel_asm.o aesni-intel_glue.o |
|
| 31 |
+-aesni-intel-$(CONFIG_64BIT) += aesni-intel_avx-x86_64.o aes_ctrby8_avx-x86_64.o |
|
| 32 |
+- |
|
| 33 |
+ obj-$(CONFIG_CRYPTO_SHA1_SSSE3) += sha1-ssse3.o |
|
| 34 |
+ sha1-ssse3-y := sha1_avx2_x86_64_asm.o sha1_ssse3_asm.o sha1_ssse3_glue.o |
|
| 35 |
+ sha1-ssse3-$(CONFIG_AS_SHA1_NI) += sha1_ni_asm.o |
|
| 36 |
+diff --git a/crypto/Makefile b/crypto/Makefile |
|
| 37 |
+index 515ca3a4c..19bf4080d 100644 |
|
| 38 |
+--- a/crypto/Makefile |
|
| 39 |
+@@ -18,10 +18,8 @@ crypto_algapi-y := algapi.o scatterwalk.o $(crypto_algapi-y) |
|
| 40 |
+ obj-$(CONFIG_CRYPTO_ALGAPI2) += crypto_algapi.o |
|
| 41 |
+ |
|
| 42 |
+ obj-$(CONFIG_CRYPTO_AEAD2) += aead.o |
|
| 43 |
+-obj-$(CONFIG_CRYPTO_AEAD2) += geniv.o |
|
| 44 |
+ |
|
| 45 |
+ obj-$(CONFIG_CRYPTO_SKCIPHER2) += skcipher.o |
|
| 46 |
+-obj-$(CONFIG_CRYPTO_SEQIV) += seqiv.o |
|
| 47 |
+ obj-$(CONFIG_CRYPTO_ECHAINIV) += echainiv.o |
|
| 48 |
+ |
|
| 49 |
+ crypto_hash-y += ahash.o |
|
| 50 |
+@@ -44,7 +42,6 @@ rsa_generic-y += rsaprivkey.asn1.o |
|
| 51 |
+ rsa_generic-y += rsa.o |
|
| 52 |
+ rsa_generic-y += rsa_helper.o |
|
| 53 |
+ rsa_generic-y += rsa-pkcs1pad.o |
|
| 54 |
+-obj-$(CONFIG_CRYPTO_RSA) += rsa_generic.o |
|
| 55 |
+ |
|
| 56 |
+ $(obj)/sm2signature.asn1.o: $(obj)/sm2signature.asn1.c $(obj)/sm2signature.asn1.h |
|
| 57 |
+ $(obj)/sm2.o: $(obj)/sm2signature.asn1.h |
|
| 58 |
+@@ -53,13 +50,11 @@ sm2_generic-y += sm2signature.asn1.o |
|
| 59 |
+ sm2_generic-y += sm2.o |
|
| 60 |
+ |
|
| 61 |
+ obj-$(CONFIG_CRYPTO_SM2) += sm2_generic.o |
|
| 62 |
+-obj-$(CONFIG_CRYPTO_SELF_TEST) += crypto_self_test.o |
|
| 63 |
+ |
|
| 64 |
+ $(obj)/ecdsasignature.asn1.o: $(obj)/ecdsasignature.asn1.c $(obj)/ecdsasignature.asn1.h |
|
| 65 |
+ $(obj)/ecdsa.o: $(obj)/ecdsasignature.asn1.h |
|
| 66 |
+ ecdsa_generic-y += ecdsa.o |
|
| 67 |
+ ecdsa_generic-y += ecdsasignature.asn1.o |
|
| 68 |
+-obj-$(CONFIG_CRYPTO_ECDSA) += ecdsa_generic.o |
|
| 69 |
+ |
|
| 70 |
+ crypto_acompress-y := acompress.o |
|
| 71 |
+ crypto_acompress-y += scompress.o |
|
| 72 |
+@@ -67,22 +62,15 @@ obj-$(CONFIG_CRYPTO_ACOMP2) += crypto_acompress.o |
|
| 73 |
+ |
|
| 74 |
+ cryptomgr-y := algboss.o testmgr.o |
|
| 75 |
+ |
|
| 76 |
+-obj-$(CONFIG_CRYPTO_MANAGER2) += cryptomgr.o |
|
| 77 |
+ obj-$(CONFIG_CRYPTO_USER) += crypto_user.o |
|
| 78 |
+ crypto_user-y := crypto_user_base.o |
|
| 79 |
+ crypto_user-$(CONFIG_CRYPTO_STATS) += crypto_user_stat.o |
|
| 80 |
+-obj-$(CONFIG_CRYPTO_CMAC) += cmac.o |
|
| 81 |
+-obj-$(CONFIG_CRYPTO_HMAC) += hmac.o |
|
| 82 |
+ obj-$(CONFIG_CRYPTO_VMAC) += vmac.o |
|
| 83 |
+ obj-$(CONFIG_CRYPTO_XCBC) += xcbc.o |
|
| 84 |
+ obj-$(CONFIG_CRYPTO_NULL2) += crypto_null.o |
|
| 85 |
+ obj-$(CONFIG_CRYPTO_MD4) += md4.o |
|
| 86 |
+ obj-$(CONFIG_CRYPTO_MD5) += md5.o |
|
| 87 |
+ obj-$(CONFIG_CRYPTO_RMD160) += rmd160.o |
|
| 88 |
+-obj-$(CONFIG_CRYPTO_SHA1) += sha1_generic.o |
|
| 89 |
+-obj-$(CONFIG_CRYPTO_SHA256) += sha256_generic.o |
|
| 90 |
+-obj-$(CONFIG_CRYPTO_SHA512) += sha512_generic.o |
|
| 91 |
+-obj-$(CONFIG_CRYPTO_SHA3) += sha3_generic.o |
|
| 92 |
+ obj-$(CONFIG_CRYPTO_SM3) += sm3.o |
|
| 93 |
+ obj-$(CONFIG_CRYPTO_SM3_GENERIC) += sm3_generic.o |
|
| 94 |
+ obj-$(CONFIG_CRYPTO_STREEBOG) += streebog_generic.o |
|
| 95 |
+@@ -91,21 +79,13 @@ CFLAGS_wp512.o := $(call cc-option,-fno-schedule-insns) # https://gcc.gnu.org/b |
|
| 96 |
+ obj-$(CONFIG_CRYPTO_BLAKE2B) += blake2b_generic.o |
|
| 97 |
+ CFLAGS_blake2b_generic.o := -Wframe-larger-than=4096 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105930 |
|
| 98 |
+ obj-$(CONFIG_CRYPTO_GF128MUL) += gf128mul.o |
|
| 99 |
+-obj-$(CONFIG_CRYPTO_ECB) += ecb.o |
|
| 100 |
+-obj-$(CONFIG_CRYPTO_CBC) += cbc.o |
|
| 101 |
+-obj-$(CONFIG_CRYPTO_CFB) += cfb.o |
|
| 102 |
+ obj-$(CONFIG_CRYPTO_PCBC) += pcbc.o |
|
| 103 |
+-obj-$(CONFIG_CRYPTO_CTS) += cts.o |
|
| 104 |
+ obj-$(CONFIG_CRYPTO_LRW) += lrw.o |
|
| 105 |
+-obj-$(CONFIG_CRYPTO_XTS) += xts.o |
|
| 106 |
+-obj-$(CONFIG_CRYPTO_CTR) += ctr.o |
|
| 107 |
+ obj-$(CONFIG_CRYPTO_XCTR) += xctr.o |
|
| 108 |
+ obj-$(CONFIG_CRYPTO_HCTR2) += hctr2.o |
|
| 109 |
+ obj-$(CONFIG_CRYPTO_KEYWRAP) += keywrap.o |
|
| 110 |
+ obj-$(CONFIG_CRYPTO_ADIANTUM) += adiantum.o |
|
| 111 |
+ obj-$(CONFIG_CRYPTO_NHPOLY1305) += nhpoly1305.o |
|
| 112 |
+-obj-$(CONFIG_CRYPTO_GCM) += gcm.o |
|
| 113 |
+-obj-$(CONFIG_CRYPTO_CCM) += ccm.o |
|
| 114 |
+ obj-$(CONFIG_CRYPTO_CHACHA20POLY1305) += chacha20poly1305.o |
|
| 115 |
+ obj-$(CONFIG_CRYPTO_AEGIS128) += aegis128.o |
|
| 116 |
+ aegis128-y := aegis128-core.o |
|
| 117 |
+@@ -140,7 +120,6 @@ obj-$(CONFIG_CRYPTO_TWOFISH) += twofish_generic.o |
|
| 118 |
+ obj-$(CONFIG_CRYPTO_TWOFISH_COMMON) += twofish_common.o |
|
| 119 |
+ obj-$(CONFIG_CRYPTO_SERPENT) += serpent_generic.o |
|
| 120 |
+ CFLAGS_serpent_generic.o := $(call cc-option,-fsched-pressure) # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79149 |
|
| 121 |
+-obj-$(CONFIG_CRYPTO_AES) += aes_generic.o |
|
| 122 |
+ CFLAGS_aes_generic.o := $(call cc-option,-fno-code-hoisting) # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83356 |
|
| 123 |
+ obj-$(CONFIG_CRYPTO_SM4) += sm4.o |
|
| 124 |
+ obj-$(CONFIG_CRYPTO_SM4_GENERIC) += sm4_generic.o |
|
| 125 |
+@@ -171,7 +150,6 @@ obj-$(CONFIG_CRYPTO_XXHASH) += xxhash_generic.o |
|
| 126 |
+ obj-$(CONFIG_CRYPTO_842) += 842.o |
|
| 127 |
+ obj-$(CONFIG_CRYPTO_RNG2) += rng.o |
|
| 128 |
+ obj-$(CONFIG_CRYPTO_ANSI_CPRNG) += ansi_cprng.o |
|
| 129 |
+-obj-$(CONFIG_CRYPTO_DRBG) += drbg.o |
|
| 130 |
+ CFLAGS_jitterentropy.o = -O0 |
|
| 131 |
+ KASAN_SANITIZE_jitterentropy.o = n |
|
| 132 |
+ UBSAN_SANITIZE_jitterentropy.o = n |
|
| 133 |
+@@ -185,13 +163,11 @@ obj-$(CONFIG_CRYPTO_USER_API_RNG) += algif_rng.o |
|
| 134 |
+ obj-$(CONFIG_CRYPTO_USER_API_AEAD) += algif_aead.o |
|
| 135 |
+ obj-$(CONFIG_CRYPTO_ZSTD) += zstd.o |
|
| 136 |
+ obj-$(CONFIG_CRYPTO_OFB) += ofb.o |
|
| 137 |
+-obj-$(CONFIG_CRYPTO_ECC) += ecc.o |
|
| 138 |
+ obj-$(CONFIG_CRYPTO_ESSIV) += essiv.o |
|
| 139 |
+ obj-$(CONFIG_CRYPTO_CURVE25519) += curve25519-generic.o |
|
| 140 |
+ |
|
| 141 |
+ ecdh_generic-y += ecdh.o |
|
| 142 |
+ ecdh_generic-y += ecdh_helper.o |
|
| 143 |
+-obj-$(CONFIG_CRYPTO_ECDH) += ecdh_generic.o |
|
| 144 |
+ |
|
| 145 |
+ $(obj)/ecrdsa_params.asn1.o: $(obj)/ecrdsa_params.asn1.c $(obj)/ecrdsa_params.asn1.h |
|
| 146 |
+ $(obj)/ecrdsa_pub_key.asn1.o: $(obj)/ecrdsa_pub_key.asn1.c $(obj)/ecrdsa_pub_key.asn1.h |
|
| 147 |
+@@ -215,3 +191,95 @@ obj-$(CONFIG_CRYPTO_SIMD) += crypto_simd.o |
|
| 148 |
+ # Key derivation function |
|
| 149 |
+ # |
|
| 150 |
+ obj-$(CONFIG_CRYPTO_KDF800108_CTR) += kdf_sp800108.o |
|
| 151 |
++obj-$(CONFIG_CRYPTO_FIPS) += fips_canister_wrapper_asm.o fips_canister_wrapper.o fips_canister.o |
|
| 152 |
++obj-$(CONFIG_CRYPTO_FIPS) += testmgr_fips_canister_wrapper.o aesni-intel_glue_fips_canister_wrapper.o |
|
| 153 |
++ |
|
| 154 |
++ifdef CONFIG_CRYPTO_FIPS |
|
| 155 |
++ifneq ($(CONFIG_CRYPTO_FIPS),y) |
|
| 156 |
++ $(error FIPS canister requires CONFIG_CRYPTO_FIPS=y) |
|
| 157 |
++endif |
|
| 158 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_AEAD)),y) |
|
| 159 |
++ $(error FIPS canister requires CONFIG_CRYPTO_AEAD=y) |
|
| 160 |
++endif |
|
| 161 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_AEAD2)),y) |
|
| 162 |
++ $(error FIPS canister requires CONFIG_CRYPTO_AEAD2=y) |
|
| 163 |
++endif |
|
| 164 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_SEQIV)),y) |
|
| 165 |
++ $(error FIPS canister requires CONFIG_CRYPTO_SEQIV=y) |
|
| 166 |
++endif |
|
| 167 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_RSA)),y) |
|
| 168 |
++ $(error FIPS canister requires CONFIG_CRYPTO_RSA=y) |
|
| 169 |
++endif |
|
| 170 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_MANAGER)),y) |
|
| 171 |
++ $(error FIPS canister requires CONFIG_CRYPTO_MANAGER=y) |
|
| 172 |
++endif |
|
| 173 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_MANAGER2)),y) |
|
| 174 |
++ $(error FIPS canister requires CONFIG_CRYPTO_MANAGER2=y) |
|
| 175 |
++endif |
|
| 176 |
++ifdef CONFIG_CRYPTO_MANAGER_DISABLE_TESTS |
|
| 177 |
++ $(error FIPS canister requires CONFIG_CRYPTO_MANAGER_DISABLE_TESTS to be unset) |
|
| 178 |
++endif |
|
| 179 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_HMAC)),y) |
|
| 180 |
++ $(error FIPS canister requires CONFIG_CRYPTO_HMAC=y) |
|
| 181 |
++endif |
|
| 182 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_SHA256)),y) |
|
| 183 |
++ $(error FIPS canister requires CONFIG_CRYPTO_SHA256=y) |
|
| 184 |
++endif |
|
| 185 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_SHA512)),y) |
|
| 186 |
++ $(error FIPS canister requires CONFIG_CRYPTO_SHA512=y) |
|
| 187 |
++endif |
|
| 188 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_AES)),y) |
|
| 189 |
++ $(error FIPS canister requires CONFIG_CRYPTO_AES=y) |
|
| 190 |
++endif |
|
| 191 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_ECB)),y) |
|
| 192 |
++ $(error FIPS canister requires CONFIG_CRYPTO_ECB=y) |
|
| 193 |
++endif |
|
| 194 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_CBC)),y) |
|
| 195 |
++ $(error FIPS canister requires CONFIG_CRYPTO_CBC=y) |
|
| 196 |
++endif |
|
| 197 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_XTS)),y) |
|
| 198 |
++ $(error FIPS canister requires CONFIG_CRYPTO_XTS=y) |
|
| 199 |
++endif |
|
| 200 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_CTR)),y) |
|
| 201 |
++ $(error FIPS canister requires CONFIG_CRYPTO_CTR=y) |
|
| 202 |
++endif |
|
| 203 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_DRBG)),y) |
|
| 204 |
++ $(error FIPS canister requires CONFIG_CRYPTO_DRBG=y) |
|
| 205 |
++endif |
|
| 206 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_DRBG_HASH)),y) |
|
| 207 |
++ $(error FIPS canister requires CONFIG_CRYPTO_DRBG_HASH=y) |
|
| 208 |
++endif |
|
| 209 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_DRBG_CTR)),y) |
|
| 210 |
++ $(error FIPS canister requires CONFIG_CRYPTO_DRBG_CTR=y) |
|
| 211 |
++endif |
|
| 212 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_ECC)),y) |
|
| 213 |
++ $(error FIPS canister requires CONFIG_CRYPTO_ECC=y) |
|
| 214 |
++endif |
|
| 215 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_ECDH)),y) |
|
| 216 |
++ $(error FIPS canister requires CONFIG_CRYPTO_ECDH=y) |
|
| 217 |
++endif |
|
| 218 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_AES_NI_INTEL)),y) |
|
| 219 |
++ $(error FIPS canister requires CONFIG_CRYPTO_AES_NI_INTEL=y) |
|
| 220 |
++endif |
|
| 221 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_CFB)),y) |
|
| 222 |
++ $(error FIPS canister requires CONFIG_CRYPTO_CFB=y) |
|
| 223 |
++endif |
|
| 224 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_CMAC)),y) |
|
| 225 |
++ $(error FIPS canister requires CONFIG_CRYPTO_CMAC=y) |
|
| 226 |
++endif |
|
| 227 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_CTS)),y) |
|
| 228 |
++ $(error FIPS canister requires CONFIG_CRYPTO_CTS=y) |
|
| 229 |
++endif |
|
| 230 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_ECDSA)),y) |
|
| 231 |
++ $(error FIPS canister requires CONFIG_CRYPTO_ECDSA=y) |
|
| 232 |
++endif |
|
| 233 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_CCM)),y) |
|
| 234 |
++ $(error FIPS canister requires CONFIG_CRYPTO_CCM=y) |
|
| 235 |
++endif |
|
| 236 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_GCM)),y) |
|
| 237 |
++ $(error FIPS canister requires CONFIG_CRYPTO_GCM=y) |
|
| 238 |
++endif |
|
| 239 |
++ifneq ($(subst Y,y,$(CONFIG_CRYPTO_SHA3)),y) |
|
| 240 |
++ $(error FIPS canister requires CONFIG_CRYPTO_SHA3=y) |
|
| 241 |
++endif |
|
| 242 |
++endif |
|
| 243 |
+diff --git a/init/main.c b/init/main.c |
|
| 244 |
+index fe378351e..962edcc54 100644 |
|
| 245 |
+--- a/init/main.c |
|
| 246 |
+@@ -882,6 +882,8 @@ static int __init early_randomize_kstack_offset(char *buf) |
|
| 247 |
+ early_param("randomize_kstack_offset", early_randomize_kstack_offset);
|
|
| 248 |
+ #endif |
|
| 249 |
+ |
|
| 250 |
++extern int fips_integrity_init(void); |
|
| 251 |
++ |
|
| 252 |
+ void __init __weak arch_call_rest_init(void) |
|
| 253 |
+ {
|
|
| 254 |
+ rest_init(); |
|
| 255 |
+@@ -983,6 +985,7 @@ asmlinkage __visible void __init __no_sanitize_address start_kernel(void) |
|
| 256 |
+ /* Architectural and non-timekeeping rng init, before allocator init */ |
|
| 257 |
+ random_init_early(command_line); |
|
| 258 |
+ |
|
| 259 |
++ fips_integrity_init(); |
|
| 260 |
+ /* |
|
| 261 |
+ * These use large bootmem allocations and must precede |
|
| 262 |
+ * kmem_cache_init() |
|
| 263 |
+diff --git a/lib/crypto/Makefile b/lib/crypto/Makefile |
|
| 264 |
+index c852f067a..33d229c6d 100644 |
|
| 265 |
+--- a/lib/crypto/Makefile |
|
| 266 |
+@@ -7,9 +7,6 @@ libcryptoutils-y := memneq.o utils.o |
|
| 267 |
+ obj-y += chacha.o |
|
| 268 |
+ obj-$(CONFIG_CRYPTO_LIB_CHACHA_GENERIC) += libchacha.o |
|
| 269 |
+ |
|
| 270 |
+-obj-$(CONFIG_CRYPTO_LIB_AES) += libaes.o |
|
| 271 |
+-libaes-y := aes.o |
|
| 272 |
+- |
|
| 273 |
+ obj-$(CONFIG_CRYPTO_LIB_ARC4) += libarc4.o |
|
| 274 |
+ libarc4-y := arc4.o |
|
| 275 |
+ |
|
| 276 |
+@@ -37,12 +34,6 @@ libpoly1305-y := poly1305-donna32.o |
|
| 277 |
+ libpoly1305-$(CONFIG_ARCH_SUPPORTS_INT128) := poly1305-donna64.o |
|
| 278 |
+ libpoly1305-y += poly1305.o |
|
| 279 |
+ |
|
| 280 |
+-obj-$(CONFIG_CRYPTO_LIB_SHA1) += libsha1.o |
|
| 281 |
+-libsha1-y := sha1.o |
|
| 282 |
+- |
|
| 283 |
+-obj-$(CONFIG_CRYPTO_LIB_SHA256) += libsha256.o |
|
| 284 |
+-libsha256-y := sha256.o |
|
| 285 |
+- |
|
| 286 |
+ ifneq ($(CONFIG_CRYPTO_MANAGER_DISABLE_TESTS),y) |
|
| 287 |
+ libblake2s-y += blake2s-selftest.o |
|
| 288 |
+ libchacha20poly1305-y += chacha20poly1305-selftest.o |
|
| 289 |
+-- |
|
| 290 |
+2.41.0 |
| ... | ... |
@@ -5177,7 +5177,7 @@ CONFIG_CRYPTO_XTS=y |
| 5177 | 5177 |
# CONFIG_CRYPTO_CHACHA20POLY1305 is not set |
| 5178 | 5178 |
CONFIG_CRYPTO_CCM=y |
| 5179 | 5179 |
CONFIG_CRYPTO_GCM=y |
| 5180 |
-CONFIG_CRYPTO_SEQIV=m |
|
| 5180 |
+CONFIG_CRYPTO_SEQIV=y |
|
| 5181 | 5181 |
CONFIG_CRYPTO_ECHAINIV=m |
| 5182 | 5182 |
CONFIG_CRYPTO_ESSIV=m |
| 5183 | 5183 |
# end of AEAD (authenticated encryption with associated data) ciphers |
| ... | ... |
@@ -10,20 +10,22 @@ Subject: [PATCH] FIPS crypto self tests |
| 10 | 10 |
- Added cts to crypto self-tests |
| 11 | 11 |
- Removed rsa(pkcs1pad, sha512), cbc, and ctr from crypto self-tests |
| 12 | 12 |
- Added ECC pubkey generation and verification success messages |
| 13 |
+- Use drbg_nopr_sha1_tv_template for drbg_nopr_sha1 self-test |
|
| 13 | 14 |
|
| 14 | 15 |
Alexey: add FIPS_NOT_ALLOWED macro |
| 15 | 16 |
Signed-off-by: Srish Srinivasan <ssrish@vmware.com> |
| 17 |
+Signed-off-by: Vamsi Krishna Brahmajosyula <vbrahmajosyula@vmware.com> |
|
| 16 | 18 |
--- |
| 17 | 19 |
crypto/Kconfig | 21 + |
| 18 | 20 |
crypto/Makefile | 1 + |
| 19 |
- crypto/crypto_self_test.c | 119 ++ |
|
| 20 |
- crypto/testmgr.c | 86 +- |
|
| 21 |
- crypto/testmgr.h | 2340 ++++++++++++++++++++++++++++++++++++- |
|
| 22 |
- 5 files changed, 2551 insertions(+), 16 deletions(-) |
|
| 21 |
+ crypto/crypto_self_test.c | 123 ++ |
|
| 22 |
+ crypto/testmgr.c | 91 +- |
|
| 23 |
+ crypto/testmgr.h | 3164 ++++++++++++++++++++++++++++++++++++- |
|
| 24 |
+ 5 files changed, 3383 insertions(+), 17 deletions(-) |
|
| 23 | 25 |
create mode 100644 crypto/crypto_self_test.c |
| 24 | 26 |
|
| 25 | 27 |
diff --git a/crypto/Kconfig b/crypto/Kconfig |
| 26 |
-index bb427a835..a3ad66111 100644 |
|
| 28 |
+index d77966767..c849bb918 100644 |
|
| 27 | 29 |
--- a/crypto/Kconfig |
| 28 | 30 |
+++ b/crypto/Kconfig |
| 29 | 31 |
@@ -229,6 +229,27 @@ config CRYPTO_TEST |
| ... | ... |
@@ -55,7 +57,7 @@ index bb427a835..a3ad66111 100644 |
| 55 | 55 |
tristate |
| 56 | 56 |
select CRYPTO_CRYPTD |
| 57 | 57 |
diff --git a/crypto/Makefile b/crypto/Makefile |
| 58 |
-index a6f94e04e..97f7d05df 10064 |
|
| 58 |
+index 303b21c43..d7fcab76d 100644 |
|
| 59 | 59 |
--- a/crypto/Makefile |
| 60 | 60 |
+++ b/crypto/Makefile |
| 61 | 61 |
@@ -49,6 +49,7 @@ sm2_generic-y += sm2signature.asn1.o |
| ... | ... |
@@ -68,10 +70,10 @@ index a6f94e04e..97f7d05df 10064 |
| 68 | 68 |
$(obj)/ecdsa.o: $(obj)/ecdsasignature.asn1.h |
| 69 | 69 |
diff --git a/crypto/crypto_self_test.c b/crypto/crypto_self_test.c |
| 70 | 70 |
new file mode 100644 |
| 71 |
-index 000000000..c2ffd20c9 |
|
| 71 |
+index 000000000..eb4ed8bdb |
|
| 72 | 72 |
--- /dev/null |
| 73 | 73 |
+++ b/crypto/crypto_self_test.c |
| 74 |
-@@ -0,0 +1,119 @@ |
|
| 74 |
+@@ -0,0 +1,123 @@ |
|
| 75 | 75 |
+/* |
| 76 | 76 |
+ * Self test for Crypto Algorithms |
| 77 | 77 |
+ * |
| ... | ... |
@@ -104,6 +106,10 @@ index 000000000..c2ffd20c9 |
| 104 | 104 |
+ .alg_name = "gcm(aes)", |
| 105 | 105 |
+ }, |
| 106 | 106 |
+ {
|
| 107 |
++ .driver_name = "rfc4106(gcm(aes))", |
|
| 108 |
++ .alg_name = "rfc4106(gcm(aes))", |
|
| 109 |
++ }, |
|
| 110 |
++ {
|
|
| 107 | 111 |
+ .driver_name = "ccm(aes)", |
| 108 | 112 |
+ .alg_name = "ccm(aes)", |
| 109 | 113 |
+ }, |
| ... | ... |
@@ -192,7 +198,7 @@ index 000000000..c2ffd20c9 |
| 192 | 192 |
+} |
| 193 | 193 |
+module_init(crypto_self_test_init); |
| 194 | 194 |
diff --git a/crypto/testmgr.c b/crypto/testmgr.c |
| 195 |
-index 04be52a99..07523e76d 100644 |
|
| 195 |
+index 56c39a0c9..af31ff549 100644 |
|
| 196 | 196 |
--- a/crypto/testmgr.c |
| 197 | 197 |
+++ b/crypto/testmgr.c |
| 198 | 198 |
@@ -3925,6 +3925,7 @@ static int do_test_kpp(struct crypto_kpp *tfm, const struct kpp_testvec *vec, |
| ... | ... |
@@ -235,7 +241,19 @@ index 04be52a99..07523e76d 100644 |
| 235 | 235 |
}, {
|
| 236 | 236 |
.alg = "drbg_nopr_hmac_sha512", |
| 237 | 237 |
.test = alg_test_drbg, |
| 238 |
-@@ -4872,11 +4880,17 @@ static const struct alg_test_desc alg_test_descs[] = {
|
|
| 238 |
+@@ -4860,7 +4868,10 @@ static const struct alg_test_desc alg_test_descs[] = {
|
|
| 239 |
+ }, {
|
|
| 240 |
+ .alg = "drbg_nopr_sha1", |
|
| 241 |
+ .fips_allowed = 1, |
|
| 242 |
+- .test = alg_test_null, |
|
| 243 |
++ .test = alg_test_drbg, |
|
| 244 |
++ .suite = {
|
|
| 245 |
++ .drbg = __VECS(drbg_nopr_sha1_tv_template) |
|
| 246 |
++ } |
|
| 247 |
+ }, {
|
|
| 248 |
+ .alg = "drbg_nopr_sha256", |
|
| 249 |
+ .test = alg_test_drbg, |
|
| 250 |
+@@ -4872,11 +4883,17 @@ static const struct alg_test_desc alg_test_descs[] = {
|
|
| 239 | 251 |
/* covered by drbg_nopr_sha256 test */ |
| 240 | 252 |
.alg = "drbg_nopr_sha384", |
| 241 | 253 |
.fips_allowed = 1, |
| ... | ... |
@@ -255,7 +273,7 @@ index 04be52a99..07523e76d 100644 |
| 255 | 255 |
}, {
|
| 256 | 256 |
.alg = "drbg_pr_ctr_aes128", |
| 257 | 257 |
.test = alg_test_drbg, |
| 258 |
-@@ -4888,15 +4902,24 @@ static const struct alg_test_desc alg_test_descs[] = {
|
|
| 258 |
+@@ -4888,15 +4905,24 @@ static const struct alg_test_desc alg_test_descs[] = {
|
|
| 259 | 259 |
/* covered by drbg_pr_ctr_aes128 test */ |
| 260 | 260 |
.alg = "drbg_pr_ctr_aes192", |
| 261 | 261 |
.fips_allowed = 1, |
| ... | ... |
@@ -283,7 +301,7 @@ index 04be52a99..07523e76d 100644 |
| 283 | 283 |
}, {
|
| 284 | 284 |
.alg = "drbg_pr_hmac_sha256", |
| 285 | 285 |
.test = alg_test_drbg, |
| 286 |
-@@ -4908,15 +4931,24 @@ static const struct alg_test_desc alg_test_descs[] = {
|
|
| 286 |
+@@ -4908,15 +4934,24 @@ static const struct alg_test_desc alg_test_descs[] = {
|
|
| 287 | 287 |
/* covered by drbg_pr_hmac_sha256 test */ |
| 288 | 288 |
.alg = "drbg_pr_hmac_sha384", |
| 289 | 289 |
.fips_allowed = 1, |
| ... | ... |
@@ -311,7 +329,7 @@ index 04be52a99..07523e76d 100644 |
| 311 | 311 |
}, {
|
| 312 | 312 |
.alg = "drbg_pr_sha256", |
| 313 | 313 |
.test = alg_test_drbg, |
| 314 |
-@@ -4928,11 +4960,17 @@ static const struct alg_test_desc alg_test_descs[] = {
|
|
| 314 |
+@@ -4928,11 +4963,17 @@ static const struct alg_test_desc alg_test_descs[] = {
|
|
| 315 | 315 |
/* covered by drbg_pr_sha256 test */ |
| 316 | 316 |
.alg = "drbg_pr_sha384", |
| 317 | 317 |
.fips_allowed = 1, |
| ... | ... |
@@ -331,7 +349,7 @@ index 04be52a99..07523e76d 100644 |
| 331 | 331 |
}, {
|
| 332 | 332 |
.alg = "ecb(aes)", |
| 333 | 333 |
.test = alg_test_skcipher, |
| 334 |
-@@ -5101,12 +5139,14 @@ static const struct alg_test_desc alg_test_descs[] = {
|
|
| 334 |
+@@ -5101,12 +5142,14 @@ static const struct alg_test_desc alg_test_descs[] = {
|
|
| 335 | 335 |
}, {
|
| 336 | 336 |
.alg = "ecdsa-nist-p256", |
| 337 | 337 |
.test = alg_test_akcipher, |
| ... | ... |
@@ -346,7 +364,7 @@ index 04be52a99..07523e76d 100644 |
| 346 | 346 |
.suite = {
|
| 347 | 347 |
.akcipher = __VECS(ecdsa_nist_p384_tv_template) |
| 348 | 348 |
} |
| 349 |
-@@ -5433,10 +5473,20 @@ static const struct alg_test_desc alg_test_descs[] = {
|
|
| 349 |
+@@ -5433,10 +5476,20 @@ static const struct alg_test_desc alg_test_descs[] = {
|
|
| 350 | 350 |
.suite = {
|
| 351 | 351 |
.cipher = __VECS(fcrypt_pcbc_tv_template) |
| 352 | 352 |
} |
| ... | ... |
@@ -368,7 +386,7 @@ index 04be52a99..07523e76d 100644 |
| 368 | 368 |
}, {
|
| 369 | 369 |
.alg = "pkcs1pad(rsa,sha256)", |
| 370 | 370 |
.test = alg_test_akcipher, |
| 371 |
-@@ -5446,12 +5496,18 @@ static const struct alg_test_desc alg_test_descs[] = {
|
|
| 371 |
+@@ -5446,12 +5499,18 @@ static const struct alg_test_desc alg_test_descs[] = {
|
|
| 372 | 372 |
} |
| 373 | 373 |
}, {
|
| 374 | 374 |
.alg = "pkcs1pad(rsa,sha384)", |
| ... | ... |
@@ -390,10 +408,841 @@ index 04be52a99..07523e76d 100644 |
| 390 | 390 |
.alg = "poly1305", |
| 391 | 391 |
.test = alg_test_hash, |
| 392 | 392 |
diff --git a/crypto/testmgr.h b/crypto/testmgr.h |
| 393 |
-index 2e6b280f9..b23d8f1d9 100644 |
|
| 393 |
+index d6088e26f..4f5b35671 100644 |
|
| 394 | 394 |
--- a/crypto/testmgr.h |
| 395 | 395 |
+++ b/crypto/testmgr.h |
| 396 |
-@@ -1228,6 +1228,726 @@ static const struct akcipher_testvec ecrdsa_tv_template[] = {
|
|
| 396 |
+@@ -444,6 +444,830 @@ static const struct akcipher_testvec rsa_tv_template[] = {
|
|
| 397 |
+ .m_size = 8, |
|
| 398 |
+ .c_size = 256, |
|
| 399 |
+ .public_key_vec = true, |
|
| 400 |
++ }, {
|
|
| 401 |
++ .key = |
|
| 402 |
++ "\x30\x82\x08\x62\x02\x01\x00\x02" |
|
| 403 |
++ "\x82\x01\x81\x00\xdb\x3b\x5c\x32" |
|
| 404 |
++ "\xa2\x13\x31\xe2\xb4\x90\xf6\x82" |
|
| 405 |
++ "\x58\x9a\xe4\xe3\x29\x0d\x2f\xac" |
|
| 406 |
++ "\xdd\x07\xa6\x92\x77\xb9\x2f\x3a" |
|
| 407 |
++ "\x50\x4d\x59\x27\xdb\x49\x7b\x91" |
|
| 408 |
++ "\xb7\x6e\x84\x3d\x16\xe9\x9d\xe6" |
|
| 409 |
++ "\xe2\x4c\x7c\x77\xd0\xed\x87\x63" |
|
| 410 |
++ "\x5c\x12\x74\xfb\xac\xe8\x2e\x53" |
|
| 411 |
++ "\x5b\x2d\xf7\xc1\x3a\x51\xbb\x23" |
|
| 412 |
++ "\x83\x1a\x64\x13\x5b\xd9\x41\x43" |
|
| 413 |
++ "\x5f\xb5\x5f\xac\xaf\x13\x18\x7a" |
|
| 414 |
++ "\x51\x6c\xeb\x2f\x1e\x1e\x82\x11" |
|
| 415 |
++ "\x88\x1c\x01\x5d\xc6\x19\xd8\x3a" |
|
| 416 |
++ "\xf6\x78\xe8\xe2\xf3\x43\x05\x4e" |
|
| 417 |
++ "\x9d\x8f\x80\x58\x90\xf1\x96\xf1" |
|
| 418 |
++ "\x54\xc3\xd7\xd3\x48\x2e\x5e\x12" |
|
| 419 |
++ "\xfe\x5b\x04\xb5\x86\xee\x34\x4b" |
|
| 420 |
++ "\x3f\x7b\x13\x8e\x76\x14\x19\xff" |
|
| 421 |
++ "\xea\xfe\x33\xed\xa7\xf7\x2c\x46" |
|
| 422 |
++ "\x77\x7d\x8b\x75\x58\xc3\xca\xf4" |
|
| 423 |
++ "\xe0\x94\x2f\x21\x72\x16\xe7\xd8" |
|
| 424 |
++ "\xce\x2a\xec\xb2\x04\xd1\xa4\x1d" |
|
| 425 |
++ "\xee\x49\x65\x60\xd5\x12\xfe\x59" |
|
| 426 |
++ "\x57\x55\x00\x1d\x81\xdc\x23\xa9" |
|
| 427 |
++ "\x10\x54\x99\x26\xfd\x55\xb7\xb9" |
|
| 428 |
++ "\xdc\xe4\xfc\x76\x8d\x1e\x2e\xf1" |
|
| 429 |
++ "\x1e\x87\xab\xe2\x4f\x25\xe5\x0d" |
|
| 430 |
++ "\x3a\x9d\xc4\x94\x94\xa8\x4d\x04" |
|
| 431 |
++ "\x1a\x28\xed\x3b\xa8\x6d\x5f\xfd" |
|
| 432 |
++ "\x4c\xf1\x1a\x9c\x07\xf1\x20\x55" |
|
| 433 |
++ "\x37\xd7\x60\x2b\xd5\x41\x12\xb9" |
|
| 434 |
++ "\x0d\x4a\x49\xc6\xba\x44\x61\xc0" |
|
| 435 |
++ "\x99\x2e\x10\x63\x7e\xb4\xaa\x74" |
|
| 436 |
++ "\xfe\x8d\x03\xf4\x54\x09\xb3\x88" |
|
| 437 |
++ "\xb0\x53\xc2\x8b\xad\x5a\x92\x3f" |
|
| 438 |
++ "\x94\x7c\x4b\xfd\xfe\xb5\x1d\x65" |
|
| 439 |
++ "\x2f\x80\xc3\x59\x56\x15\x40\xda" |
|
| 440 |
++ "\x17\xbb\x11\xae\x5e\xc0\xed\xd4" |
|
| 441 |
++ "\x3d\x20\xac\x7a\x04\x27\x24\xb7" |
|
| 442 |
++ "\xe8\xc2\x8f\x69\xb2\x67\x5e\x43" |
|
| 443 |
++ "\x65\xc4\x5a\x6f\xdc\x93\xf9\x64" |
|
| 444 |
++ "\x2a\x4e\x2b\xc9\x7f\x36\xe4\x4c" |
|
| 445 |
++ "\x35\x00\xc6\xaf\x43\x21\xd7\x0a" |
|
| 446 |
++ "\x69\xe7\x0f\x36\xf1\x3d\xc4\xcb" |
|
| 447 |
++ "\xa9\x26\xf3\x2b\x18\x21\x0d\xfd" |
|
| 448 |
++ "\xc1\x03\xa6\x95\x9f\x8b\x42\x2a" |
|
| 449 |
++ "\x30\x64\x7d\x54\x9e\x30\x86\xa8" |
|
| 450 |
++ "\x97\x0e\x54\x8b\x96\x52\x6f\xde" |
|
| 451 |
++ "\x1d\xb5\xfb\x87\x02\x82\x01\x80" |
|
| 452 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 453 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 454 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 455 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 456 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 457 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 458 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 459 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 460 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 461 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 462 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 463 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 464 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 465 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 466 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 467 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 468 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 469 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 470 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 471 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 472 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 473 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 474 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 475 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 476 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 477 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 478 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 479 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 480 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 481 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 482 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 483 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 484 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 485 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 486 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 487 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 488 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 489 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 490 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 491 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 492 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 493 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 494 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 495 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 496 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 497 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 498 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 499 |
++ "\x00\x00\x00\x00\x00\x01\x00\x01" |
|
| 500 |
++ "\x02\x82\x01\x80\x6f\xb2\xc3\xdb" |
|
| 501 |
++ "\xec\x66\x19\x41\xa7\xbc\x40\x4c" |
|
| 502 |
++ "\xd3\x36\x40\x2e\x59\x29\x25\xc4" |
|
| 503 |
++ "\x4e\x6d\x6a\x7a\x2f\xd3\xc3\x73" |
|
| 504 |
++ "\x53\x9c\xc5\x33\x20\x70\x45\x2c" |
|
| 505 |
++ "\x4e\x28\x59\xea\x02\x35\x8f\x45" |
|
| 506 |
++ "\x26\xc1\xcf\x9d\x00\x6f\x35\x4e" |
|
| 507 |
++ "\xf3\x87\x57\xe1\x2f\x0c\xb1\x25" |
|
| 508 |
++ "\xb9\x4c\x27\x72\x64\xf3\x65\x84" |
|
| 509 |
++ "\xc7\x74\x77\xce\xc1\x3a\x65\x1d" |
|
| 510 |
++ "\x1d\xb3\x7c\x86\xb0\x40\xeb\x74" |
|
| 511 |
++ "\xce\xed\xce\xba\x17\xff\x75\x47" |
|
| 512 |
++ "\xd7\x70\x65\x65\xd0\xdc\x34\x26" |
|
| 513 |
++ "\x7e\x93\xc6\x1c\x73\xd3\x0e\xee" |
|
| 514 |
++ "\x2a\x2b\x06\x3a\x99\xc6\xed\xa0" |
|
| 515 |
++ "\x12\x0f\x22\x74\xbc\xcf\x1b\x11" |
|
| 516 |
++ "\x54\x55\x2d\x86\x0b\xb4\x6c\x22" |
|
| 517 |
++ "\x76\xba\x8f\x91\x43\x2a\x24\xc1" |
|
| 518 |
++ "\x16\x8a\xe4\x0c\x4f\x4b\x09\x5c" |
|
| 519 |
++ "\xf1\xde\x9e\x62\x70\x92\x79\x62" |
|
| 520 |
++ "\xe0\xd5\xbf\x59\xac\x16\x6d\x94" |
|
| 521 |
++ "\x32\x1e\xfe\xb0\x08\xf2\x83\x4a" |
|
| 522 |
++ "\xd8\xb0\xbe\x9d\x62\x92\xa5\xd3" |
|
| 523 |
++ "\x01\x43\x06\xa7\x02\x16\x16\x79" |
|
| 524 |
++ "\x3a\x1f\xd0\x53\x72\xcf\xa9\x57" |
|
| 525 |
++ "\xe9\x0e\x2f\x89\x73\xfd\xa5\xc5" |
|
| 526 |
++ "\x40\xc2\x55\x3d\x8c\x87\x49\xee" |
|
| 527 |
++ "\x14\x82\x31\xec\x5c\x59\xd6\xc9" |
|
| 528 |
++ "\xd0\xef\x16\x74\x56\xb9\x0d\x3b" |
|
| 529 |
++ "\x86\xb2\x65\x5f\xf1\x50\x37\x4c" |
|
| 530 |
++ "\x7b\x75\x91\x6d\x0e\xe8\x32\x91" |
|
| 531 |
++ "\xb2\xd7\xa9\x8b\xfe\x2d\xca\x8e" |
|
| 532 |
++ "\x04\x71\x3b\x50\x70\xd8\x1e\x02" |
|
| 533 |
++ "\xf2\x9f\xe7\x16\x73\xaf\xeb\x3e" |
|
| 534 |
++ "\x63\x24\xf0\x19\x9b\x87\x5c\x43" |
|
| 535 |
++ "\x6b\x84\xd0\x4b\x74\x2e\xbd\xf6" |
|
| 536 |
++ "\x64\x2a\xac\x6b\x72\x10\x8d\xfd" |
|
| 537 |
++ "\x95\xb0\x2a\x1a\xb5\xfe\x71\xcb" |
|
| 538 |
++ "\xf0\x1f\xcb\xb5\xf8\x3b\x53\xc1" |
|
| 539 |
++ "\xcb\x48\x23\x77\x48\xc4\xa8\xaa" |
|
| 540 |
++ "\x1e\x32\x6b\xee\xb4\x48\xfe\x47" |
|
| 541 |
++ "\xf5\x71\x6b\x8e\xbb\x07\x77\x57" |
|
| 542 |
++ "\x8b\xd6\xc4\x02\x12\x66\x23\x93" |
|
| 543 |
++ "\x67\xbe\xcd\xd5\x0e\xd6\x29\xb6" |
|
| 544 |
++ "\x57\x2e\xe3\xe8\x13\xa5\xbb\xcb" |
|
| 545 |
++ "\xe3\xef\xf2\x0e\xdc\xf8\x5d\x08" |
|
| 546 |
++ "\xb6\x9c\xb0\x73\xf6\x16\x40\x0e" |
|
| 547 |
++ "\xbe\xea\x15\x41\xd4\xe2\xa1\xa5" |
|
| 548 |
++ "\xce\xa9\xdf\x21\x02\x81\xc1\x00" |
|
| 549 |
++ "\xee\xc0\x09\xbb\xd0\x11\x81\x81" |
|
| 550 |
++ "\x37\xce\x0b\xa6\xd6\xc7\xf6\x58" |
|
| 551 |
++ "\x45\x5e\x94\x63\xf0\x8e\x15\xeb" |
|
| 552 |
++ "\x5d\x72\xd9\x10\xfd\xb9\xe1\x30" |
|
| 553 |
++ "\xe0\x04\xde\x70\xb7\xbe\xb9\x68" |
|
| 554 |
++ "\xc8\xbb\x1d\x9b\x58\x35\x08\x8f" |
|
| 555 |
++ "\xa0\x10\x26\x30\xee\xce\xf8\x7b" |
|
| 556 |
++ "\xf5\x20\x4c\x69\xab\xf0\x47\x6d" |
|
| 557 |
++ "\x9a\xa9\x3f\xe3\x05\xeb\xdb\x15" |
|
| 558 |
++ "\x4e\x4f\x9d\x8f\x67\x94\xda\x02" |
|
| 559 |
++ "\x1a\x59\xe2\xc8\x23\x7e\xc1\x96" |
|
| 560 |
++ "\x6f\x1e\xd3\x86\x04\xa1\xdd\xcb" |
|
| 561 |
++ "\x0f\x0e\xa4\x14\x77\xae\x95\xba" |
|
| 562 |
++ "\x1d\x17\x40\x1d\x5b\xab\x49\x4d" |
|
| 563 |
++ "\x96\x6c\x97\xd8\x79\x49\x39\xf9" |
|
| 564 |
++ "\xf9\x41\x38\x09\x5f\x2f\xad\x6e" |
|
| 565 |
++ "\x84\xbc\xba\xfd\x35\x45\x3a\xa8" |
|
| 566 |
++ "\x6c\x50\x2a\x3c\x99\xd8\x07\xc4" |
|
| 567 |
++ "\xe0\xae\xf3\x13\x62\x80\xa7\x05" |
|
| 568 |
++ "\x5c\x6f\xeb\x53\xaf\x9d\x90\xf9" |
|
| 569 |
++ "\xf6\x0c\x81\x52\x24\xc2\x8b\xa5" |
|
| 570 |
++ "\x8d\xc5\x69\xeb\x8f\xe0\x79\xc4" |
|
| 571 |
++ "\x12\xd0\x1b\x31\x03\x2d\xe9\xfd" |
|
| 572 |
++ "\x1e\x7e\x71\x41\xa0\x2e\x6c\x51" |
|
| 573 |
++ "\x02\x81\xc1\x00\xeb\x12\x4f\x16" |
|
| 574 |
++ "\xd1\x7a\x26\x8e\xd9\x12\xa3\x1a" |
|
| 575 |
++ "\x63\xc8\x18\xb7\x8e\xb0\xbb\xa7" |
|
| 576 |
++ "\xca\x7a\x1b\xcc\xe6\xf7\x9a\xb3" |
|
| 577 |
++ "\x32\x13\xe4\xec\x54\x46\xf4\xed" |
|
| 578 |
++ "\xd9\xea\x12\xfb\x46\x43\x5e\x7b" |
|
| 579 |
++ "\xdf\xe1\x0c\xa1\xe2\xe3\x00\xd5" |
|
| 580 |
++ "\x82\xf9\x7a\x77\x10\x1b\xa2\xfb" |
|
| 581 |
++ "\xe6\x4b\x1a\x9f\x16\x38\x17\x6a" |
|
| 582 |
++ "\x91\x25\x23\x16\x76\x57\x3b\x41" |
|
| 583 |
++ "\x37\xda\x79\xdf\x1d\x67\x21\x43" |
|
| 584 |
++ "\xff\xcd\xf8\x50\x14\xe8\xfd\x10" |
|
| 585 |
++ "\xbb\x5f\x72\xb3\x10\xff\x92\xeb" |
|
| 586 |
++ "\x4d\x4f\xaf\x4a\xa3\x09\x6e\x17" |
|
| 587 |
++ "\xc6\x05\x76\x43\xf9\x3e\xe6\xb7" |
|
| 588 |
++ "\xe5\xd5\x63\xe2\x8d\xc7\x5a\xbe" |
|
| 589 |
++ "\xda\x5c\xd0\xa1\xb0\xf6\x15\x2b" |
|
| 590 |
++ "\xbb\xd6\x92\x4a\x5e\xbb\x40\xe9" |
|
| 591 |
++ "\x3d\x87\xd4\x6d\xff\x0e\x3b\xed" |
|
| 592 |
++ "\xcd\xa9\x04\xd3\x7f\x63\xa3\x52" |
|
| 593 |
++ "\x82\x1a\x3b\x03\xe1\x3a\x92\xb6" |
|
| 594 |
++ "\xf1\x9f\xeb\x77\x80\x8a\x44\x36" |
|
| 595 |
++ "\xf6\x86\x94\xef\xb1\x31\xed\x76" |
|
| 596 |
++ "\xdd\x66\xe5\xab\x6c\x9b\xad\xa5" |
|
| 597 |
++ "\xae\x2d\x6c\x57\x02\x81\xc0\x61" |
|
| 598 |
++ "\xb2\x8f\xc9\x1d\x11\xac\xce\xf5" |
|
| 599 |
++ "\xc9\x09\x17\x92\x98\x6d\x04\x1e" |
|
| 600 |
++ "\x0e\xdf\xe6\x2d\x8f\xd7\x04\x63" |
|
| 601 |
++ "\x4f\x15\xe8\x50\x0b\x7a\x4d\x07" |
|
| 602 |
++ "\xbe\xb6\x4f\xa5\xc1\x14\x19\xfe" |
|
| 603 |
++ "\xda\x22\xf9\x68\x94\xfb\x15\xda" |
|
| 604 |
++ "\xc8\x00\xf8\xd1\x20\x3c\xaa\x6c" |
|
| 605 |
++ "\xda\x74\xaa\x61\x43\x87\xd7\x20" |
|
| 606 |
++ "\x0c\xd6\x29\xce\x48\x7f\x74\x2e" |
|
| 607 |
++ "\x81\x81\xd6\x26\xea\xd0\x73\x3f" |
|
| 608 |
++ "\xd9\x3c\x65\xed\xb0\x77\x03\x5a" |
|
| 609 |
++ "\x21\x61\x29\x5c\x47\xe8\x7c\xa9" |
|
| 610 |
++ "\x82\xb2\x3d\xf5\xe3\xa9\x3d\x69" |
|
| 611 |
++ "\x9e\x14\x0c\x6f\x70\x9e\x24\x73" |
|
| 612 |
++ "\xc3\xa8\x37\x5b\x1a\x4d\xf1\x2e" |
|
| 613 |
++ "\xc0\x33\x70\x12\x55\x6e\x40\xe5" |
|
| 614 |
++ "\x6c\x5d\x90\x33\xf6\x4a\x54\x95" |
|
| 615 |
++ "\x4e\x10\x9a\x8f\xd1\xc9\x0c\x15" |
|
| 616 |
++ "\x6d\x41\xe6\xd2\xce\x16\x8a\xa9" |
|
| 617 |
++ "\x12\xdb\x57\x79\x6b\x9e\xe1\xca" |
|
| 618 |
++ "\x7f\xbf\x83\x9f\xab\x44\x7d\xd0" |
|
| 619 |
++ "\x8f\xd2\x12\x24\xe4\x14\xaf\xd9" |
|
| 620 |
++ "\x8a\xf3\x35\x91\x39\x7e\xa0\xa7" |
|
| 621 |
++ "\x93\xd2\x40\xaa\x8d\x94\xa1\x02" |
|
| 622 |
++ "\x81\xc1\x00\x95\xae\xd3\xe3\xa0" |
|
| 623 |
++ "\xc1\x9a\x39\xcd\xa9\x9b\x68\x1b" |
|
| 624 |
++ "\x6f\x77\xa5\xb2\x5b\x81\x32\x87" |
|
| 625 |
++ "\xb0\x97\x71\x33\x05\x29\x61\xbf" |
|
| 626 |
++ "\x9a\x81\x63\xa7\x0a\x83\xbd\xcc" |
|
| 627 |
++ "\xcb\xcb\x08\x6b\xa6\x4c\x4c\xae" |
|
| 628 |
++ "\xb3\x3b\xfa\xfd\x61\x34\xcf\xc0" |
|
| 629 |
++ "\x15\xa1\xd0\x9c\xd6\x2c\x43\x20" |
|
| 630 |
++ "\x52\x64\x82\x36\x80\xc3\x10\x5d" |
|
| 631 |
++ "\x99\xfb\x2c\xbb\x70\x32\x50\x06" |
|
| 632 |
++ "\x03\xbd\x24\xc0\x31\x42\x32\x6d" |
|
| 633 |
++ "\x79\xb7\x0b\x2f\x35\x68\xa7\x35" |
|
| 634 |
++ "\xd8\xc2\x4d\x99\x9e\x53\xec\x37" |
|
| 635 |
++ "\x0f\x6d\x7c\x26\x32\xc4\x02\xa9" |
|
| 636 |
++ "\x5a\x23\x03\x87\x7b\x71\x28\x5a" |
|
| 637 |
++ "\x56\x35\xc3\x36\x2a\x61\xf3\x33" |
|
| 638 |
++ "\x52\x74\x9a\xf0\xf6\xd1\x66\x46" |
|
| 639 |
++ "\xb6\x8b\xf2\x85\x3d\xd1\x48\x73" |
|
| 640 |
++ "\xa0\xc1\x38\xc5\x77\x47\xdb\xd5" |
|
| 641 |
++ "\xe0\x31\x2d\x87\x69\x67\xbf\x0b" |
|
| 642 |
++ "\x0f\x2e\xd2\xfa\xa0\xf4\x79\x3f" |
|
| 643 |
++ "\x84\x68\x48\x70\xf6\x1a\x17\xb1" |
|
| 644 |
++ "\x84\xe2\xe3\x79\xbe\x64\x0a\x13" |
|
| 645 |
++ "\x53\x09\x1d\xce\x0b\x97\x57\xef" |
|
| 646 |
++ "\x80\x07\x03\x02\x81\xc0\x26\xb1" |
|
| 647 |
++ "\x98\x36\x17\xa1\x6e\x69\x48\x2b" |
|
| 648 |
++ "\x58\x51\xbe\x3a\x78\x12\x0b\x4d" |
|
| 649 |
++ "\xf6\x36\xe3\x79\x67\xab\x50\xe9" |
|
| 650 |
++ "\x43\x11\xff\xa1\x5b\x70\x05\x61" |
|
| 651 |
++ "\x96\x89\x83\x3a\xec\xcb\xaf\x12" |
|
| 652 |
++ "\x81\x4c\xfc\xe5\xc1\x4c\x51\xdc" |
|
| 653 |
++ "\x5d\x06\xbe\x97\xbe\x38\xf7\xf6" |
|
| 654 |
++ "\x47\xd7\x3b\xfe\xbf\x03\xb2\x2e" |
|
| 655 |
++ "\xad\x82\xec\x37\xf9\x14\xb1\x28" |
|
| 656 |
++ "\xf9\xff\x3b\x8f\xd6\x0a\xd6\xbf" |
|
| 657 |
++ "\x5c\xa0\x13\x39\x08\x9f\x1b\x79" |
|
| 658 |
++ "\xcf\xc9\xb5\x83\xe8\xb1\x20\x62" |
|
| 659 |
++ "\x27\xbe\x36\xa3\xec\xde\xb7\x70" |
|
| 660 |
++ "\x9b\x48\x72\x23\xb0\xb1\xd0\x06" |
|
| 661 |
++ "\x49\x65\xf0\x46\xe4\xe1\xc7\xa1" |
|
| 662 |
++ "\xa7\x43\x13\x26\xe8\xd8\x9d\x41" |
|
| 663 |
++ "\x03\x6c\xf6\x6f\x3a\x91\xd9\xef" |
|
| 664 |
++ "\x4d\xca\xa3\x2e\x48\x04\x60\xbf" |
|
| 665 |
++ "\xb3\xb8\x5e\xa8\x96\x1b\x56\x60" |
|
| 666 |
++ "\xd6\x89\x9a\x13\xd4\xad\x5c\x5a" |
|
| 667 |
++ "\x5f\x0c\x17\x7c\x78\x2c\xa5\x13" |
|
| 668 |
++ "\x8b\x6f\x50\x21\x13\x8b\x71\x9d" |
|
| 669 |
++ "\xa3\xe9\xf2\x83\x9e\x23\x40\x04" |
|
| 670 |
++ "\x09\x29\x1a\x1f\x4f\x72\x00", |
|
| 671 |
++ .key_len = 2151, |
|
| 672 |
++ /* |
|
| 673 |
++ * m is SHA384 hash of following message: |
|
| 674 |
++ * "\x56\xff\xeb\x36\xf2\xcc\xff\x84" |
|
| 675 |
++ * "\x8c\xf5\x8c\xa5\xc8\xc8\xaa\x67" |
|
| 676 |
++ * "\x77\x6c\xd5\x95\xcc\x37\x82\xf2" |
|
| 677 |
++ * "\x8d\xd8\x7c\x1a\x51\xf3\x0d\x71" |
|
| 678 |
++ * "\x1e\x0f\x89\x90\x36\x49\x31\x71" |
|
| 679 |
++ * "\x3c\xd0\x58\xfc\x58\x3f\x85\x49" |
|
| 680 |
++ * "\x6b\xb9\x8e\x07\xd8\xfe\xbd\xe0" |
|
| 681 |
++ * "\x8f\x22\x80\x24\x3e\x3c\x54\xe5" |
|
| 682 |
++ * "\xf1\xe4\xe4\x4d\x12\x16\x21\x06" |
|
| 683 |
++ * "\x73\xae\x93\x89\x17\x12\x14\x0e" |
|
| 684 |
++ * "\xfc\xba\x56\xa6\xd9\xfe\x56\x03" |
|
| 685 |
++ * "\x5d\x9c\xa6\x57\x50\xa5\x1f\xd0" |
|
| 686 |
++ * "\x5a\x70\x0e\x6d\x4d\x82\x04\xc2" |
|
| 687 |
++ * "\x60\x68\x06\x2e\x02\x1a\x7c\x36" |
|
| 688 |
++ * "\x79\xd0\xca\x5e\x0c\xaf\x55\x00" |
|
| 689 |
++ * "\x51\x31\xd0\x17\xd8\x82\x6f\x79" |
|
| 690 |
++ * "\xdd\x95\xa4\x93\x48\x8e\xde\xc7" |
|
| 691 |
++ * "\x19\x63\x55\x2f\xff\xa7\x35\x2d" |
|
| 692 |
++ * "\xb3\x7f\xd9\xbf\x1f\xfd\x66\xfe" |
|
| 693 |
++ * "\x03\x57\xfb\x2b\x49\x1d\x25\xb6" |
|
| 694 |
++ * "\x97\x05\xd6\x37\x48\x30\xb5\x53" |
|
| 695 |
++ * "\x90\xea\x5b\x72\xad\x59\x57\x4d" |
|
| 696 |
++ * "\x5d\x19\x34\xfe\x38\x06\x7f\xb4" |
|
| 697 |
++ * "\xcd\xed\xc3\xfe\xe2\x6e\xb1\x74" |
|
| 698 |
++ */ |
|
| 699 |
++ .m = |
|
| 700 |
++ "\x3e\xea\x5d\xc1\x7d\x4a\x8e\x82" |
|
| 701 |
++ "\x29\x12\x8f\xc4\x8b\xbd\xea\xfd" |
|
| 702 |
++ "\x7d\x6e\x45\x5d\xcc\xf6\xf0\x36" |
|
| 703 |
++ "\x70\xb7\x14\x02\x53\x50\xca\xcf" |
|
| 704 |
++ "\xe6\xa6\x2e\xa3\xe4\x1e\x8f\xdd" |
|
| 705 |
++ "\x30\x07\xde\x32\x97\x8c\x15\xdb", |
|
| 706 |
++ .m_size = 48, |
|
| 707 |
++ .c = |
|
| 708 |
++ "\x71\xcc\x88\x5c\xde\x7e\x3c\x8c" |
|
| 709 |
++ "\x06\xf7\x7b\x74\x4f\x9c\x9f\x7e" |
|
| 710 |
++ "\xa8\x1f\x6f\xf1\xa7\xc9\x58\x6d" |
|
| 711 |
++ "\x73\x13\x65\x30\xb6\x1f\x2b\xe2" |
|
| 712 |
++ "\xe2\xfd\x97\x91\xf0\x9e\xb4\xb4" |
|
| 713 |
++ "\x7e\x8c\x49\xa8\xd3\x06\x88\xd1" |
|
| 714 |
++ "\x34\xeb\x3b\x04\x08\x86\x2b\xaf" |
|
| 715 |
++ "\x40\x86\x9a\xeb\xfa\x54\xf7\x5a" |
|
| 716 |
++ "\x7f\x10\x0c\x49\xe3\x51\x3f\x69" |
|
| 717 |
++ "\xae\x13\x5d\xf1\xb2\x67\x6c\x32" |
|
| 718 |
++ "\x01\x5a\x01\x0e\x22\xda\xa7\x36" |
|
| 719 |
++ "\xc9\x46\xf5\x9f\xb8\x1b\x48\x83" |
|
| 720 |
++ "\x89\xdd\x1f\xf2\x35\x21\x2d\x49" |
|
| 721 |
++ "\x06\x23\xbe\x10\xaa\x94\x34\xf0" |
|
| 722 |
++ "\x8c\xb2\x41\x81\x73\xba\x7d\x36" |
|
| 723 |
++ "\x5c\x55\x17\x6a\x2c\x9b\x22\xab" |
|
| 724 |
++ "\x2a\x3d\x1d\xa6\x09\x11\xe1\x71" |
|
| 725 |
++ "\x72\x78\xfc\x97\x6e\x51\x9c\xea" |
|
| 726 |
++ "\xd9\x0d\xcc\x52\x0d\x9e\xfc\xf6" |
|
| 727 |
++ "\xad\x75\x21\xb7\x90\x1b\x93\xe0" |
|
| 728 |
++ "\xff\x4a\x72\xb2\x19\x29\x39\x36" |
|
| 729 |
++ "\xfd\x5d\xe5\x15\x91\xc6\x52\x34" |
|
| 730 |
++ "\xd6\xfb\x36\xaf\xc8\x48\xf8\x62" |
|
| 731 |
++ "\xa6\xf5\xbf\x0e\x39\x30\xb1\x2a" |
|
| 732 |
++ "\xe6\xc1\x48\x67\xbc\x6e\x52\x34" |
|
| 733 |
++ "\xed\x74\xbb\x2e\x67\x33\xac\xf7" |
|
| 734 |
++ "\x28\x45\xd4\xee\xec\xb0\x69\xf1" |
|
| 735 |
++ "\xb1\xdf\xf7\x94\xa4\x5b\x03\xc1" |
|
| 736 |
++ "\x3c\x1a\x02\xc9\xbd\xf7\xcd\x19" |
|
| 737 |
++ "\x1f\x05\x7b\xdb\x7f\x12\xc0\x98" |
|
| 738 |
++ "\xf2\xc5\xb0\x14\x35\x8a\x53\x34" |
|
| 739 |
++ "\xb7\x67\x64\xca\x58\x2c\xd3\x0f" |
|
| 740 |
++ "\x28\x36\x3d\xad\xfc\x4f\xdd\x07" |
|
| 741 |
++ "\x96\xa0\x2b\xf0\x3e\xd3\x4a\xd7" |
|
| 742 |
++ "\x97\xfa\x7c\x42\x2e\xd3\xc9\x26" |
|
| 743 |
++ "\x25\x3f\x70\xda\xd3\x8a\xa7\xd7" |
|
| 744 |
++ "\x9e\x99\x8d\x71\x17\x0c\x86\x6d" |
|
| 745 |
++ "\x2b\x5b\xb8\x22\xac\x31\x5d\x0e" |
|
| 746 |
++ "\x0c\xf9\xe7\x74\xdf\x75\x1a\xfa" |
|
| 747 |
++ "\x73\x3b\xa8\xdc\xd0\x86\x0f\x9f" |
|
| 748 |
++ "\xe6\x42\xa9\xe6\xcd\x8e\xfa\x35" |
|
| 749 |
++ "\x2a\x4f\xc5\xea\x70\x15\x22\xe1" |
|
| 750 |
++ "\x5f\x70\x65\xb2\x60\x0e\x82\x7a" |
|
| 751 |
++ "\x58\xef\x01\x7d\x16\x23\x33\xfc" |
|
| 752 |
++ "\x29\x89\xeb\x43\xf1\x9c\xa7\xf4" |
|
| 753 |
++ "\x28\x7d\x30\x8a\x93\x39\xfd\x53" |
|
| 754 |
++ "\x97\x57\x81\x57\x70\xc6\x1f\x94" |
|
| 755 |
++ "\x1e\xa5\xed\x69\xfb\x6a\xd1\xe6", |
|
| 756 |
++ .c_size = 384, |
|
| 757 |
++ }, {
|
|
| 758 |
++ .key = |
|
| 759 |
++ "\x30\x82\x0b\x28\x02\x01\x00\x02" |
|
| 760 |
++ "\x82\x02\x01\x00\xb0\xf8\x80\x65" |
|
| 761 |
++ "\x86\xb7\x22\xf4\x14\x07\x04\xf0" |
|
| 762 |
++ "\x00\xf5\x1f\xc9\x03\x28\xad\x8e" |
|
| 763 |
++ "\xc8\xe4\x0d\xeb\x69\x14\xf9\xcc" |
|
| 764 |
++ "\x4a\xfe\x29\x63\x14\xb9\xcc\x6b" |
|
| 765 |
++ "\xbc\x16\x5b\xf4\x27\x94\x4c\xa0" |
|
| 766 |
++ "\xd6\x68\x6b\xfd\xab\x52\xfe\xd2" |
|
| 767 |
++ "\x53\x3a\x3a\x86\xcd\x6a\x58\x4c" |
|
| 768 |
++ "\xd8\x7a\xa3\xaa\x0f\xae\x92\xab" |
|
| 769 |
++ "\x30\x8a\xc6\x96\x7b\xba\x04\xd4" |
|
| 770 |
++ "\xc2\xea\xb4\xca\xfe\x7e\x84\x9a" |
|
| 771 |
++ "\x69\x2e\xef\x11\x34\xd1\x0d\xa2" |
|
| 772 |
++ "\x1b\x5b\x8f\xb2\x94\x54\xbb\xfa" |
|
| 773 |
++ "\xd6\xff\xb0\x98\xec\xf1\x6c\xd1" |
|
| 774 |
++ "\x61\x52\x1f\xcc\x92\x66\x7f\x95" |
|
| 775 |
++ "\x0c\xd4\xe3\x4b\x54\x24\xb0\xc8" |
|
| 776 |
++ "\xa2\x05\x00\xa9\x93\x88\x64\x82" |
|
| 777 |
++ "\xa9\x35\xa8\xc6\x06\xbd\xc9\x10" |
|
| 778 |
++ "\x88\x91\xf9\xe8\x60\x9a\xbe\x17" |
|
| 779 |
++ "\xc3\x9e\xf4\x6b\x92\xf5\xb4\xe7" |
|
| 780 |
++ "\xa3\x24\xcd\xa9\x42\xb8\xfd\x0e" |
|
| 781 |
++ "\x73\x4b\x2a\x2b\xfc\x2d\x75\x48" |
|
| 782 |
++ "\xf8\x8f\x1b\xad\xd8\xab\xa9\x5a" |
|
| 783 |
++ "\x8c\xde\x63\x12\xe8\x89\xb4\x38" |
|
| 784 |
++ "\x5e\xaa\xfe\xf1\x39\xae\xd6\xdf" |
|
| 785 |
++ "\x76\x4f\xb6\xe3\x4a\x5b\xd3\xe1" |
|
| 786 |
++ "\x4d\xe8\x2e\xe5\x9f\xd2\x56\x51" |
|
| 787 |
++ "\x1b\x5f\x66\x15\x4e\x0d\xfa\xed" |
|
| 788 |
++ "\xb5\x74\xdd\x40\x51\xdc\x72\x56" |
|
| 789 |
++ "\x62\xd9\x21\xd2\x73\xc0\x34\x6d" |
|
| 790 |
++ "\x67\x34\xb4\xcb\xfc\xc3\x83\x44" |
|
| 791 |
++ "\xec\xba\x5c\x44\x66\xb5\xb7\xee" |
|
| 792 |
++ "\x50\x3f\xa6\x79\x5c\xb5\x7d\x93" |
|
| 793 |
++ "\xc1\x6c\x05\x34\xef\xb9\xcd\xf6" |
|
| 794 |
++ "\xb1\x8d\x26\xec\x39\x12\x31\x5d" |
|
| 795 |
++ "\x12\x68\xd2\x9c\xe2\x74\xc4\xe5" |
|
| 796 |
++ "\xbf\x46\x6e\xdd\xb6\x92\xee\xd3" |
|
| 797 |
++ "\x9f\x7b\x4b\xe4\x8b\xde\xf2\x3f" |
|
| 798 |
++ "\xd4\x0e\x5c\x11\x40\x9a\x50\xac" |
|
| 799 |
++ "\x81\xab\x9f\x60\xf5\xad\xa7\xa2" |
|
| 800 |
++ "\xb9\xf9\x57\xe8\xc0\xf3\x24\x1f" |
|
| 801 |
++ "\xa1\x89\x95\x31\x19\x32\x66\xd5" |
|
| 802 |
++ "\x8a\xf5\xe4\x66\x65\xf8\xa1\x5a" |
|
| 803 |
++ "\xfb\xb0\xc6\xef\x47\x87\x4a\x60" |
|
| 804 |
++ "\xdd\x0c\xa5\xfe\xd5\x63\xc4\x39" |
|
| 805 |
++ "\x2c\x2e\xd8\xb1\x7b\x53\xa6\x28" |
|
| 806 |
++ "\xa1\x9f\x1b\xf1\xda\x28\xd9\x7e" |
|
| 807 |
++ "\xdf\x15\xc2\x64\x61\x81\x55\x0a" |
|
| 808 |
++ "\x79\x3d\xe6\x9f\x1e\x59\xc7\x74" |
|
| 809 |
++ "\x16\xb0\x75\x48\x02\xb5\x76\x08" |
|
| 810 |
++ "\x64\x10\x53\x6c\xba\xfa\x8e\x93" |
|
| 811 |
++ "\x1b\x55\xb2\x40\x93\x4d\x30\x1b" |
|
| 812 |
++ "\x1f\x11\xc0\x8a\x7e\x73\xe1\x45" |
|
| 813 |
++ "\x46\x95\x5f\x2a\xde\x09\xe5\x11" |
|
| 814 |
++ "\x1f\xa0\xb3\xa2\x29\x08\xac\x96" |
|
| 815 |
++ "\x28\x3b\x8a\xa1\x1e\xb2\x22\x8c" |
|
| 816 |
++ "\x5e\xc1\xe5\x26\x5b\x9f\x62\xa1" |
|
| 817 |
++ "\xb2\x01\xa2\xba\xa0\x75\xfa\xd3" |
|
| 818 |
++ "\xa4\x23\xd4\x26\x82\xeb\x39\x0a" |
|
| 819 |
++ "\x0c\xc8\x0d\x8a\xc3\xda\x92\x62" |
|
| 820 |
++ "\xd1\x5a\xe1\x3f\x4d\xd7\xf2\x70" |
|
| 821 |
++ "\x32\x9f\x4e\xc9\x24\x18\x34\xfc" |
|
| 822 |
++ "\x5e\xc6\x05\x00\xa8\x3d\x86\x02" |
|
| 823 |
++ "\xf8\x10\xa4\x4b\x6b\xb9\x2c\x84" |
|
| 824 |
++ "\x49\xec\x22\x45\x02\x82\x02\x00" |
|
| 825 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 826 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 827 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 828 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 829 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 830 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 831 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 832 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 833 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 834 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 835 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 836 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 837 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 838 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 839 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 840 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 841 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 842 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 843 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 844 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 845 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 846 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 847 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 848 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 849 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 850 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 851 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 852 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 853 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 854 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 855 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 856 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 857 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 858 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 859 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 860 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 861 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 862 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 863 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 864 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 865 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 866 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 867 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 868 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 869 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 870 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 871 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 872 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 873 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 874 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 875 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 876 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 877 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 878 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 879 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 880 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 881 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 882 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 883 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 884 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 885 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 886 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 887 |
++ "\x00\x00\x00\x00\x00\x00\x00\x00" |
|
| 888 |
++ "\x00\x00\x00\x00\x00\x01\x00\x01" |
|
| 889 |
++ "\x02\x82\x02\x00\x2a\x65\x1d\xbd" |
|
| 890 |
++ "\x34\xac\xa2\xbe\xfe\x1d\x40\x5d" |
|
| 891 |
++ "\x8e\x9d\x2a\x64\x29\x51\x91\x62" |
|
| 892 |
++ "\x67\x55\xda\xcf\xce\x78\xab\xee" |
|
| 893 |
++ "\xf8\xf8\x32\x49\xfe\x29\x14\x83" |
|
| 894 |
++ "\xaa\xa7\x60\x97\xf8\xf3\x59\xf8" |
|
| 895 |
++ "\x1d\xe5\x1e\x19\xc2\xf5\x3a\xfe" |
|
| 896 |
++ "\x7f\xd9\xaf\x33\xa3\xfa\x19\xf5" |
|
| 897 |
++ "\x2e\xd7\x12\x66\x27\x23\x97\x17" |
|
| 898 |
++ "\x53\xa5\xab\x35\x59\xa6\x92\x89" |
|
| 899 |
++ "\xb5\xb8\x2c\x5f\x84\xe0\x22\x3c" |
|
| 900 |
++ "\x2b\x7e\x86\xdf\x04\x5c\x20\x7b" |
|
| 901 |
++ "\xf9\x39\xd2\x0e\xe1\xe1\xfa\xb6" |
|
| 902 |
++ "\x78\xd3\x00\x27\x62\x7b\xe3\xa9" |
|
| 903 |
++ "\xb5\x3a\xcb\x4b\x62\xb7\x13\x51" |
|
| 904 |
++ "\x4d\xa5\xa2\x5d\xe5\x66\x74\xc3" |
|
| 905 |
++ "\x5b\xac\xff\x1f\xa0\xac\x48\x07" |
|
| 906 |
++ "\xd5\x29\x79\xa9\x16\xec\x58\x42" |
|
| 907 |
++ "\x91\xb5\x06\xbd\x58\x87\x39\x8a" |
|
| 908 |
++ "\xcf\xde\x40\x87\x94\xc9\x2f\xf1" |
|
| 909 |
++ "\x5d\xef\xef\x24\xe1\x4b\x17\xb4" |
|
| 910 |
++ "\x62\x82\x5b\x33\xf6\x51\x9d\x8b" |
|
| 911 |
++ "\x41\xa0\x66\xed\x1a\xbe\xe4\xef" |
|
| 912 |
++ "\x40\x57\xf6\x3c\x0d\x61\x0f\xbf" |
|
| 913 |
++ "\x81\x4e\x4d\x8c\xd4\x58\xc2\x38" |
|
| 914 |
++ "\xfe\x4a\xd2\x71\x58\xda\xee\xc3" |
|
| 915 |
++ "\x46\xba\x9c\xa1\x7d\xcc\x11\xc9" |
|
| 916 |
++ "\x94\x59\x22\x47\x70\x4f\x81\x11" |
|
| 917 |
++ "\x79\x2a\xe9\xe6\x02\xb6\x60\xdd" |
|
| 918 |
++ "\xb9\x08\x73\x45\xcb\x5c\xfc\x32" |
|
| 919 |
++ "\x49\x4b\x23\x14\xcb\x14\xbb\x59" |
|
| 920 |
++ "\xc3\xac\x51\x76\x41\x74\xbe\xff" |
|
| 921 |
++ "\x64\x52\x1b\x3b\x09\x76\xa1\xaa" |
|
| 922 |
++ "\xbb\x1f\xda\xe4\xb9\x8d\xd7\x7d" |
|
| 923 |
++ "\x6b\xad\x3f\x87\xac\xe5\x5f\x6d" |
|
| 924 |
++ "\x86\x66\xf1\x1a\x48\xf0\xba\xe8" |
|
| 925 |
++ "\x9c\x49\xb7\x31\x1b\x07\xad\x28" |
|
| 926 |
++ "\x41\x0a\x77\x75\x91\x13\x26\x82" |
|
| 927 |
++ "\x7f\x4a\x9f\x62\x96\x9f\x80\x54" |
|
| 928 |
++ "\xa4\xa5\x33\xd0\x6d\x84\x3c\x3f" |
|
| 929 |
++ "\x9e\xd8\x65\x98\x63\xe2\x77\x76" |
|
| 930 |
++ "\x8f\x89\x60\x68\xcf\x04\x63\x35" |
|
| 931 |
++ "\xbd\xb8\xc0\x5b\xe8\x2e\xb6\xb0" |
|
| 932 |
++ "\x5a\x06\x6c\x53\x02\x98\x1c\x51" |
|
| 933 |
++ "\x7f\x6b\x85\x46\x66\x7a\x08\xc9" |
|
| 934 |
++ "\x67\xca\x30\x40\xca\x5c\x4b\x85" |
|
| 935 |
++ "\x68\x4b\x7b\x9d\x29\x50\x5b\x4e" |
|
| 936 |
++ "\xac\xcb\x9b\xa4\xb9\xe2\x47\x29" |
|
| 937 |
++ "\xdb\x08\x92\x20\xba\x9d\xf8\x11" |
|
| 938 |
++ "\x95\x6c\xc6\x22\x57\xb8\xd6\x76" |
|
| 939 |
++ "\x5e\x64\x78\x2e\x62\x46\x8c\xd8" |
|
| 940 |
++ "\x41\xbc\x26\x2a\x84\xa4\x7b\x62" |
|
| 941 |
++ "\x23\x2e\x78\x12\xb5\x7b\x9b\x89" |
|
| 942 |
++ "\x1b\xae\x7a\x45\x4b\x3c\xf4\x15" |
|
| 943 |
++ "\xac\xa4\xe8\xe3\xe0\x64\x80\x1a" |
|
| 944 |
++ "\x31\x95\xaf\xc5\xd9\x55\x4d\x4e" |
|
| 945 |
++ "\x68\x47\x0d\xa7\x5e\xdd\x5d\x70" |
|
| 946 |
++ "\xe9\xc2\x0a\x32\x7a\x11\x62\x92" |
|
| 947 |
++ "\x5e\x37\x06\x67\x4d\x68\x87\x65" |
|
| 948 |
++ "\xaa\xdb\x41\x35\x6e\x36\xba\xb6" |
|
| 949 |
++ "\x64\x7c\x79\x84\xbe\x35\x16\x43" |
|
| 950 |
++ "\xdf\xf9\xd9\x16\xc1\x49\x62\x49" |
|
| 951 |
++ "\x5f\x14\x0a\x90\x5c\x60\xaf\xee" |
|
| 952 |
++ "\x09\xea\xce\x87\x71\x11\x24\xce" |
|
| 953 |
++ "\xf3\x29\x61\x81\x02\x82\x01\x01" |
|
| 954 |
++ "\x00\xe3\xe0\xd4\x64\xb3\xa8\x8f" |
|
| 955 |
++ "\x16\xd0\x33\xfb\xfc\xca\xc5\x4c" |
|
| 956 |
++ "\xbc\xb7\xc6\xe8\x6c\x71\x55\xbf" |
|
| 957 |
++ "\xe1\xfa\x6e\x12\x48\x3d\x94\xae" |
|
| 958 |
++ "\xb9\x98\xf4\xe1\x59\x24\xfd\x79" |
|
| 959 |
++ "\x73\x6e\xc8\xad\x90\x83\x38\x02" |
|
| 960 |
++ "\x8d\x27\x4c\x87\x56\x5c\xed\x66" |
|
| 961 |
++ "\xbf\xa0\x51\x53\xfa\x7c\x87\x0b" |
|
| 962 |
++ "\xe5\x79\xf5\xda\x3f\x2b\x11\xf5" |
|
| 963 |
++ "\xb4\x1c\xed\x6a\x11\xc6\xfe\x73" |
|
| 964 |
++ "\x2f\x86\x76\x20\x46\x0f\x9b\x84" |
|
| 965 |
++ "\x76\x33\xaa\xc5\xb4\xfa\xe9\x16" |
|
| 966 |
++ "\xbb\x10\xe5\x0c\x3f\x02\x68\x69" |
|
| 967 |
++ "\x10\x81\x30\x4a\x90\x29\xd7\xfb" |
|
| 968 |
++ "\x48\xc7\x98\x59\xb5\xbf\xae\xf6" |
|
| 969 |
++ "\x76\x8f\x6b\x12\xaf\x0d\xc6\x2e" |
|
| 970 |
++ "\x2c\xfe\x35\xdf\x62\x01\xb7\xee" |
|
| 971 |
++ "\x49\xd5\x29\x49\x43\xe4\xfe\x3c" |
|
| 972 |
++ "\x03\xeb\x7a\x04\x6a\xbc\xaf\x44" |
|
| 973 |
++ "\xab\x7d\xe6\x65\xa3\x98\x9c\x77" |
|
| 974 |
++ "\x03\x18\x4e\x90\x13\x3a\x47\x81" |
|
| 975 |
++ "\x8b\x1f\x5d\x11\x6e\xfb\xe2\x56" |
|
| 976 |
++ "\x52\x96\x38\x59\x48\xea\x4e\x9e" |
|
| 977 |
++ "\x25\xe8\xa2\x20\x34\xa3\x90\x1f" |
|
| 978 |
++ "\x01\xee\xa9\x73\xd9\xeb\xca\xbb" |
|
| 979 |
++ "\x36\x76\xc7\x64\xeb\x74\xf7\x10" |
|
| 980 |
++ "\x58\xd1\x77\x41\x91\x1e\xf5\x2b" |
|
| 981 |
++ "\x86\x34\x3f\xe8\x34\x1e\x23\x01" |
|
| 982 |
++ "\xf5\xd6\x36\x40\x60\x50\xec\xd5" |
|
| 983 |
++ "\x22\x57\x75\x77\x75\x3d\xa5\x91" |
|
| 984 |
++ "\xc5\x25\xf0\xc4\xe1\xab\x5b\xa0" |
|
| 985 |
++ "\xb7\x48\xbb\x44\xff\x82\x2c\x40" |
|
| 986 |
++ "\x5d\x02\x82\x01\x01\x00\xc6\xcf" |
|
| 987 |
++ "\x64\x59\xf5\x21\xdf\x0d\x49\xcf" |
|
| 988 |
++ "\x81\x4e\xb4\x73\x45\x65\xa2\x15" |
|
| 989 |
++ "\x89\x33\xd8\x1d\x73\xa1\xa1\xbb" |
|
| 990 |
++ "\x5e\x21\x34\x6e\xb5\xb9\x81\x54" |
|
| 991 |
++ "\x9b\xcb\xc6\x8f\xf2\x23\xc0\x21" |
|
| 992 |
++ "\xf3\x31\xcc\x27\xd5\xae\x43\xec" |
|
| 993 |
++ "\xf2\x8e\x16\xc1\x58\x2b\xe9\x14" |
|
| 994 |
++ "\x6c\x1e\x3e\x3a\x96\xe0\x3a\x7c" |
|
| 995 |
++ "\x39\x19\x07\x00\x97\x8f\x84\xa1" |
|
| 996 |
++ "\x91\x4e\xce\x3b\x2c\xc8\xe5\xfd" |
|
| 997 |
++ "\x45\xad\xcb\x08\xf5\x9d\xf2\x38" |
|
| 998 |
++ "\x80\x14\x5f\xef\xf4\xfb\x2d\xb1" |
|
| 999 |
++ "\x47\x47\xf6\xf9\x1d\x12\xbf\x9d" |
|
| 1000 |
++ "\x8e\x0c\xe4\xd0\xe9\x9a\x0e\x5d" |
|
| 1001 |
++ "\x8c\xc7\xe1\xba\x89\x22\xa0\x56" |
|
| 1002 |
++ "\x8d\x4b\xcb\xb2\x77\xa8\x82\x63" |
|
| 1003 |
++ "\x21\x04\x7d\xbe\xe0\x9f\xa3\xbe" |
|
| 1004 |
++ "\xaf\xe0\xeb\x6c\xc6\x4a\x71\x1b" |
|
| 1005 |
++ "\xfa\xf2\x95\x7e\xf8\x44\x9e\x30" |
|
| 1006 |
++ "\xb8\x7c\xe5\x9b\xc7\xe9\x67\x58" |
|
| 1007 |
++ "\xe4\x53\xa6\x90\x2a\x65\x26\x68" |
|
| 1008 |
++ "\x7b\xee\x4e\xe1\x09\xbf\x58\x3c" |
|
| 1009 |
++ "\xc8\x76\xa1\x85\xd9\x71\x9a\xf9" |
|
| 1010 |
++ "\xeb\xb7\x0f\xb3\x14\x5e\xca\xac" |
|
| 1011 |
++ "\x8d\x4c\xd7\x94\xb2\x17\x1b\x13" |
|
| 1012 |
++ "\x04\xb9\x89\x7c\x64\x58\x2a\x1e" |
|
| 1013 |
++ "\x40\x28\xfe\x81\x7b\xcd\x64\x4b" |
|
| 1014 |
++ "\x24\x96\x6a\xe7\x8c\xd3\x49\xaf" |
|
| 1015 |
++ "\x51\xc6\xfd\xb7\x06\x00\x60\x7e" |
|
| 1016 |
++ "\x6b\x0a\x88\x06\x87\xa4\x03\x6c" |
|
| 1017 |
++ "\x94\x04\x3e\xcd\x02\x3c\xcf\x4d" |
|
| 1018 |
++ "\x1e\xa1\x69\xe3\x6b\x09\x02\x82" |
|
| 1019 |
++ "\x01\x01\x00\x84\x28\x48\x05\x7f" |
|
| 1020 |
++ "\x0c\x2a\xb0\x18\x5f\x8d\xac\xb6" |
|
| 1021 |
++ "\x0c\x66\xcc\xab\xe8\x77\xb3\x2c" |
|
| 1022 |
++ "\xa7\x86\x79\x10\x3b\xf5\xee\x5f" |
|
| 1023 |
++ "\x88\x73\x2c\xc0\x40\x84\xd0\xa6" |
|
| 1024 |
++ "\x5b\x3a\xac\x6f\x7b\x82\xed\x64" |
|
| 1025 |
++ "\xac\x7f\x0e\x4d\xd4\x5c\x49\x01" |
|
| 1026 |
++ "\xeb\xcc\xc3\x25\xbf\x04\xed\x28" |
|
| 1027 |
++ "\x7b\x49\xb2\xf4\x60\x59\x0a\x79" |
|
| 1028 |
++ "\x78\x18\xff\x34\x27\x9c\x74\x62" |
|
| 1029 |
++ "\xeb\xfe\xf1\x79\x11\xd8\xf5\xc8" |
|
| 1030 |
++ "\xe7\x70\x92\xfc\xb3\xf5\xa5\x58" |
|
| 1031 |
++ "\x3f\x06\x27\xc7\x4c\x8f\x25\x9b" |
|
| 1032 |
++ "\xc7\xe1\xe6\xe8\x85\x91\x38\xba" |
|
| 1033 |
++ "\x8b\xbf\xf8\x1d\x89\x85\xbd\x9a" |
|
| 1034 |
++ "\x45\x66\x3a\xac\x42\x74\xbb\x81" |
|
| 1035 |
++ "\x49\x86\x4e\x21\xc0\x2c\xa5\x32" |
|
| 1036 |
++ "\x49\xf1\xb0\x70\x27\x59\x8e\x3e" |
|
| 1037 |
++ "\xa8\x13\x36\x52\xc2\x98\xfd\x2e" |
|
| 1038 |
++ "\x20\x97\xba\xbd\x71\x79\x50\xbf" |
|
| 1039 |
++ "\x99\x3e\x8c\x54\xf4\x7b\x2a\x2b" |
|
| 1040 |
++ "\x8a\x7c\xde\xaa\x79\xd7\x3a\x7e" |
|
| 1041 |
++ "\x6a\x6d\x95\xc7\xf9\x36\x0e\xcb" |
|
| 1042 |
++ "\x94\x7c\xb3\x8f\x8f\x37\x0e\x50" |
|
| 1043 |
++ "\x2d\xad\x4d\xf9\x93\xdc\xd4\x6d" |
|
| 1044 |
++ "\xa3\x4d\x9f\xf0\x93\x03\x3c\x6a" |
|
| 1045 |
++ "\xc1\x3e\x81\xc4\x39\x5d\x95\x44" |
|
| 1046 |
++ "\x56\xfb\xbf\x01\x5e\x6e\xd4\x8b" |
|
| 1047 |
++ "\x05\xd2\x85\x38\x8e\x8e\x17\x4d" |
|
| 1048 |
++ "\xd7\x8c\x64\x36\x44\xb1\xdb\x14" |
|
| 1049 |
++ "\xbd\x89\x24\xc5\x34\x35\x7a\x8b" |
|
| 1050 |
++ "\x5e\xc0\x7e\x8b\x77\xd0\x34\x3e" |
|
| 1051 |
++ "\xd2\x5b\x21\x02\x82\x01\x01\x00" |
|
| 1052 |
++ "\xc4\x7c\x86\x1e\x8e\x31\xca\xa3" |
|
| 1053 |
++ "\xf4\x75\xfb\xc3\x50\x7e\xb8\x70" |
|
| 1054 |
++ "\x88\xef\xa5\xe9\x32\x47\x71\x57" |
|
| 1055 |
++ "\xa6\x63\x6a\xd5\x80\x5f\x86\x84" |
|
| 1056 |
++ "\xef\x78\x32\x7e\x04\x21\x91\xdb" |
|
| 1057 |
++ "\x99\x71\x34\x4c\xdc\x0b\xe6\x98" |
|
| 1058 |
++ "\xd3\x93\x23\xea\x20\x3d\x38\x2a" |
|
| 1059 |
++ "\x35\xb2\xb4\x64\x73\x76\x2e\x55" |
|
| 1060 |
++ "\x30\x18\x43\xca\x23\x6c\x87\x5e" |
|
| 1061 |
++ "\x15\x64\x25\x1b\x70\xa1\x75\x52" |
|
| 1062 |
++ "\x9c\x53\x63\x81\x2f\x30\x0c\xa7" |
|
| 1063 |
++ "\xec\x93\xc0\xa9\xe2\x63\x62\x88" |
|
| 1064 |
++ "\xb8\x91\x03\xf4\xf0\xf7\x25\xaf" |
|
| 1065 |
++ "\xb8\xe7\x3b\x54\x2c\xf4\xf8\x5b" |
|
| 1066 |
++ "\x04\xa5\x9a\x94\x95\xd8\x68\xde" |
|
| 1067 |
++ "\x6a\xfe\xff\xa8\x90\x8a\x32\xce" |
|
| 1068 |
++ "\xbd\x06\xc1\xc4\x11\x8f\x0b\xab" |
|
| 1069 |
++ "\x5b\x07\x04\x06\x54\x46\xed\xf6" |
|
| 1070 |
++ "\xf6\xb1\x03\xa4\xaa\xf1\x90\xe7" |
|
| 1071 |
++ "\x28\x3c\xd8\xa8\xbf\xb8\xe5\xac" |
|
| 1072 |
++ "\x1d\x32\xf2\x7e\x66\x19\x07\x7d" |
|
| 1073 |
++ "\x6e\xa7\x47\x0c\xb0\xb2\xa2\x92" |
|
| 1074 |
++ "\x94\xdf\x85\xf4\x11\x11\x1b\x65" |
|
| 1075 |
++ "\xb7\x18\x17\xc9\x95\xdf\x94\x5b" |
|
| 1076 |
++ "\x57\x0d\x90\x9d\x08\x57\x72\x67" |
|
| 1077 |
++ "\x79\x9f\xa3\x44\xc7\xc7\xc3\xd8" |
|
| 1078 |
++ "\x8a\xcf\xd8\xf3\x6b\x0d\x87\xd0" |
|
| 1079 |
++ "\xe7\xb5\x88\x54\x8d\x15\x89\xcd" |
|
| 1080 |
++ "\xec\x7e\x34\x61\x69\xb1\x70\x62" |
|
| 1081 |
++ "\x00\xfc\x10\x48\x99\x45\x72\xdb" |
|
| 1082 |
++ "\x3b\x73\x1d\x1a\xd1\x02\x86\x9a" |
|
| 1083 |
++ "\x98\xfb\x0c\x31\xd5\x58\x29\x19" |
|
| 1084 |
++ "\x02\x82\x01\x00\x00\x87\x87\x9b" |
|
| 1085 |
++ "\x3d\x45\x6c\xfb\x63\x20\xa1\xb9" |
|
| 1086 |
++ "\xf5\x69\xce\x6b\x96\xae\x69\xf0" |
|
| 1087 |
++ "\xe1\xf2\x8b\x39\x2a\x18\xc8\xca" |
|
| 1088 |
++ "\x58\xc1\x30\x2f\x15\xca\x93\x89" |
|
| 1089 |
++ "\x38\x37\x83\x85\x6e\x09\x5b\xad" |
|
| 1090 |
++ "\xac\x43\x23\xa3\x19\xfd\x1d\xc8" |
|
| 1091 |
++ "\xa2\x8f\x75\x55\xc8\xf7\x0e\x37" |
|
| 1092 |
++ "\xa8\x52\xd1\xb6\x94\x03\xc9\xe1" |
|
| 1093 |
++ "\xbf\xde\x4f\xd9\x3c\xa0\xc4\x2d" |
|
| 1094 |
++ "\x7d\x6a\x57\x02\xb6\x17\x05\xd7" |
|
| 1095 |
++ "\x0d\x43\xce\xf0\x2b\x95\xb3\x31" |
|
| 1096 |
++ "\xdf\x96\x03\x36\x5e\x5d\xed\xbd" |
|
| 1097 |
++ "\x71\xc3\xf2\x64\x2c\x3d\x3b\x64" |
|
| 1098 |
++ "\xfa\x3b\x83\x94\x6d\x07\xda\x52" |
|
| 1099 |
++ "\x44\x60\x51\xe5\x4b\xcf\x1d\xec" |
|
| 1100 |
++ "\x50\x50\xa6\xea\x39\x40\x18\x17" |
|
| 1101 |
++ "\x1d\xd8\xd2\xdf\xc9\x4e\x52\xf4" |
|
| 1102 |
++ "\x92\x95\x49\xd6\x3d\x1e\x03\xa2" |
|
| 1103 |
++ "\x85\xd7\x5c\xa4\x84\x6c\x80\x22" |
|
| 1104 |
++ "\x63\x14\x6c\x41\x20\x23\xbb\x54" |
|
| 1105 |
++ "\xc7\x05\x5f\xb7\xb4\x4e\xbd\x79" |
|
| 1106 |
++ "\x7d\xeb\xb6\x47\xcc\x70\xeb\x0e" |
|
| 1107 |
++ "\x98\x12\x09\x44\x7e\x22\x34\x6a" |
|
| 1108 |
++ "\x11\x17\x2f\xdd\xe2\xac\x51\xe9" |
|
| 1109 |
++ "\x97\x1c\xb1\xe9\xa2\x3e\xb2\xce" |
|
| 1110 |
++ "\x25\x9d\xb6\x67\xed\x11\x93\xa8" |
|
| 1111 |
++ "\x62\x49\xcb\x35\x41\xd2\xdd\x9b" |
|
| 1112 |
++ "\xb5\xb4\xcb\xcf\xd3\xd5\x09\xc4" |
|
| 1113 |
++ "\xfe\xfe\x49\x01\xc7\x0a\xe8\x9d" |
|
| 1114 |
++ "\xe3\x09\xa9\x3d\x73\x7f\x20\x8f" |
|
| 1115 |
++ "\xbb\x56\xda\x27\x28\x39\xbc\xf6" |
|
| 1116 |
++ "\x59\xfe\x77\xb2\x00", |
|
| 1117 |
++ .key_len = 2861, |
|
| 1118 |
++ /* |
|
| 1119 |
++ * m is SHA1 hash of following message: |
|
| 1120 |
++ * "\x15\x1a\x49\x51\x70\x2b\x73\xd2" |
|
| 1121 |
++ * "\xe6\xd0\xdc\x0d\x75\x72\x3a\xfd" |
|
| 1122 |
++ * "\x3f\x1c\xa8\x78\x3a\x3e\x1e\xfd" |
|
| 1123 |
++ * "\x69\x6e\xf5\x77\x45\x92\xce\x9b" |
|
| 1124 |
++ * "\x4b\xf7\x61\x12\xba\xbc\x18\xc4" |
|
| 1125 |
++ * "\x0d\x53\x5f\x79\x4e\x18\xfb\x42" |
|
| 1126 |
++ * "\x88\x7c\x78\x71\xae\x8a\xae\x76" |
|
| 1127 |
++ * "\x2c\x03\x0d\x89\xef\x80\x25\x46" |
|
| 1128 |
++ * "\x4a\x2a\x26\x70\xb5\xc3\x7a\xb7" |
|
| 1129 |
++ * "\x8e\x57\x03\xe9\xb5\x4a\x01\x76" |
|
| 1130 |
++ * "\xf7\xe5\xf8\x6b\xd8\x18\xc6\x71" |
|
| 1131 |
++ * "\x68\x17\xd5\x34\x73\xa6\x1b\x10" |
|
| 1132 |
++ * "\x3c\x14\xc4\x50\x8f\xf3\x28\x81" |
|
| 1133 |
++ * "\xe8\x51\x8a\x75\xfc\x16\x8d\x01" |
|
| 1134 |
++ * "\x37\x81\x30\x0b\x91\x62\x5b\x0f" |
|
| 1135 |
++ * "\x7a\xb6\x64\xde\x44\x62\x08\x18" |
|
| 1136 |
++ * "\xcc\xff\x00\x42\x4c\x39\xf8\x28" |
|
| 1137 |
++ * "\xf0\x89\xce\x33\x28\x41\x28\xcc" |
|
| 1138 |
++ * "\xf5\x19\x96\x7c\xbf\xe7\x10\x3d" |
|
| 1139 |
++ * "\x57\x10\x89\x88\x1b\x19\x0b\xb6" |
|
| 1140 |
++ * "\x84\xb2\xb6\x24\xe3\x82\x1b\xce" |
|
| 1141 |
++ * "\xfe\xf0\xf3\xa1\x9f\xb2\x1f\x04" |
|
| 1142 |
++ * "\x3f\x7f\xf7\x4f\x19\x8d\xcb\x83" |
|
| 1143 |
++ * "\x24\xe3\xc5\x67\x08\xf6\x18\xe3" |
|
| 1144 |
++ * "\x2b\x6d\xe6\x47\x46\x67\x4c\xec" |
|
| 1145 |
++ * "\x69\xaf\x0a\x8b\x6a\x35\x20\x1d" |
|
| 1146 |
++ * "\x77\x91\x7f\x34\xfd\x36\x24\x6b" |
|
| 1147 |
++ * "\xfa\xfd\x8c\x2f\x6f\x85\x7e\x08" |
|
| 1148 |
++ * "\x7b\x5e\xd6\xc0\xd0\x97\x95\xbe" |
|
| 1149 |
++ * "\xb4\xf4\x86\x3d\xf8\xc6\x80\xb1" |
|
| 1150 |
++ * "\x12\x35\xec\x86\xff\x94\x41\x02" |
|
| 1151 |
++ * "\x2e\xb7\xde\xdc\x25\x00\xe0\xf0" |
|
| 1152 |
++ */ |
|
| 1153 |
++ .m = |
|
| 1154 |
++ "\x11\xf6\xe7\xb6\x78\x4b\xaf\x4e" |
|
| 1155 |
++ "\xe2\x48\x2a\x00\x48\x9c\xc9\xf6" |
|
| 1156 |
++ "\x4e\xc0\x6f\x13", |
|
| 1157 |
++ .m_size = 20, |
|
| 1158 |
++ .c = |
|
| 1159 |
++ "\x59\x13\xb0\xd9\x68\xe8\xe3\x0b" |
|
| 1160 |
++ "\x46\x0f\xdf\x4c\x0d\x23\x83\x86" |
|
| 1161 |
++ "\xa0\x16\x46\xc8\x9e\xca\x9a\xda" |
|
| 1162 |
++ "\x1e\xc4\x69\xd3\xc5\x84\x3d\x32" |
|
| 1163 |
++ "\x73\xf2\x4c\x85\x22\x3f\x07\xd0" |
|
| 1164 |
++ "\xfc\x0e\x36\xdb\x3c\xdd\x07\xb5" |
|
| 1165 |
++ "\x09\xd0\x0b\x2e\xe1\x04\x0b\x02" |
|
| 1166 |
++ "\xb5\x68\x91\xfa\x17\x83\xf7\xb3" |
|
| 1167 |
++ "\x40\xea\x86\xc4\x70\x6e\xa0\x1b" |
|
| 1168 |
++ "\x5c\x9b\xbe\x8a\xf9\x2d\xb6\x28" |
|
| 1169 |
++ "\xeb\xcc\x73\xbb\x60\x50\x51\xfa" |
|
| 1170 |
++ "\xbc\x6c\x52\x0c\x1c\x13\x37\xaa" |
|
| 1171 |
++ "\xff\x06\xc0\xc8\xff\x75\x1b\x17" |
|
| 1172 |
++ "\x01\xe7\x59\x6e\xa6\x71\x29\xbe" |
|
| 1173 |
++ "\xf2\x85\xe9\x2e\xb1\x09\x90\xe6" |
|
| 1174 |
++ "\xab\x1d\x99\xf2\xce\x66\x6d\xd6" |
|
| 1175 |
++ "\xf9\x02\x76\x00\x2f\xd3\xd3\x2e" |
|
| 1176 |
++ "\x98\x2d\x2c\x92\x4e\x3f\xc3\xb8" |
|
| 1177 |
++ "\x29\x6d\x11\x30\x6f\xa4\x33\x87" |
|
| 1178 |
++ "\x6b\xe9\x69\x99\xea\x4d\x99\x60" |
|
| 1179 |
++ "\x37\xd9\xbb\x1b\x54\x63\xab\x62" |
|
| 1180 |
++ "\x00\xc3\xdd\x2b\x33\xaf\xf2\x22" |
|
| 1181 |
++ "\xa9\xd8\x66\xe4\x7b\x2b\xe6\xf7" |
|
| 1182 |
++ "\x9e\x4a\x13\xc8\x6b\x3f\x0a\xd9" |
|
| 1183 |
++ "\x31\x9c\xb2\x80\xf2\x00\x43\xd3" |
|
| 1184 |
++ "\x70\x49\x89\xb4\x09\x6d\xde\xc9" |
|
| 1185 |
++ "\x07\x84\x77\x85\xbc\x84\x47\xcf" |
|
| 1186 |
++ "\x4f\xa8\x3b\x11\xc0\x41\x33\xbb" |
|
| 1187 |
++ "\x54\x11\xa2\x66\xdd\x44\xd0\x87" |
|
| 1188 |
++ "\xc5\xea\x6a\xc1\x08\x8d\x9a\x0b" |
|
| 1189 |
++ "\x8b\x9e\xd8\x5c\x03\xf6\x13\x4a" |
|
| 1190 |
++ "\xd8\xdb\x5b\xcd\x35\x91\xbc\x69" |
|
| 1191 |
++ "\x40\x83\x8a\xbe\xba\x45\xd2\xf4" |
|
| 1192 |
++ "\x08\x04\xc4\x9f\x2f\xf1\xe2\x0b" |
|
| 1193 |
++ "\xb7\xec\x91\x5a\xe4\xbe\xa3\xb6" |
|
| 1194 |
++ "\xc9\xec\x79\x3c\x60\x0a\x6a\xe9" |
|
| 1195 |
++ "\x93\xa4\xec\x3e\xbb\x84\x59\xad" |
|
| 1196 |
++ "\x65\x09\x10\x0b\xcd\xa7\x1b\xdf" |
|
| 1197 |
++ "\xec\x15\x2f\xb1\xac\x5c\xf6\xab" |
|
| 1198 |
++ "\x44\x99\xa3\xae\x82\xeb\x01\x7a" |
|
| 1199 |
++ "\x17\x4a\xa6\xe2\x4f\x4f\x77\x0b" |
|
| 1200 |
++ "\xd6\x25\x54\x82\x53\xa4\xf9\x23" |
|
| 1201 |
++ "\x41\xa0\xa3\x4a\x88\xc2\xf8\xfa" |
|
| 1202 |
++ "\x51\x0a\xd7\x0f\xbd\x1e\xf3\x52" |
|
| 1203 |
++ "\x2a\x21\x3d\xb8\x04\xa5\xbc\x5b" |
|
| 1204 |
++ "\xa2\x61\xcf\x89\xc0\xce\x9b\x6a" |
|
| 1205 |
++ "\xd6\x29\xbe\x82\x7f\x36\xd1\x64" |
|
| 1206 |
++ "\x6e\x7c\x35\x0c\x3f\x55\xb1\x23" |
|
| 1207 |
++ "\x2f\x84\xbb\x56\x52\xe5\x0b\x0e" |
|
| 1208 |
++ "\x88\xac\x17\xb1\x6c\x1c\x60\xfc" |
|
| 1209 |
++ "\x82\xae\xe5\x3a\x1d\x3f\x40\x48" |
|
| 1210 |
++ "\x5d\xbc\xc0\xba\x89\x9b\x26\x33" |
|
| 1211 |
++ "\xec\x18\x3b\xa8\xfc\x5b\x35\xc0" |
|
| 1212 |
++ "\x25\xd1\xc8\x79\x72\x74\x8e\x5a" |
|
| 1213 |
++ "\xa3\xf1\x72\x63\x72\xec\xfd\xc7" |
|
| 1214 |
++ "\xe4\x14\x0d\xeb\xd0\x4b\x17\xd1" |
|
| 1215 |
++ "\x8a\x28\x43\x8f\x30\xce\xf6\x87" |
|
| 1216 |
++ "\xe3\xd5\xe3\xce\xd0\x54\xaa\x5d" |
|
| 1217 |
++ "\x65\x7b\xf7\x67\xeb\x5e\x5d\xf4" |
|
| 1218 |
++ "\x73\x2a\x86\x71\x14\x09\x25\x1c" |
|
| 1219 |
++ "\x48\xd9\x98\xc8\x0a\x15\x58\x62" |
|
| 1220 |
++ "\x51\xe7\x7c\xce\x0a\xf0\x6d\xd9" |
|
| 1221 |
++ "\x20\x68\x11\x8c\x3b\x2d\xd9\xcb" |
|
| 1222 |
++ "\x13\xe1\x1c\xe3\x2c\x80\xbb\x9a", |
|
| 1223 |
++ .c_size = 512, |
|
| 1224 |
+ #ifndef CONFIG_CRYPTO_FIPS |
|
| 1225 |
+ }, {
|
|
| 1226 |
+ .key = |
|
| 1227 |
+@@ -1228,6 +2052,726 @@ static const struct akcipher_testvec ecrdsa_tv_template[] = {
|
|
| 397 | 1228 |
/* |
| 398 | 1229 |
* PKCS#1 RSA test vectors. Obtained from CAVS testing. |
| 399 | 1230 |
*/ |
| ... | ... |
@@ -1120,7 +1969,7 @@ index 2e6b280f9..b23d8f1d9 100644 |
| 1120 | 1120 |
static const struct akcipher_testvec pkcs1pad_rsa_tv_template[] = {
|
| 1121 | 1121 |
{
|
| 1122 | 1122 |
.key = |
| 1123 |
-@@ -1344,6 +2064,845 @@ static const struct akcipher_testvec pkcs1pad_rsa_tv_template[] = {
|
|
| 1123 |
+@@ -1344,6 +2888,845 @@ static const struct akcipher_testvec pkcs1pad_rsa_tv_template[] = {
|
|
| 1124 | 1124 |
} |
| 1125 | 1125 |
}; |
| 1126 | 1126 |
|
| ... | ... |
@@ -1966,7 +2815,7 @@ index 2e6b280f9..b23d8f1d9 100644 |
| 1966 | 1966 |
static const struct kpp_testvec dh_tv_template[] = {
|
| 1967 | 1967 |
{
|
| 1968 | 1968 |
.secret = |
| 1969 |
-@@ -4399,6 +5958,52 @@ static const struct kpp_testvec ecdh_p384_tv_template[] = {
|
|
| 1969 |
+@@ -4399,6 +6782,52 @@ static const struct kpp_testvec ecdh_p384_tv_template[] = {
|
|
| 1970 | 1970 |
.b_public_size = 96, |
| 1971 | 1971 |
.expected_a_public_size = 96, |
| 1972 | 1972 |
.expected_ss_size = 48 |
| ... | ... |
@@ -2019,7 +2868,7 @@ index 2e6b280f9..b23d8f1d9 100644 |
| 2019 | 2019 |
} |
| 2020 | 2020 |
}; |
| 2021 | 2021 |
|
| 2022 |
-@@ -7640,6 +9245,98 @@ static const struct hash_testvec aes_cmac128_tv_template[] = {
|
|
| 2022 |
+@@ -7640,6 +10069,98 @@ static const struct hash_testvec aes_cmac128_tv_template[] = {
|
|
| 2023 | 2023 |
"\x69\x6a\x2c\x05\x6c\x31\x54\x10", |
| 2024 | 2024 |
.psize = 64, |
| 2025 | 2025 |
.ksize = 32, |
| ... | ... |
@@ -2118,7 +2967,7 @@ index 2e6b280f9..b23d8f1d9 100644 |
| 2118 | 2118 |
} |
| 2119 | 2119 |
}; |
| 2120 | 2120 |
|
| 2121 |
-@@ -22994,6 +24691,185 @@ static const struct cprng_testvec ansi_cprng_aes_tv_template[] = {
|
|
| 2121 |
+@@ -22994,6 +25515,185 @@ static const struct cprng_testvec ansi_cprng_aes_tv_template[] = {
|
|
| 2122 | 2122 |
}, |
| 2123 | 2123 |
}; |
| 2124 | 2124 |
|
| ... | ... |
@@ -2304,7 +3153,7 @@ index 2e6b280f9..b23d8f1d9 100644 |
| 2304 | 2304 |
/* |
| 2305 | 2305 |
* SP800-90A DRBG Test vectors from |
| 2306 | 2306 |
* http://csrc.nist.gov/groups/STM/cavp/documents/drbg/drbgtestvectors.zip |
| 2307 |
-@@ -23318,6 +25194,40 @@ static const struct drbg_testvec drbg_pr_hmac_sha256_tv_template[] = {
|
|
| 2307 |
+@@ -23318,6 +26018,40 @@ static const struct drbg_testvec drbg_pr_hmac_sha256_tv_template[] = {
|
|
| 2308 | 2308 |
}, |
| 2309 | 2309 |
}; |
| 2310 | 2310 |
|
| ... | ... |
@@ -2345,7 +3194,7 @@ index 2e6b280f9..b23d8f1d9 100644 |
| 2345 | 2345 |
static const struct drbg_testvec drbg_pr_ctr_aes128_tv_template[] = {
|
| 2346 | 2346 |
{
|
| 2347 | 2347 |
.entropy = (unsigned char *) |
| 2348 |
-@@ -23434,6 +25344,283 @@ static const struct drbg_testvec drbg_pr_ctr_aes128_tv_template[] = {
|
|
| 2348 |
+@@ -23434,6 +26168,283 @@ static const struct drbg_testvec drbg_pr_ctr_aes128_tv_template[] = {
|
|
| 2349 | 2349 |
}, |
| 2350 | 2350 |
}; |
| 2351 | 2351 |
|
| ... | ... |
@@ -2629,7 +3478,7 @@ index 2e6b280f9..b23d8f1d9 100644 |
| 2629 | 2629 |
/* |
| 2630 | 2630 |
* SP800-90A DRBG Test vectors from |
| 2631 | 2631 |
* http://csrc.nist.gov/groups/STM/cavp/documents/drbg/drbgtestvectors.zip |
| 2632 |
-@@ -23564,6 +25751,70 @@ static const struct drbg_testvec drbg_nopr_sha256_tv_template[] = {
|
|
| 2632 |
+@@ -23564,6 +26575,70 @@ static const struct drbg_testvec drbg_nopr_sha256_tv_template[] = {
|
|
| 2633 | 2633 |
}, |
| 2634 | 2634 |
}; |
| 2635 | 2635 |
|
| ... | ... |
@@ -2700,7 +3549,7 @@ index 2e6b280f9..b23d8f1d9 100644 |
| 2700 | 2700 |
static const struct drbg_testvec drbg_nopr_hmac_sha256_tv_template[] = {
|
| 2701 | 2701 |
{
|
| 2702 | 2702 |
.entropy = (unsigned char *) |
| 2703 |
-@@ -34639,7 +36890,94 @@ static const struct cipher_testvec cts_mode_tv_template[] = {
|
|
| 2703 |
+@@ -34639,7 +37714,94 @@ static const struct cipher_testvec cts_mode_tv_template[] = {
|
|
| 2704 | 2704 |
"\x26\x73\x0d\xbc\x2f\x7b\xc8\x40" |
| 2705 | 2705 |
"\x9d\xad\x8b\xbb\x96\xc4\xcd\xc0" |
| 2706 | 2706 |
"\x3b\xc1\x03\xe1\xa1\x94\xbb\xd8", |
| ... | ... |
@@ -2797,4 +3646,4 @@ index 2e6b280f9..b23d8f1d9 100644 |
| 2797 | 2797 |
|
| 2798 | 2798 |
/* |
| 2799 | 2799 |
-- |
| 2800 |
-2.39.0 |
|
| 2800 |
+2.41.0 |
| ... | ... |
@@ -14,7 +14,7 @@ |
| 14 | 14 |
Summary: Kernel |
| 15 | 15 |
Name: linux-secure |
| 16 | 16 |
Version: 6.1.62 |
| 17 |
-Release: 2%{?kat_build:.kat}%{?dist}
|
|
| 17 |
+Release: 3%{?kat_build:.kat}%{?dist}
|
|
| 18 | 18 |
License: GPLv2 |
| 19 | 19 |
URL: http://www.kernel.org |
| 20 | 20 |
Group: System Environment/Kernel |
| ... | ... |
@@ -163,7 +163,7 @@ Patch510: FIPS-do-not-allow-not-certified-algos-in-fips-2.patch |
| 163 | 163 |
# Below patches are common for fips and canister_build flags |
| 164 | 164 |
# 0001-FIPS-canister-binary-usage.patch is renamed as <ver-rel>-0001-FIPS-canister-binary-usage.patch |
| 165 | 165 |
# in both places until final canister binary is released |
| 166 |
-Patch10000: 6.1.56-3-0001-FIPS-canister-binary-usage.patch |
|
| 166 |
+Patch10000: 6.1.60-2-0001-FIPS-canister-binary-usage.patch |
|
| 167 | 167 |
Patch10001: 0001-scripts-kallsyms-Extra-kallsyms-parsing.patch |
| 168 | 168 |
# Below patches are specific to canister_build flag |
| 169 | 169 |
Patch10003: 0002-FIPS-canister-creation.patch |
| ... | ... |
@@ -332,25 +332,6 @@ cp %{SOURCE28} crypto/
|
| 332 | 332 |
sed -i 's/CONFIG_LOCALVERSION="-secure"/CONFIG_LOCALVERSION="-%{release}-secure"/' .config
|
| 333 | 333 |
|
| 334 | 334 |
%if 0%{?canister_build}
|
| 335 |
-sed -i "s/CONFIG_DEBUG_LIST=y/# CONFIG_DEBUG_LIST is not set/" .config |
|
| 336 |
-sed -i "s/CONFIG_BUG_ON_DATA_CORRUPTION=y/# CONFIG_BUG_ON_DATA_CORRUPTION is not set/" .config |
|
| 337 |
-sed -i "s/CONFIG_CRYPTO_AEAD=m/CONFIG_CRYPTO_AEAD=y/" .config |
|
| 338 |
-sed -i "s/CONFIG_CRYPTO_SIMD=m/CONFIG_CRYPTO_SIMD=y/" .config |
|
| 339 |
-sed -i "s/CONFIG_CRYPTO_AES_NI_INTEL=m/CONFIG_CRYPTO_AES_NI_INTEL=y/" .config |
|
| 340 |
-sed -i "s/CONFIG_CRYPTO_CMAC=m/CONFIG_CRYPTO_CMAC=y/" .config |
|
| 341 |
-sed -i "s/CONFIG_CRYPTO_CTS=m/CONFIG_CRYPTO_CTS=y/" .config |
|
| 342 |
-sed -i "s/CONFIG_CRYPTO_CCM=m/CONFIG_CRYPTO_CCM=y/" .config |
|
| 343 |
-sed -i "s/CONFIG_CRYPTO_GHASH=m/CONFIG_CRYPTO_GHASH=y/" .config |
|
| 344 |
-sed -i "s/CONFIG_CRYPTO_GF128MUL=m/CONFIG_CRYPTO_GF128MUL=y/" .config |
|
| 345 |
-sed -i "s/CONFIG_CRYPTO_NULL=m/CONFIG_CRYPTO_NULL=y/" .config |
|
| 346 |
-sed -i "s/CONFIG_CRYPTO_GCM=m/CONFIG_CRYPTO_GCM=y/" .config |
|
| 347 |
-# Disable JUMP_LABEL, PRINTK_INDEX in canister |
|
| 348 |
-sed -i "/# CONFIG_STATIC_KEYS_SELFTEST is not set/d" .config |
|
| 349 |
-sed -i "s/CONFIG_JUMP_LABEL=y/# CONFIG_JUMP_LABEL is not set/" .config |
|
| 350 |
-sed -i "/CONFIG_DRM_USE_DYNAMIC_DEBUG=y/d" .config |
|
| 351 |
-sed -i "/# CONFIG_KFENCE_STATIC_KEYS is not set/d" .config |
|
| 352 |
-sed -i "s/CONFIG_PRINTK_INDEX=y/# CONFIG_PRINTK_INDEX is not set/" .config |
|
| 353 |
- |
|
| 354 | 335 |
sed -i "0,/FIPS_CANISTER_VERSION.*$/s/FIPS_CANISTER_VERSION.*$/FIPS_CANISTER_VERSION \"%{lkcm_version}\"/" crypto/fips_integrity.c
|
| 355 | 336 |
sed -i "0,/FIPS_KERNEL_VERSION.*$/s/FIPS_KERNEL_VERSION.*$/FIPS_KERNEL_VERSION \"%{version}-%{release}-secure\"/" crypto/fips_integrity.c
|
| 356 | 337 |
|
| ... | ... |
@@ -479,6 +460,9 @@ ln -sf linux-%{uname_r}.cfg /boot/photon.cfg
|
| 479 | 479 |
%endif |
| 480 | 480 |
|
| 481 | 481 |
%changelog |
| 482 |
+* Tue Dec 05 2023 Keerthana K <keerthanak@vmware.com> 6.1.62-3 |
|
| 483 |
+- Include seqiv and geniv into canister |
|
| 484 |
+- Add missing rsa, drbg_nopr_sha1, rfc4106(gcm(aes)) self-test |
|
| 482 | 485 |
* Wed Nov 29 2023 Brennan Lamoreaux <blamoreaux@vmware.com> 6.1.62-2 |
| 483 | 486 |
- Fix for CVE-2023-2176 |
| 484 | 487 |
* Wed Nov 29 2023 Ankit Jain <ankitja@vmware.com> 6.1.62-1 |