diff --git a/0374-libgcrypt-Import-libgcrypt-1.11.patch b/0374-libgcrypt-Import-libgcrypt-1.11.patch new file mode 100644 index 0000000..c772106 --- /dev/null +++ b/0374-libgcrypt-Import-libgcrypt-1.11.patch @@ -0,0 +1,261873 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Vladimir Serbinenko +Date: Mon, 7 Jul 2025 14:52:07 +0000 +Subject: [PATCH] libgcrypt: Import libgcrypt 1.11 + +We currently use an old version of libgcrypt which results in us having +fewer ciphers and missing on many other improvements. + +Signed-off-by: Vladimir Serbinenko +Reviewed-by: Daniel Kiper +--- + grub-core/Makefile.core.def | 8 - + grub-core/lib/libgcrypt/AUTHORS | 274 + + grub-core/lib/libgcrypt/COPYING | 339 + + grub-core/lib/libgcrypt/COPYING.LIB | 502 + + grub-core/lib/libgcrypt/LICENSES | 319 + + grub-core/lib/libgcrypt/README | 278 + + grub-core/lib/libgcrypt/README.GIT | 49 + + grub-core/lib/libgcrypt/THANKS | 168 + + grub-core/lib/libgcrypt/VERSION | 1 + + grub-core/lib/libgcrypt/cipher/ChangeLog | 3990 --- + grub-core/lib/libgcrypt/cipher/ChangeLog-2011 | 40 +- + grub-core/lib/libgcrypt/cipher/Makefile.am | 330 +- + grub-core/lib/libgcrypt/cipher/Manifest | 73 - + grub-core/lib/libgcrypt/cipher/ac.c | 3301 --- + grub-core/lib/libgcrypt/cipher/arcfour-amd64.S | 108 + + grub-core/lib/libgcrypt/cipher/arcfour.c | 93 +- + .../lib/libgcrypt/cipher/aria-aesni-avx-amd64.S | 1440 ++ + .../lib/libgcrypt/cipher/aria-aesni-avx2-amd64.S | 1830 ++ + .../lib/libgcrypt/cipher/aria-gfni-avx512-amd64.S | 1010 + + grub-core/lib/libgcrypt/cipher/aria.c | 1768 ++ + .../lib/libgcrypt/cipher/asm-common-aarch64.h | 132 + + grub-core/lib/libgcrypt/cipher/asm-common-amd64.h | 213 + + grub-core/lib/libgcrypt/cipher/asm-common-i386.h | 161 + + grub-core/lib/libgcrypt/cipher/asm-common-s390x.h | 90 + + grub-core/lib/libgcrypt/cipher/asm-inline-s390x.h | 205 + + .../lib/libgcrypt/cipher/asm-poly1305-aarch64.h | 245 + + .../lib/libgcrypt/cipher/asm-poly1305-amd64.h | 171 + + .../lib/libgcrypt/cipher/asm-poly1305-s390x.h | 140 + + grub-core/lib/libgcrypt/cipher/bithelp.h | 111 +- + grub-core/lib/libgcrypt/cipher/blake2.c | 1086 + + .../lib/libgcrypt/cipher/blake2b-amd64-avx2.S | 301 + + .../lib/libgcrypt/cipher/blake2b-amd64-avx512.S | 429 + + grub-core/lib/libgcrypt/cipher/blake2s-amd64-avx.S | 281 + + .../lib/libgcrypt/cipher/blake2s-amd64-avx512.S | 397 + + grub-core/lib/libgcrypt/cipher/blowfish-amd64.S | 601 + + grub-core/lib/libgcrypt/cipher/blowfish-arm.S | 743 + + grub-core/lib/libgcrypt/cipher/blowfish.c | 792 +- + grub-core/lib/libgcrypt/cipher/bufhelp.h | 458 +- + grub-core/lib/libgcrypt/cipher/bulkhelp.h | 493 + + .../lib/libgcrypt/cipher/camellia-aarch64-ce.c | 42 + + grub-core/lib/libgcrypt/cipher/camellia-aarch64.S | 585 + + .../libgcrypt/cipher/camellia-aesni-avx-amd64.S | 2802 ++ + .../libgcrypt/cipher/camellia-aesni-avx2-amd64.S | 34 + + .../libgcrypt/cipher/camellia-aesni-avx2-amd64.h | 2327 ++ + grub-core/lib/libgcrypt/cipher/camellia-arm.S | 626 + + .../libgcrypt/cipher/camellia-gfni-avx2-amd64.S | 34 + + .../libgcrypt/cipher/camellia-gfni-avx512-amd64.S | 1634 ++ + grub-core/lib/libgcrypt/cipher/camellia-glue.c | 1670 +- + grub-core/lib/libgcrypt/cipher/camellia-ppc8le.c | 47 + + grub-core/lib/libgcrypt/cipher/camellia-ppc9le.c | 47 + + grub-core/lib/libgcrypt/cipher/camellia-simd128.h | 2235 ++ + .../libgcrypt/cipher/camellia-vaes-avx2-amd64.S | 35 + + grub-core/lib/libgcrypt/cipher/camellia.c | 172 +- + grub-core/lib/libgcrypt/cipher/camellia.h | 34 +- + grub-core/lib/libgcrypt/cipher/cast5-amd64.S | 663 + + grub-core/lib/libgcrypt/cipher/cast5-arm.S | 728 + + grub-core/lib/libgcrypt/cipher/cast5.c | 769 +- + grub-core/lib/libgcrypt/cipher/chacha20-aarch64.S | 650 + + .../lib/libgcrypt/cipher/chacha20-amd64-avx2.S | 604 + + .../lib/libgcrypt/cipher/chacha20-amd64-avx512.S | 736 + + .../lib/libgcrypt/cipher/chacha20-amd64-ssse3.S | 1015 + + .../lib/libgcrypt/cipher/chacha20-armv7-neon.S | 393 + + grub-core/lib/libgcrypt/cipher/chacha20-p10le-8x.s | 864 + + grub-core/lib/libgcrypt/cipher/chacha20-ppc.c | 750 + + grub-core/lib/libgcrypt/cipher/chacha20-s390x.S | 1566 ++ + grub-core/lib/libgcrypt/cipher/chacha20.c | 1450 ++ + grub-core/lib/libgcrypt/cipher/cipher-aeswrap.c | 380 + + grub-core/lib/libgcrypt/cipher/cipher-cbc.c | 292 + + grub-core/lib/libgcrypt/cipher/cipher-ccm.c | 419 + + grub-core/lib/libgcrypt/cipher/cipher-cfb.c | 317 + + grub-core/lib/libgcrypt/cipher/cipher-cmac.c | 292 + + grub-core/lib/libgcrypt/cipher/cipher-ctr.c | 131 + + grub-core/lib/libgcrypt/cipher/cipher-eax.c | 293 + + .../lib/libgcrypt/cipher/cipher-gcm-armv7-neon.S | 341 + + .../libgcrypt/cipher/cipher-gcm-armv8-aarch32-ce.S | 588 + + .../libgcrypt/cipher/cipher-gcm-armv8-aarch64-ce.S | 633 + + .../lib/libgcrypt/cipher/cipher-gcm-intel-pclmul.c | 2025 ++ + grub-core/lib/libgcrypt/cipher/cipher-gcm-ppc.c | 548 + + grub-core/lib/libgcrypt/cipher/cipher-gcm-siv.c | 664 + + grub-core/lib/libgcrypt/cipher/cipher-gcm.c | 1260 + + grub-core/lib/libgcrypt/cipher/cipher-internal.h | 975 + + grub-core/lib/libgcrypt/cipher/cipher-ocb.c | 763 + + grub-core/lib/libgcrypt/cipher/cipher-ofb.c | 108 + + grub-core/lib/libgcrypt/cipher/cipher-poly1305.c | 383 + + grub-core/lib/libgcrypt/cipher/cipher-siv.c | 375 + + grub-core/lib/libgcrypt/cipher/cipher-xts.c | 189 + + grub-core/lib/libgcrypt/cipher/cipher.c | 2896 +-- + .../lib/libgcrypt/cipher/crc-armv8-aarch64-ce.S | 500 + + grub-core/lib/libgcrypt/cipher/crc-armv8-ce.c | 229 + + grub-core/lib/libgcrypt/cipher/crc-intel-pclmul.c | 939 + + grub-core/lib/libgcrypt/cipher/crc-ppc.c | 656 + + grub-core/lib/libgcrypt/cipher/crc.c | 192 +- + grub-core/lib/libgcrypt/cipher/des-amd64.S | 1116 + + grub-core/lib/libgcrypt/cipher/des.c | 301 +- + grub-core/lib/libgcrypt/cipher/dsa-common.c | 473 + + grub-core/lib/libgcrypt/cipher/dsa.c | 1199 +- + grub-core/lib/libgcrypt/cipher/ecc-common.h | 143 + + grub-core/lib/libgcrypt/cipher/ecc-curves.c | 1587 ++ + grub-core/lib/libgcrypt/cipher/ecc-ecdh.c | 357 + + grub-core/lib/libgcrypt/cipher/ecc-ecdsa.c | 305 + + grub-core/lib/libgcrypt/cipher/ecc-eddsa.c | 1079 + + grub-core/lib/libgcrypt/cipher/ecc-gost.c | 218 + + grub-core/lib/libgcrypt/cipher/ecc-misc.c | 469 + + grub-core/lib/libgcrypt/cipher/ecc-sm2.c | 569 + + grub-core/lib/libgcrypt/cipher/ecc.c | 3296 ++- + grub-core/lib/libgcrypt/cipher/elgamal.c | 827 +- + grub-core/lib/libgcrypt/cipher/gost-s-box.c | 266 + + grub-core/lib/libgcrypt/cipher/gost-sb.h | 2128 ++ + grub-core/lib/libgcrypt/cipher/gost.h | 34 + + grub-core/lib/libgcrypt/cipher/gost28147.c | 553 + + grub-core/lib/libgcrypt/cipher/gostr3411-94.c | 383 + + grub-core/lib/libgcrypt/cipher/hash-common.c | 108 +- + grub-core/lib/libgcrypt/cipher/hash-common.h | 29 + + grub-core/lib/libgcrypt/cipher/hmac-tests.c | 732 - + grub-core/lib/libgcrypt/cipher/idea.c | 24 +- + grub-core/lib/libgcrypt/cipher/kdf-internal.h | 39 + + grub-core/lib/libgcrypt/cipher/kdf.c | 2239 +- + .../lib/libgcrypt/cipher/keccak-amd64-avx512.S | 587 + + grub-core/lib/libgcrypt/cipher/keccak-armv7-neon.S | 945 + + grub-core/lib/libgcrypt/cipher/keccak.c | 1904 ++ + grub-core/lib/libgcrypt/cipher/keccak_permute_32.h | 536 + + grub-core/lib/libgcrypt/cipher/keccak_permute_64.h | 385 + + grub-core/lib/libgcrypt/cipher/kem-ecc.c | 332 + + grub-core/lib/libgcrypt/cipher/kem-ecc.h | 40 + + grub-core/lib/libgcrypt/cipher/kem.c | 435 + + grub-core/lib/libgcrypt/cipher/kyber-common.c | 766 + + grub-core/lib/libgcrypt/cipher/kyber-kdep.c | 825 + + grub-core/lib/libgcrypt/cipher/kyber.c | 530 + + grub-core/lib/libgcrypt/cipher/kyber.h | 130 + + grub-core/lib/libgcrypt/cipher/mac-cmac.c | 532 + + grub-core/lib/libgcrypt/cipher/mac-gmac.c | 203 + + grub-core/lib/libgcrypt/cipher/mac-hmac.c | 1471 ++ + grub-core/lib/libgcrypt/cipher/mac-internal.h | 290 + + grub-core/lib/libgcrypt/cipher/mac-poly1305.c | 382 + + grub-core/lib/libgcrypt/cipher/mac.c | 834 + + grub-core/lib/libgcrypt/cipher/mceliece6688128f.c | 3673 +++ + grub-core/lib/libgcrypt/cipher/mceliece6688128f.h | 63 + + grub-core/lib/libgcrypt/cipher/md.c | 1610 +- + grub-core/lib/libgcrypt/cipher/md4.c | 169 +- + grub-core/lib/libgcrypt/cipher/md5.c | 175 +- + .../lib/libgcrypt/cipher/poly1305-amd64-avx512.S | 1626 ++ + grub-core/lib/libgcrypt/cipher/poly1305-internal.h | 92 + + grub-core/lib/libgcrypt/cipher/poly1305-p10le.s | 841 + + grub-core/lib/libgcrypt/cipher/poly1305-s390x.S | 87 + + grub-core/lib/libgcrypt/cipher/poly1305.c | 846 + + grub-core/lib/libgcrypt/cipher/primegen.c | 561 +- + grub-core/lib/libgcrypt/cipher/pubkey-internal.h | 107 + + grub-core/lib/libgcrypt/cipher/pubkey-util.c | 1363 + + grub-core/lib/libgcrypt/cipher/pubkey.c | 4281 +-- + grub-core/lib/libgcrypt/cipher/rfc2268.c | 57 +- + grub-core/lib/libgcrypt/cipher/rijndael-aarch64.S | 512 + + grub-core/lib/libgcrypt/cipher/rijndael-aesni.c | 5033 ++++ + grub-core/lib/libgcrypt/cipher/rijndael-amd64.S | 477 + + grub-core/lib/libgcrypt/cipher/rijndael-arm.S | 581 + + .../libgcrypt/cipher/rijndael-armv8-aarch32-ce.S | 2134 ++ + .../libgcrypt/cipher/rijndael-armv8-aarch64-ce.S | 2038 ++ + grub-core/lib/libgcrypt/cipher/rijndael-armv8-ce.c | 396 + + .../lib/libgcrypt/cipher/rijndael-gcm-p10le.s | 1401 + + grub-core/lib/libgcrypt/cipher/rijndael-internal.h | 216 + + grub-core/lib/libgcrypt/cipher/rijndael-p10le.c | 119 + + grub-core/lib/libgcrypt/cipher/rijndael-padlock.c | 109 + + .../lib/libgcrypt/cipher/rijndael-ppc-common.h | 328 + + .../lib/libgcrypt/cipher/rijndael-ppc-functions.h | 2544 ++ + grub-core/lib/libgcrypt/cipher/rijndael-ppc.c | 230 + + grub-core/lib/libgcrypt/cipher/rijndael-ppc9le.c | 119 + + grub-core/lib/libgcrypt/cipher/rijndael-s390x.c | 1166 + + .../libgcrypt/cipher/rijndael-ssse3-amd64-asm.S | 879 + + .../lib/libgcrypt/cipher/rijndael-ssse3-amd64.c | 742 + + grub-core/lib/libgcrypt/cipher/rijndael-tables.h | 1846 +- + .../libgcrypt/cipher/rijndael-vaes-avx2-amd64.S | 3688 +++ + .../lib/libgcrypt/cipher/rijndael-vaes-avx2-i386.S | 2804 ++ + .../lib/libgcrypt/cipher/rijndael-vaes-i386.c | 231 + + grub-core/lib/libgcrypt/cipher/rijndael-vaes.c | 240 + + grub-core/lib/libgcrypt/cipher/rijndael.c | 2629 +- + grub-core/lib/libgcrypt/cipher/rmd160.c | 586 +- + grub-core/lib/libgcrypt/cipher/rsa-common.c | 1151 + + grub-core/lib/libgcrypt/cipher/rsa.c | 1774 +- + grub-core/lib/libgcrypt/cipher/salsa20-amd64.S | 940 + + .../lib/libgcrypt/cipher/salsa20-armv7-neon.S | 899 + + grub-core/lib/libgcrypt/cipher/salsa20.c | 600 + + grub-core/lib/libgcrypt/cipher/scrypt.c | 322 + + grub-core/lib/libgcrypt/cipher/seed.c | 32 +- + .../lib/libgcrypt/cipher/serpent-armv7-neon.S | 1180 + + .../lib/libgcrypt/cipher/serpent-avx2-amd64.S | 1214 + + .../lib/libgcrypt/cipher/serpent-avx512-x86.c | 994 + + .../lib/libgcrypt/cipher/serpent-sse2-amd64.S | 1276 + + grub-core/lib/libgcrypt/cipher/serpent.c | 2017 +- + grub-core/lib/libgcrypt/cipher/sha1-armv7-neon.S | 526 + + .../lib/libgcrypt/cipher/sha1-armv8-aarch32-ce.S | 220 + + .../lib/libgcrypt/cipher/sha1-armv8-aarch64-ce.S | 204 + + grub-core/lib/libgcrypt/cipher/sha1-avx-amd64.S | 433 + + .../lib/libgcrypt/cipher/sha1-avx-bmi2-amd64.S | 446 + + .../lib/libgcrypt/cipher/sha1-avx2-bmi2-amd64.S | 578 + + grub-core/lib/libgcrypt/cipher/sha1-intel-shaext.c | 292 + + grub-core/lib/libgcrypt/cipher/sha1-ssse3-amd64.S | 442 + + grub-core/lib/libgcrypt/cipher/sha1.c | 567 +- + grub-core/lib/libgcrypt/cipher/sha1.h | 47 + + .../lib/libgcrypt/cipher/sha256-armv8-aarch32-ce.S | 231 + + .../lib/libgcrypt/cipher/sha256-armv8-aarch64-ce.S | 218 + + grub-core/lib/libgcrypt/cipher/sha256-avx-amd64.S | 511 + + .../lib/libgcrypt/cipher/sha256-avx2-bmi2-amd64.S | 533 + + .../lib/libgcrypt/cipher/sha256-intel-shaext.c | 363 + + grub-core/lib/libgcrypt/cipher/sha256-ppc.c | 610 + + .../lib/libgcrypt/cipher/sha256-ssse3-amd64.S | 533 + + grub-core/lib/libgcrypt/cipher/sha256.c | 771 +- + grub-core/lib/libgcrypt/cipher/sha512-arm.S | 464 + + grub-core/lib/libgcrypt/cipher/sha512-armv7-neon.S | 452 + + .../lib/libgcrypt/cipher/sha512-armv8-aarch64-ce.S | 383 + + grub-core/lib/libgcrypt/cipher/sha512-avx-amd64.S | 466 + + .../lib/libgcrypt/cipher/sha512-avx2-bmi2-amd64.S | 507 + + .../lib/libgcrypt/cipher/sha512-avx512-amd64.S | 465 + + grub-core/lib/libgcrypt/cipher/sha512-ppc.c | 725 + + .../lib/libgcrypt/cipher/sha512-ssse3-amd64.S | 472 + + grub-core/lib/libgcrypt/cipher/sha512-ssse3-i386.c | 404 + + grub-core/lib/libgcrypt/cipher/sha512.c | 1304 +- + grub-core/lib/libgcrypt/cipher/sm3-aarch64.S | 660 + + .../lib/libgcrypt/cipher/sm3-armv8-aarch64-ce.S | 221 + + .../lib/libgcrypt/cipher/sm3-avx-bmi2-amd64.S | 555 + + grub-core/lib/libgcrypt/cipher/sm3.c | 565 + + grub-core/lib/libgcrypt/cipher/sm4-aarch64.S | 644 + + .../lib/libgcrypt/cipher/sm4-aesni-avx-amd64.S | 1058 + + .../lib/libgcrypt/cipher/sm4-aesni-avx2-amd64.S | 973 + + .../lib/libgcrypt/cipher/sm4-armv8-aarch64-ce.S | 731 + + .../libgcrypt/cipher/sm4-armv9-aarch64-sve-ce.S | 967 + + .../lib/libgcrypt/cipher/sm4-gfni-avx2-amd64.S | 1260 + + .../lib/libgcrypt/cipher/sm4-gfni-avx512-amd64.S | 1861 ++ + grub-core/lib/libgcrypt/cipher/sm4-ppc.c | 342 + + grub-core/lib/libgcrypt/cipher/sm4.c | 2070 ++ + grub-core/lib/libgcrypt/cipher/sntrup761.c | 1062 + + grub-core/lib/libgcrypt/cipher/sntrup761.h | 73 + + grub-core/lib/libgcrypt/cipher/stribog.c | 1362 + + grub-core/lib/libgcrypt/cipher/test-getrusage.c | 105 - + grub-core/lib/libgcrypt/cipher/tiger.c | 309 +- + grub-core/lib/libgcrypt/cipher/twofish-aarch64.S | 322 + + grub-core/lib/libgcrypt/cipher/twofish-amd64.S | 1258 + + grub-core/lib/libgcrypt/cipher/twofish-arm.S | 363 + + .../lib/libgcrypt/cipher/twofish-avx2-amd64.S | 1136 + + grub-core/lib/libgcrypt/cipher/twofish.c | 954 +- + .../lib/libgcrypt/cipher/whirlpool-sse2-amd64.S | 348 + + grub-core/lib/libgcrypt/cipher/whirlpool.c | 334 +- + grub-core/lib/libgcrypt/compat/Makefile.am | 48 + + grub-core/lib/libgcrypt/compat/clock.c | 36 + + grub-core/lib/libgcrypt/compat/compat.c | 40 + + grub-core/lib/libgcrypt/compat/getpid.c | 29 + + grub-core/lib/libgcrypt/compat/libcompat.h | 37 + + grub-core/lib/libgcrypt/config.h.in | 873 + + grub-core/lib/libgcrypt/configure | 25763 +++++++++++++++++++ + grub-core/lib/libgcrypt/configure.ac | 3883 +++ + grub-core/lib/libgcrypt/mkinstalldirs | 161 + + grub-core/lib/libgcrypt/mpi/ChangeLog-2011 | 17 +- + grub-core/lib/libgcrypt/mpi/Makefile.am | 16 +- + grub-core/lib/libgcrypt/mpi/Manifest | 41 - + .../mpi/{pentium4/sse2 => aarch64}/distfiles | 1 + + grub-core/lib/libgcrypt/mpi/aarch64/mpi-asm-defs.h | 4 + + grub-core/lib/libgcrypt/mpi/aarch64/mpih-add1.S | 75 + + grub-core/lib/libgcrypt/mpi/aarch64/mpih-mul1.S | 100 + + grub-core/lib/libgcrypt/mpi/aarch64/mpih-mul2.S | 112 + + grub-core/lib/libgcrypt/mpi/aarch64/mpih-mul3.S | 125 + + grub-core/lib/libgcrypt/mpi/aarch64/mpih-sub1.S | 75 + + grub-core/lib/libgcrypt/mpi/alpha/README | 4 +- + grub-core/lib/libgcrypt/mpi/alpha/mpih-add1.S | 4 +- + grub-core/lib/libgcrypt/mpi/alpha/mpih-lshift.S | 4 +- + grub-core/lib/libgcrypt/mpi/alpha/mpih-mul1.S | 4 +- + grub-core/lib/libgcrypt/mpi/alpha/mpih-mul2.S | 4 +- + grub-core/lib/libgcrypt/mpi/alpha/mpih-mul3.S | 4 +- + grub-core/lib/libgcrypt/mpi/alpha/mpih-rshift.S | 4 +- + grub-core/lib/libgcrypt/mpi/alpha/mpih-sub1.S | 4 +- + grub-core/lib/libgcrypt/mpi/alpha/udiv-qrnnd.S | 4 +- + grub-core/lib/libgcrypt/mpi/amd64/distfiles | 1 + + grub-core/lib/libgcrypt/mpi/amd64/func_abi.h | 34 + + grub-core/lib/libgcrypt/mpi/amd64/mpi-asm-defs.h | 2 +- + grub-core/lib/libgcrypt/mpi/amd64/mpih-add1.S | 92 +- + grub-core/lib/libgcrypt/mpi/amd64/mpih-lshift.S | 54 +- + grub-core/lib/libgcrypt/mpi/amd64/mpih-mul1.S | 11 +- + grub-core/lib/libgcrypt/mpi/amd64/mpih-mul2.S | 53 +- + grub-core/lib/libgcrypt/mpi/amd64/mpih-mul3.S | 11 +- + grub-core/lib/libgcrypt/mpi/amd64/mpih-rshift.S | 56 +- + grub-core/lib/libgcrypt/mpi/amd64/mpih-sub1.S | 90 +- + .../lib/libgcrypt/mpi/{i586 => arm}/distfiles | 6 +- + grub-core/lib/libgcrypt/mpi/arm/mpi-asm-defs.h | 4 + + grub-core/lib/libgcrypt/mpi/arm/mpih-add1.S | 76 + + grub-core/lib/libgcrypt/mpi/arm/mpih-mul1.S | 80 + + grub-core/lib/libgcrypt/mpi/arm/mpih-mul2.S | 94 + + grub-core/lib/libgcrypt/mpi/arm/mpih-mul3.S | 100 + + grub-core/lib/libgcrypt/mpi/arm/mpih-sub1.S | 77 + + grub-core/lib/libgcrypt/mpi/asm-common-aarch64.h | 26 + + grub-core/lib/libgcrypt/mpi/asm-common-amd64.h | 26 + + grub-core/lib/libgcrypt/mpi/asm-common-i386.h | 26 + + grub-core/lib/libgcrypt/mpi/config.links | 182 +- + .../libgcrypt/{cipher/rmd.h => mpi/ec-ed25519.c} | 35 +- + grub-core/lib/libgcrypt/mpi/ec-hw-s390x.c | 412 + + grub-core/lib/libgcrypt/mpi/ec-inline.h | 1236 + + grub-core/lib/libgcrypt/mpi/ec-internal.h | 49 + + grub-core/lib/libgcrypt/mpi/ec-nist.c | 826 + + grub-core/lib/libgcrypt/mpi/ec.c | 2059 +- + grub-core/lib/libgcrypt/mpi/generic/Manifest | 29 - + grub-core/lib/libgcrypt/mpi/generic/distfiles | 1 - + grub-core/lib/libgcrypt/mpi/generic/mpi-asm-defs.h | 16 +- + grub-core/lib/libgcrypt/mpi/generic/mpih-add1.c | 10 +- + grub-core/lib/libgcrypt/mpi/generic/mpih-lshift.c | 6 +- + grub-core/lib/libgcrypt/mpi/generic/mpih-mul1.c | 8 +- + grub-core/lib/libgcrypt/mpi/generic/mpih-mul2.c | 10 +- + grub-core/lib/libgcrypt/mpi/generic/mpih-mul3.c | 8 +- + grub-core/lib/libgcrypt/mpi/generic/mpih-rshift.c | 4 +- + grub-core/lib/libgcrypt/mpi/generic/mpih-sub1.c | 8 +- + grub-core/lib/libgcrypt/mpi/generic/udiv-w-sdiv.c | 4 +- + grub-core/lib/libgcrypt/mpi/hppa/mpih-add1.S | 4 +- + grub-core/lib/libgcrypt/mpi/hppa/mpih-lshift.S | 4 +- + grub-core/lib/libgcrypt/mpi/hppa/mpih-rshift.S | 4 +- + grub-core/lib/libgcrypt/mpi/hppa/mpih-sub1.S | 4 +- + grub-core/lib/libgcrypt/mpi/hppa/udiv-qrnnd.S | 4 +- + grub-core/lib/libgcrypt/mpi/i386/Manifest | 28 - + grub-core/lib/libgcrypt/mpi/i386/distfiles | 1 - + grub-core/lib/libgcrypt/mpi/i386/mpih-add1.S | 51 +- + grub-core/lib/libgcrypt/mpi/i386/mpih-lshift.S | 16 +- + grub-core/lib/libgcrypt/mpi/i386/mpih-mul1.S | 16 +- + grub-core/lib/libgcrypt/mpi/i386/mpih-mul2.S | 16 +- + grub-core/lib/libgcrypt/mpi/i386/mpih-mul3.S | 16 +- + grub-core/lib/libgcrypt/mpi/i386/mpih-rshift.S | 18 +- + grub-core/lib/libgcrypt/mpi/i386/mpih-sub1.S | 51 +- + grub-core/lib/libgcrypt/mpi/i386/syntax.h | 16 +- + grub-core/lib/libgcrypt/mpi/i586/Manifest | 27 - + grub-core/lib/libgcrypt/mpi/i586/README | 26 - + grub-core/lib/libgcrypt/mpi/i586/mpih-add1.S | 135 - + grub-core/lib/libgcrypt/mpi/i586/mpih-lshift.S | 229 - + grub-core/lib/libgcrypt/mpi/i586/mpih-mul1.S | 89 - + grub-core/lib/libgcrypt/mpi/i586/mpih-mul2.S | 93 - + grub-core/lib/libgcrypt/mpi/i586/mpih-mul3.S | 93 - + grub-core/lib/libgcrypt/mpi/i586/mpih-rshift.S | 228 - + grub-core/lib/libgcrypt/mpi/i586/mpih-sub1.S | 142 - + grub-core/lib/libgcrypt/mpi/longlong.h | 967 +- + grub-core/lib/libgcrypt/mpi/m68k/Manifest | 25 - + grub-core/lib/libgcrypt/mpi/m68k/distfiles | 1 - + grub-core/lib/libgcrypt/mpi/m68k/mc68020/Manifest | 23 - + grub-core/lib/libgcrypt/mpi/m68k/mc68020/distfiles | 1 - + .../lib/libgcrypt/mpi/m68k/mc68020/mpih-mul1.S | 4 +- + .../lib/libgcrypt/mpi/m68k/mc68020/mpih-mul2.S | 4 +- + .../lib/libgcrypt/mpi/m68k/mc68020/mpih-mul3.S | 4 +- + grub-core/lib/libgcrypt/mpi/m68k/mpih-add1.S | 4 +- + grub-core/lib/libgcrypt/mpi/m68k/mpih-lshift.S | 4 +- + grub-core/lib/libgcrypt/mpi/m68k/mpih-rshift.S | 4 +- + grub-core/lib/libgcrypt/mpi/m68k/mpih-sub1.S | 4 +- + grub-core/lib/libgcrypt/mpi/m68k/syntax.h | 6 +- + grub-core/lib/libgcrypt/mpi/mips3/Manifest | 28 - + grub-core/lib/libgcrypt/mpi/mips3/README | 2 +- + grub-core/lib/libgcrypt/mpi/mips3/distfiles | 1 - + grub-core/lib/libgcrypt/mpi/mips3/mpih-add1.S | 4 +- + grub-core/lib/libgcrypt/mpi/mips3/mpih-lshift.S | 4 +- + grub-core/lib/libgcrypt/mpi/mips3/mpih-mul1.S | 4 +- + grub-core/lib/libgcrypt/mpi/mips3/mpih-mul2.S | 4 +- + grub-core/lib/libgcrypt/mpi/mips3/mpih-mul3.S | 4 +- + grub-core/lib/libgcrypt/mpi/mips3/mpih-rshift.S | 4 +- + grub-core/lib/libgcrypt/mpi/mips3/mpih-sub1.S | 4 +- + grub-core/lib/libgcrypt/mpi/mpi-add.c | 64 +- + grub-core/lib/libgcrypt/mpi/mpi-bit.c | 251 +- + grub-core/lib/libgcrypt/mpi/mpi-cmp.c | 45 +- + grub-core/lib/libgcrypt/mpi/mpi-div.c | 23 +- + grub-core/lib/libgcrypt/mpi/mpi-gcd.c | 15 +- + grub-core/lib/libgcrypt/mpi/mpi-inline.c | 4 +- + grub-core/lib/libgcrypt/mpi/mpi-inline.h | 4 +- + grub-core/lib/libgcrypt/mpi/mpi-internal.h | 60 +- + grub-core/lib/libgcrypt/mpi/mpi-inv.c | 312 +- + grub-core/lib/libgcrypt/mpi/mpi-mod.c | 54 +- + grub-core/lib/libgcrypt/mpi/mpi-mpow.c | 12 +- + grub-core/lib/libgcrypt/mpi/mpi-mul.c | 27 +- + grub-core/lib/libgcrypt/mpi/mpi-pow.c | 458 +- + grub-core/lib/libgcrypt/mpi/mpi-scan.c | 136 +- + grub-core/lib/libgcrypt/mpi/mpicoder.c | 759 +- + grub-core/lib/libgcrypt/mpi/mpih-const-time.c | 241 + + grub-core/lib/libgcrypt/mpi/mpih-div.c | 14 +- + grub-core/lib/libgcrypt/mpi/mpih-mul.c | 27 +- + grub-core/lib/libgcrypt/mpi/mpiutil.c | 488 +- + grub-core/lib/libgcrypt/mpi/pa7100/Manifest | 22 - + grub-core/lib/libgcrypt/mpi/pa7100/distfiles | 1 - + grub-core/lib/libgcrypt/mpi/pa7100/mpih-lshift.S | 4 +- + grub-core/lib/libgcrypt/mpi/pa7100/mpih-rshift.S | 4 +- + grub-core/lib/libgcrypt/mpi/pentium4/README | 115 - + grub-core/lib/libgcrypt/mpi/pentium4/distfiles | 3 - + grub-core/lib/libgcrypt/mpi/pentium4/mmx/distfiles | 2 - + .../lib/libgcrypt/mpi/pentium4/mmx/mpih-lshift.S | 457 - + .../lib/libgcrypt/mpi/pentium4/mmx/mpih-rshift.S | 453 - + .../lib/libgcrypt/mpi/pentium4/sse2/mpih-add1.S | 91 - + .../lib/libgcrypt/mpi/pentium4/sse2/mpih-mul1.S | 96 - + .../lib/libgcrypt/mpi/pentium4/sse2/mpih-mul2.S | 136 - + .../lib/libgcrypt/mpi/pentium4/sse2/mpih-mul3.S | 127 - + .../lib/libgcrypt/mpi/pentium4/sse2/mpih-sub1.S | 112 - + grub-core/lib/libgcrypt/mpi/power/Manifest | 27 - + grub-core/lib/libgcrypt/mpi/power/distfiles | 1 - + grub-core/lib/libgcrypt/mpi/power/mpih-add1.S | 4 +- + grub-core/lib/libgcrypt/mpi/power/mpih-lshift.S | 4 +- + grub-core/lib/libgcrypt/mpi/power/mpih-mul1.S | 4 +- + grub-core/lib/libgcrypt/mpi/power/mpih-mul2.S | 4 +- + grub-core/lib/libgcrypt/mpi/power/mpih-mul3.S | 4 +- + grub-core/lib/libgcrypt/mpi/power/mpih-rshift.S | 4 +- + grub-core/lib/libgcrypt/mpi/power/mpih-sub1.S | 4 +- + grub-core/lib/libgcrypt/mpi/powerpc32/Manifest | 28 - + grub-core/lib/libgcrypt/mpi/powerpc32/distfiles | 1 - + grub-core/lib/libgcrypt/mpi/powerpc32/mpih-add1.S | 9 +- + .../lib/libgcrypt/mpi/powerpc32/mpih-lshift.S | 8 +- + grub-core/lib/libgcrypt/mpi/powerpc32/mpih-mul1.S | 10 +- + grub-core/lib/libgcrypt/mpi/powerpc32/mpih-mul2.S | 10 +- + grub-core/lib/libgcrypt/mpi/powerpc32/mpih-mul3.S | 9 +- + .../lib/libgcrypt/mpi/powerpc32/mpih-rshift.S | 10 +- + grub-core/lib/libgcrypt/mpi/powerpc32/mpih-sub1.S | 9 +- + grub-core/lib/libgcrypt/mpi/powerpc32/syntax.h | 5 +- + grub-core/lib/libgcrypt/mpi/sparc32/Manifest | 24 - + grub-core/lib/libgcrypt/mpi/sparc32/distfiles | 1 - + grub-core/lib/libgcrypt/mpi/sparc32/mpih-add1.S | 4 +- + grub-core/lib/libgcrypt/mpi/sparc32/mpih-lshift.S | 4 +- + grub-core/lib/libgcrypt/mpi/sparc32/mpih-rshift.S | 4 +- + grub-core/lib/libgcrypt/mpi/sparc32/udiv.S | 4 +- + grub-core/lib/libgcrypt/mpi/sparc32v8/Manifest | 23 - + grub-core/lib/libgcrypt/mpi/sparc32v8/distfiles | 1 - + grub-core/lib/libgcrypt/mpi/sparc32v8/mpih-mul1.S | 4 +- + grub-core/lib/libgcrypt/mpi/sparc32v8/mpih-mul2.S | 4 +- + grub-core/lib/libgcrypt/mpi/sparc32v8/mpih-mul3.S | 4 +- + grub-core/lib/libgcrypt/mpi/supersparc/Manifest | 21 - + grub-core/lib/libgcrypt/mpi/supersparc/distfiles | 1 - + grub-core/lib/libgcrypt/mpi/supersparc/udiv.S | 4 +- + grub-core/lib/libgcrypt/src/ChangeLog-2011 | 75 +- + grub-core/lib/libgcrypt/src/Makefile.am | 89 +- + grub-core/lib/libgcrypt/src/Manifest | 58 - + grub-core/lib/libgcrypt/src/ath.c | 344 - + grub-core/lib/libgcrypt/src/ath.h | 147 - + grub-core/lib/libgcrypt/src/cipher-proto.h | 250 +- + grub-core/lib/libgcrypt/src/cipher.h | 167 +- + grub-core/lib/libgcrypt/src/const-time.c | 88 + + grub-core/lib/libgcrypt/src/const-time.h | 167 + + grub-core/lib/libgcrypt/src/context.c | 154 + + grub-core/lib/libgcrypt/src/context.h | 33 + + grub-core/lib/libgcrypt/src/dumpsexp.c | 25 +- + grub-core/lib/libgcrypt/src/ec-context.h | 107 + + grub-core/lib/libgcrypt/src/fips.c | 808 +- + grub-core/lib/libgcrypt/src/g10lib.h | 278 +- + grub-core/lib/libgcrypt/src/gcrypt-int.h | 595 + + grub-core/lib/libgcrypt/src/gcrypt-module.h | 240 - + grub-core/lib/libgcrypt/src/gcrypt-testapi.h | 70 + + grub-core/lib/libgcrypt/src/gcrypt.h.in | 1354 +- + grub-core/lib/libgcrypt/src/gcryptrnd.c | 680 - + grub-core/lib/libgcrypt/src/gen-note-integrity.sh | 123 + + grub-core/lib/libgcrypt/src/getrandom.c | 326 - + grub-core/lib/libgcrypt/src/global.c | 921 +- + grub-core/lib/libgcrypt/src/hmac256.c | 89 +- + grub-core/lib/libgcrypt/src/hmac256.h | 2 +- + grub-core/lib/libgcrypt/src/hwf-arm.c | 564 + + grub-core/lib/libgcrypt/src/hwf-common.h | 28 + + grub-core/lib/libgcrypt/src/hwf-ppc.c | 247 + + grub-core/lib/libgcrypt/src/hwf-s390x.c | 231 + + grub-core/lib/libgcrypt/src/hwf-x86.c | 512 + + grub-core/lib/libgcrypt/src/hwfeatures.c | 320 +- + grub-core/lib/libgcrypt/src/libgcrypt-config.in | 20 +- + grub-core/lib/libgcrypt/src/libgcrypt.def | 165 +- + grub-core/lib/libgcrypt/src/libgcrypt.m4 | 179 +- + grub-core/lib/libgcrypt/src/libgcrypt.pc.in | 18 + + grub-core/lib/libgcrypt/src/libgcrypt.vers | 93 +- + grub-core/lib/libgcrypt/src/misc.c | 452 +- + grub-core/lib/libgcrypt/src/missing-string.c | 4 +- + grub-core/lib/libgcrypt/src/module.c | 212 - + grub-core/lib/libgcrypt/src/mpi.h | 219 +- + grub-core/lib/libgcrypt/src/mpicalc.c | 627 + + grub-core/lib/libgcrypt/src/secmem.c | 625 +- + grub-core/lib/libgcrypt/src/secmem.h | 17 +- + grub-core/lib/libgcrypt/src/sexp.c | 1384 +- + grub-core/lib/libgcrypt/src/stdmem.c | 145 +- + grub-core/lib/libgcrypt/src/stdmem.h | 13 +- + grub-core/lib/libgcrypt/src/types.h | 160 +- + grub-core/lib/libgcrypt/src/versioninfo.rc.in | 2 +- + grub-core/lib/libgcrypt/src/visibility.c | 1040 +- + grub-core/lib/libgcrypt/src/visibility.h | 1234 +- + grub-core/lib/pkcs1_v15.c | 59 - + 470 files changed, 210391 insertions(+), 33128 deletions(-) + create mode 100644 grub-core/lib/libgcrypt/AUTHORS + create mode 100644 grub-core/lib/libgcrypt/COPYING + create mode 100644 grub-core/lib/libgcrypt/COPYING.LIB + create mode 100644 grub-core/lib/libgcrypt/LICENSES + create mode 100644 grub-core/lib/libgcrypt/README + create mode 100644 grub-core/lib/libgcrypt/README.GIT + create mode 100644 grub-core/lib/libgcrypt/THANKS + create mode 100644 grub-core/lib/libgcrypt/VERSION + delete mode 100644 grub-core/lib/libgcrypt/cipher/ChangeLog + delete mode 100644 grub-core/lib/libgcrypt/cipher/Manifest + delete mode 100644 grub-core/lib/libgcrypt/cipher/ac.c + create mode 100644 grub-core/lib/libgcrypt/cipher/arcfour-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/aria-aesni-avx-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/aria-aesni-avx2-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/aria-gfni-avx512-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/aria.c + create mode 100644 grub-core/lib/libgcrypt/cipher/asm-common-aarch64.h + create mode 100644 grub-core/lib/libgcrypt/cipher/asm-common-amd64.h + create mode 100644 grub-core/lib/libgcrypt/cipher/asm-common-i386.h + create mode 100644 grub-core/lib/libgcrypt/cipher/asm-common-s390x.h + create mode 100644 grub-core/lib/libgcrypt/cipher/asm-inline-s390x.h + create mode 100644 grub-core/lib/libgcrypt/cipher/asm-poly1305-aarch64.h + create mode 100644 grub-core/lib/libgcrypt/cipher/asm-poly1305-amd64.h + create mode 100644 grub-core/lib/libgcrypt/cipher/asm-poly1305-s390x.h + create mode 100644 grub-core/lib/libgcrypt/cipher/blake2.c + create mode 100644 grub-core/lib/libgcrypt/cipher/blake2b-amd64-avx2.S + create mode 100644 grub-core/lib/libgcrypt/cipher/blake2b-amd64-avx512.S + create mode 100644 grub-core/lib/libgcrypt/cipher/blake2s-amd64-avx.S + create mode 100644 grub-core/lib/libgcrypt/cipher/blake2s-amd64-avx512.S + create mode 100644 grub-core/lib/libgcrypt/cipher/blowfish-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/blowfish-arm.S + create mode 100644 grub-core/lib/libgcrypt/cipher/bulkhelp.h + create mode 100644 grub-core/lib/libgcrypt/cipher/camellia-aarch64-ce.c + create mode 100644 grub-core/lib/libgcrypt/cipher/camellia-aarch64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/camellia-aesni-avx-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/camellia-aesni-avx2-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/camellia-aesni-avx2-amd64.h + create mode 100644 grub-core/lib/libgcrypt/cipher/camellia-arm.S + create mode 100644 grub-core/lib/libgcrypt/cipher/camellia-gfni-avx2-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/camellia-gfni-avx512-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/camellia-ppc8le.c + create mode 100644 grub-core/lib/libgcrypt/cipher/camellia-ppc9le.c + create mode 100644 grub-core/lib/libgcrypt/cipher/camellia-simd128.h + create mode 100644 grub-core/lib/libgcrypt/cipher/camellia-vaes-avx2-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/cast5-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/cast5-arm.S + create mode 100644 grub-core/lib/libgcrypt/cipher/chacha20-aarch64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/chacha20-amd64-avx2.S + create mode 100644 grub-core/lib/libgcrypt/cipher/chacha20-amd64-avx512.S + create mode 100644 grub-core/lib/libgcrypt/cipher/chacha20-amd64-ssse3.S + create mode 100644 grub-core/lib/libgcrypt/cipher/chacha20-armv7-neon.S + create mode 100644 grub-core/lib/libgcrypt/cipher/chacha20-p10le-8x.s + create mode 100644 grub-core/lib/libgcrypt/cipher/chacha20-ppc.c + create mode 100644 grub-core/lib/libgcrypt/cipher/chacha20-s390x.S + create mode 100644 grub-core/lib/libgcrypt/cipher/chacha20.c + create mode 100644 grub-core/lib/libgcrypt/cipher/cipher-aeswrap.c + create mode 100644 grub-core/lib/libgcrypt/cipher/cipher-cbc.c + create mode 100644 grub-core/lib/libgcrypt/cipher/cipher-ccm.c + create mode 100644 grub-core/lib/libgcrypt/cipher/cipher-cfb.c + create mode 100644 grub-core/lib/libgcrypt/cipher/cipher-cmac.c + create mode 100644 grub-core/lib/libgcrypt/cipher/cipher-ctr.c + create mode 100644 grub-core/lib/libgcrypt/cipher/cipher-eax.c + create mode 100644 grub-core/lib/libgcrypt/cipher/cipher-gcm-armv7-neon.S + create mode 100644 grub-core/lib/libgcrypt/cipher/cipher-gcm-armv8-aarch32-ce.S + create mode 100644 grub-core/lib/libgcrypt/cipher/cipher-gcm-armv8-aarch64-ce.S + create mode 100644 grub-core/lib/libgcrypt/cipher/cipher-gcm-intel-pclmul.c + create mode 100644 grub-core/lib/libgcrypt/cipher/cipher-gcm-ppc.c + create mode 100644 grub-core/lib/libgcrypt/cipher/cipher-gcm-siv.c + create mode 100644 grub-core/lib/libgcrypt/cipher/cipher-gcm.c + create mode 100644 grub-core/lib/libgcrypt/cipher/cipher-internal.h + create mode 100644 grub-core/lib/libgcrypt/cipher/cipher-ocb.c + create mode 100644 grub-core/lib/libgcrypt/cipher/cipher-ofb.c + create mode 100644 grub-core/lib/libgcrypt/cipher/cipher-poly1305.c + create mode 100644 grub-core/lib/libgcrypt/cipher/cipher-siv.c + create mode 100644 grub-core/lib/libgcrypt/cipher/cipher-xts.c + create mode 100644 grub-core/lib/libgcrypt/cipher/crc-armv8-aarch64-ce.S + create mode 100644 grub-core/lib/libgcrypt/cipher/crc-armv8-ce.c + create mode 100644 grub-core/lib/libgcrypt/cipher/crc-intel-pclmul.c + create mode 100644 grub-core/lib/libgcrypt/cipher/crc-ppc.c + create mode 100644 grub-core/lib/libgcrypt/cipher/des-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/dsa-common.c + create mode 100644 grub-core/lib/libgcrypt/cipher/ecc-common.h + create mode 100644 grub-core/lib/libgcrypt/cipher/ecc-curves.c + create mode 100644 grub-core/lib/libgcrypt/cipher/ecc-ecdh.c + create mode 100644 grub-core/lib/libgcrypt/cipher/ecc-ecdsa.c + create mode 100644 grub-core/lib/libgcrypt/cipher/ecc-eddsa.c + create mode 100644 grub-core/lib/libgcrypt/cipher/ecc-gost.c + create mode 100644 grub-core/lib/libgcrypt/cipher/ecc-misc.c + create mode 100644 grub-core/lib/libgcrypt/cipher/ecc-sm2.c + create mode 100644 grub-core/lib/libgcrypt/cipher/gost-s-box.c + create mode 100644 grub-core/lib/libgcrypt/cipher/gost-sb.h + create mode 100644 grub-core/lib/libgcrypt/cipher/gost.h + create mode 100644 grub-core/lib/libgcrypt/cipher/gost28147.c + create mode 100644 grub-core/lib/libgcrypt/cipher/gostr3411-94.c + delete mode 100644 grub-core/lib/libgcrypt/cipher/hmac-tests.c + create mode 100644 grub-core/lib/libgcrypt/cipher/kdf-internal.h + create mode 100644 grub-core/lib/libgcrypt/cipher/keccak-amd64-avx512.S + create mode 100644 grub-core/lib/libgcrypt/cipher/keccak-armv7-neon.S + create mode 100644 grub-core/lib/libgcrypt/cipher/keccak.c + create mode 100644 grub-core/lib/libgcrypt/cipher/keccak_permute_32.h + create mode 100644 grub-core/lib/libgcrypt/cipher/keccak_permute_64.h + create mode 100644 grub-core/lib/libgcrypt/cipher/kem-ecc.c + create mode 100644 grub-core/lib/libgcrypt/cipher/kem-ecc.h + create mode 100644 grub-core/lib/libgcrypt/cipher/kem.c + create mode 100644 grub-core/lib/libgcrypt/cipher/kyber-common.c + create mode 100644 grub-core/lib/libgcrypt/cipher/kyber-kdep.c + create mode 100644 grub-core/lib/libgcrypt/cipher/kyber.c + create mode 100644 grub-core/lib/libgcrypt/cipher/kyber.h + create mode 100644 grub-core/lib/libgcrypt/cipher/mac-cmac.c + create mode 100644 grub-core/lib/libgcrypt/cipher/mac-gmac.c + create mode 100644 grub-core/lib/libgcrypt/cipher/mac-hmac.c + create mode 100644 grub-core/lib/libgcrypt/cipher/mac-internal.h + create mode 100644 grub-core/lib/libgcrypt/cipher/mac-poly1305.c + create mode 100644 grub-core/lib/libgcrypt/cipher/mac.c + create mode 100644 grub-core/lib/libgcrypt/cipher/mceliece6688128f.c + create mode 100644 grub-core/lib/libgcrypt/cipher/mceliece6688128f.h + create mode 100644 grub-core/lib/libgcrypt/cipher/poly1305-amd64-avx512.S + create mode 100644 grub-core/lib/libgcrypt/cipher/poly1305-internal.h + create mode 100644 grub-core/lib/libgcrypt/cipher/poly1305-p10le.s + create mode 100644 grub-core/lib/libgcrypt/cipher/poly1305-s390x.S + create mode 100644 grub-core/lib/libgcrypt/cipher/poly1305.c + create mode 100644 grub-core/lib/libgcrypt/cipher/pubkey-internal.h + create mode 100644 grub-core/lib/libgcrypt/cipher/pubkey-util.c + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-aarch64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-aesni.c + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-arm.S + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-armv8-aarch32-ce.S + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-armv8-aarch64-ce.S + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-armv8-ce.c + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-gcm-p10le.s + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-internal.h + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-p10le.c + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-padlock.c + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-ppc-common.h + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-ppc-functions.h + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-ppc.c + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-ppc9le.c + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-s390x.c + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-ssse3-amd64-asm.S + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-ssse3-amd64.c + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-vaes-avx2-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-vaes-avx2-i386.S + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-vaes-i386.c + create mode 100644 grub-core/lib/libgcrypt/cipher/rijndael-vaes.c + create mode 100644 grub-core/lib/libgcrypt/cipher/rsa-common.c + create mode 100644 grub-core/lib/libgcrypt/cipher/salsa20-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/salsa20-armv7-neon.S + create mode 100644 grub-core/lib/libgcrypt/cipher/salsa20.c + create mode 100644 grub-core/lib/libgcrypt/cipher/scrypt.c + create mode 100644 grub-core/lib/libgcrypt/cipher/serpent-armv7-neon.S + create mode 100644 grub-core/lib/libgcrypt/cipher/serpent-avx2-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/serpent-avx512-x86.c + create mode 100644 grub-core/lib/libgcrypt/cipher/serpent-sse2-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sha1-armv7-neon.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sha1-armv8-aarch32-ce.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sha1-armv8-aarch64-ce.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sha1-avx-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sha1-avx-bmi2-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sha1-avx2-bmi2-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sha1-intel-shaext.c + create mode 100644 grub-core/lib/libgcrypt/cipher/sha1-ssse3-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sha1.h + create mode 100644 grub-core/lib/libgcrypt/cipher/sha256-armv8-aarch32-ce.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sha256-armv8-aarch64-ce.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sha256-avx-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sha256-avx2-bmi2-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sha256-intel-shaext.c + create mode 100644 grub-core/lib/libgcrypt/cipher/sha256-ppc.c + create mode 100644 grub-core/lib/libgcrypt/cipher/sha256-ssse3-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sha512-arm.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sha512-armv7-neon.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sha512-armv8-aarch64-ce.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sha512-avx-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sha512-avx2-bmi2-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sha512-avx512-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sha512-ppc.c + create mode 100644 grub-core/lib/libgcrypt/cipher/sha512-ssse3-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sha512-ssse3-i386.c + create mode 100644 grub-core/lib/libgcrypt/cipher/sm3-aarch64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sm3-armv8-aarch64-ce.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sm3-avx-bmi2-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sm3.c + create mode 100644 grub-core/lib/libgcrypt/cipher/sm4-aarch64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sm4-aesni-avx-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sm4-aesni-avx2-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sm4-armv8-aarch64-ce.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sm4-armv9-aarch64-sve-ce.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sm4-gfni-avx2-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sm4-gfni-avx512-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/sm4-ppc.c + create mode 100644 grub-core/lib/libgcrypt/cipher/sm4.c + create mode 100644 grub-core/lib/libgcrypt/cipher/sntrup761.c + create mode 100644 grub-core/lib/libgcrypt/cipher/sntrup761.h + create mode 100644 grub-core/lib/libgcrypt/cipher/stribog.c + delete mode 100644 grub-core/lib/libgcrypt/cipher/test-getrusage.c + create mode 100644 grub-core/lib/libgcrypt/cipher/twofish-aarch64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/twofish-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/twofish-arm.S + create mode 100644 grub-core/lib/libgcrypt/cipher/twofish-avx2-amd64.S + create mode 100644 grub-core/lib/libgcrypt/cipher/whirlpool-sse2-amd64.S + create mode 100644 grub-core/lib/libgcrypt/compat/Makefile.am + create mode 100644 grub-core/lib/libgcrypt/compat/clock.c + create mode 100644 grub-core/lib/libgcrypt/compat/compat.c + create mode 100644 grub-core/lib/libgcrypt/compat/getpid.c + create mode 100644 grub-core/lib/libgcrypt/compat/libcompat.h + create mode 100644 grub-core/lib/libgcrypt/config.h.in + create mode 100755 grub-core/lib/libgcrypt/configure + create mode 100644 grub-core/lib/libgcrypt/configure.ac + create mode 100755 grub-core/lib/libgcrypt/mkinstalldirs + delete mode 100644 grub-core/lib/libgcrypt/mpi/Manifest + rename grub-core/lib/libgcrypt/mpi/{pentium4/sse2 => aarch64}/distfiles (80%) + create mode 100644 grub-core/lib/libgcrypt/mpi/aarch64/mpi-asm-defs.h + create mode 100644 grub-core/lib/libgcrypt/mpi/aarch64/mpih-add1.S + create mode 100644 grub-core/lib/libgcrypt/mpi/aarch64/mpih-mul1.S + create mode 100644 grub-core/lib/libgcrypt/mpi/aarch64/mpih-mul2.S + create mode 100644 grub-core/lib/libgcrypt/mpi/aarch64/mpih-mul3.S + create mode 100644 grub-core/lib/libgcrypt/mpi/aarch64/mpih-sub1.S + create mode 100644 grub-core/lib/libgcrypt/mpi/amd64/func_abi.h + rename grub-core/lib/libgcrypt/mpi/{i586 => arm}/distfiles (57%) + create mode 100644 grub-core/lib/libgcrypt/mpi/arm/mpi-asm-defs.h + create mode 100644 grub-core/lib/libgcrypt/mpi/arm/mpih-add1.S + create mode 100644 grub-core/lib/libgcrypt/mpi/arm/mpih-mul1.S + create mode 100644 grub-core/lib/libgcrypt/mpi/arm/mpih-mul2.S + create mode 100644 grub-core/lib/libgcrypt/mpi/arm/mpih-mul3.S + create mode 100644 grub-core/lib/libgcrypt/mpi/arm/mpih-sub1.S + create mode 100644 grub-core/lib/libgcrypt/mpi/asm-common-aarch64.h + create mode 100644 grub-core/lib/libgcrypt/mpi/asm-common-amd64.h + create mode 100644 grub-core/lib/libgcrypt/mpi/asm-common-i386.h + rename grub-core/lib/libgcrypt/{cipher/rmd.h => mpi/ec-ed25519.c} (51%) + create mode 100644 grub-core/lib/libgcrypt/mpi/ec-hw-s390x.c + create mode 100644 grub-core/lib/libgcrypt/mpi/ec-inline.h + create mode 100644 grub-core/lib/libgcrypt/mpi/ec-internal.h + create mode 100644 grub-core/lib/libgcrypt/mpi/ec-nist.c + delete mode 100644 grub-core/lib/libgcrypt/mpi/generic/Manifest + delete mode 100644 grub-core/lib/libgcrypt/mpi/i386/Manifest + delete mode 100644 grub-core/lib/libgcrypt/mpi/i586/Manifest + delete mode 100644 grub-core/lib/libgcrypt/mpi/i586/README + delete mode 100644 grub-core/lib/libgcrypt/mpi/i586/mpih-add1.S + delete mode 100644 grub-core/lib/libgcrypt/mpi/i586/mpih-lshift.S + delete mode 100644 grub-core/lib/libgcrypt/mpi/i586/mpih-mul1.S + delete mode 100644 grub-core/lib/libgcrypt/mpi/i586/mpih-mul2.S + delete mode 100644 grub-core/lib/libgcrypt/mpi/i586/mpih-mul3.S + delete mode 100644 grub-core/lib/libgcrypt/mpi/i586/mpih-rshift.S + delete mode 100644 grub-core/lib/libgcrypt/mpi/i586/mpih-sub1.S + delete mode 100644 grub-core/lib/libgcrypt/mpi/m68k/Manifest + delete mode 100644 grub-core/lib/libgcrypt/mpi/m68k/mc68020/Manifest + delete mode 100644 grub-core/lib/libgcrypt/mpi/mips3/Manifest + create mode 100644 grub-core/lib/libgcrypt/mpi/mpih-const-time.c + delete mode 100644 grub-core/lib/libgcrypt/mpi/pa7100/Manifest + delete mode 100644 grub-core/lib/libgcrypt/mpi/pentium4/README + delete mode 100644 grub-core/lib/libgcrypt/mpi/pentium4/distfiles + delete mode 100644 grub-core/lib/libgcrypt/mpi/pentium4/mmx/distfiles + delete mode 100644 grub-core/lib/libgcrypt/mpi/pentium4/mmx/mpih-lshift.S + delete mode 100644 grub-core/lib/libgcrypt/mpi/pentium4/mmx/mpih-rshift.S + delete mode 100644 grub-core/lib/libgcrypt/mpi/pentium4/sse2/mpih-add1.S + delete mode 100644 grub-core/lib/libgcrypt/mpi/pentium4/sse2/mpih-mul1.S + delete mode 100644 grub-core/lib/libgcrypt/mpi/pentium4/sse2/mpih-mul2.S + delete mode 100644 grub-core/lib/libgcrypt/mpi/pentium4/sse2/mpih-mul3.S + delete mode 100644 grub-core/lib/libgcrypt/mpi/pentium4/sse2/mpih-sub1.S + delete mode 100644 grub-core/lib/libgcrypt/mpi/power/Manifest + delete mode 100644 grub-core/lib/libgcrypt/mpi/powerpc32/Manifest + delete mode 100644 grub-core/lib/libgcrypt/mpi/sparc32/Manifest + delete mode 100644 grub-core/lib/libgcrypt/mpi/sparc32v8/Manifest + delete mode 100644 grub-core/lib/libgcrypt/mpi/supersparc/Manifest + delete mode 100644 grub-core/lib/libgcrypt/src/Manifest + delete mode 100644 grub-core/lib/libgcrypt/src/ath.c + delete mode 100644 grub-core/lib/libgcrypt/src/ath.h + create mode 100644 grub-core/lib/libgcrypt/src/const-time.c + create mode 100644 grub-core/lib/libgcrypt/src/const-time.h + create mode 100644 grub-core/lib/libgcrypt/src/context.c + create mode 100644 grub-core/lib/libgcrypt/src/context.h + create mode 100644 grub-core/lib/libgcrypt/src/ec-context.h + create mode 100644 grub-core/lib/libgcrypt/src/gcrypt-int.h + delete mode 100644 grub-core/lib/libgcrypt/src/gcrypt-module.h + create mode 100644 grub-core/lib/libgcrypt/src/gcrypt-testapi.h + delete mode 100644 grub-core/lib/libgcrypt/src/gcryptrnd.c + create mode 100755 grub-core/lib/libgcrypt/src/gen-note-integrity.sh + delete mode 100644 grub-core/lib/libgcrypt/src/getrandom.c + create mode 100644 grub-core/lib/libgcrypt/src/hwf-arm.c + create mode 100644 grub-core/lib/libgcrypt/src/hwf-common.h + create mode 100644 grub-core/lib/libgcrypt/src/hwf-ppc.c + create mode 100644 grub-core/lib/libgcrypt/src/hwf-s390x.c + create mode 100644 grub-core/lib/libgcrypt/src/hwf-x86.c + create mode 100644 grub-core/lib/libgcrypt/src/libgcrypt.pc.in + delete mode 100644 grub-core/lib/libgcrypt/src/module.c + create mode 100644 grub-core/lib/libgcrypt/src/mpicalc.c + delete mode 100644 grub-core/lib/pkcs1_v15.c + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 6ff4835..728ef8a 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -2591,14 +2591,6 @@ module = { + cppflags = '$(CPPFLAGS_GCRY)'; + }; + +-module = { +- name = pkcs1_v15; +- common = lib/pkcs1_v15.c; +- +- cflags = '$(CFLAGS_GCRY) -Wno-redundant-decls -Wno-sign-compare'; +- cppflags = '$(CPPFLAGS_GCRY)'; +-}; +- + module = { + name = all_video; + common = lib/fake_module.c; +diff --git a/grub-core/lib/libgcrypt/AUTHORS b/grub-core/lib/libgcrypt/AUTHORS +new file mode 100644 +index 0000000..f916160 +--- /dev/null ++++ b/grub-core/lib/libgcrypt/AUTHORS +@@ -0,0 +1,274 @@ ++Library: Libgcrypt ++Homepage: https://gnupg.org/related_software/libgcrypt/ ++Download: https://gnupg.org/ftp/gcrypt/libgcrypt/ ++Repository: git://git.gnupg.org/libgcrypt.git ++Maintainer: Werner Koch ++Bug reports: https://bugs.gnupg.org ++Security related bug reports: ++End-of-life: TBD ++License (library): LGPLv2.1+ ++License (manual and tools): GPLv2+ ++ ++ ++Libgcrypt is free software. See the files COPYING.LIB and COPYING for ++copying conditions, and LICENSES for notices about a few contributions ++that require these additional notices to be distributed. License ++copyright years may be listed using range notation, e.g., 2000-2013, ++indicating that every year in the range, inclusive, is a copyrightable ++year that would otherwise be listed individually. ++ ++ ++List of Copyright holders ++========================= ++ ++ Copyright (C) 1989,1991-2018 Free Software Foundation, Inc. ++ Copyright (C) 1994 X Consortium ++ Copyright (C) 1996 L. Peter Deutsch ++ Copyright (C) 1997 Werner Koch ++ Copyright (C) 1998 The Internet Society ++ Copyright (C) 1996-1999 Peter Gutmann, Paul Kendall, and Chris Wedgwood ++ Copyright (C) 1996-2006 Peter Gutmann, Matt Thomlinson and Blake Coverett ++ Copyright (C) 2003 Nikos Mavroyanopoulos ++ Copyright (c) 2006 CRYPTOGAMS ++ Copyright (C) 2006-2007 NTT (Nippon Telegraph and Telephone Corporation) ++ Copyright (C) 2012-2024 g10 Code GmbH ++ Copyright (C) 2012 Simon Josefsson, Niels Möller ++ Copyright (c) 2012 Intel Corporation ++ Copyright (C) 2013 Christian Grothoff ++ Copyright (C) 2013-2024 Jussi Kivilinna ++ Copyright (C) 2013-2014 Dmitry Eremin-Solenikov ++ Copyright (C) 2014 Stephan Mueller ++ Copyright (C) 2017 Jia Zhang ++ Copyright (C) 2018 Bundesamt für Sicherheit in der Informationstechnik ++ Copyright (C) 2020 Alibaba Group. ++ Copyright (C) 2020 Tianjia Zhang ++ Copyright (C) 2023 Simon Josefsson ++ ++ ++Authors with a FSF copyright assignment ++======================================= ++ ++LIBGCRYPT Werner Koch 2001-06-07 ++Assigns past and future changes. ++Assignment for future changes terminated on 2012-12-04. ++wk@gnupg.org ++Designed and implemented Libgcrypt. ++ ++GNUPG Matthew Skala 1998-08-10 ++Disclaims changes. ++mskala@ansuz.sooke.bc.ca ++Wrote cipher/twofish.c. ++ ++GNUPG Natural Resources Canada 1998-08-11 ++Disclaims changes by Matthew Skala. ++ ++GNUPG Michael Roth Germany 1998-09-17 ++Assigns changes. ++mroth@nessie.de ++Wrote cipher/des.c. ++Changes and bug fixes all over the place. ++ ++GNUPG Niklas Hernaeus 1998-09-18 ++Disclaims changes. ++nh@df.lth.se ++Weak key patches. ++ ++GNUPG Rémi Guyomarch 1999-05-25 ++Assigns past and future changes. (g10/compress.c, g10/encr-data.c, ++g10/free-packet.c, g10/mdfilter.c, g10/plaintext.c, util/iobuf.c) ++rguyom@mail.dotcom.fr ++ ++ANY g10 Code GmbH 2001-06-07 ++Assignment for future changes terminated on 2012-12-04. ++Code marked with ChangeLog entries of g10 Code employees. ++ ++LIBGCRYPT Timo Schulz 2001-08-31 ++Assigns past and future changes. ++twoaday@freakmail.de ++ ++LIBGCRYPT Simon Josefsson 2002-10-25 ++Assigns past and future changes to FSF (cipher/{md4,crc}.c, CTR mode, ++CTS/MAC flags, self test improvements) ++simon@josefsson.org ++ ++LIBGCRYPT Moritz Schulte 2003-04-17 ++Assigns past and future changes. ++moritz@g10code.com ++ ++GNUTLS Nikolaos Mavrogiannopoulos 2003-11-22 ++nmav@gnutls.org ++Original code for cipher/rfc2268.c. ++ ++LIBGCRYPT The Written Word 2005-04-15 ++Assigns past and future changes. (new: src/libgcrypt.pc.in, ++src/Makefile.am, src/secmem.c, mpi/hppa1.1/mpih-mul3.S, ++mpi/hppa1.1/udiv-qrnnd.S, mpi/hppa1.1/mpih-mul2.S, ++mpi/hppa1.1/mpih-mul1.S, mpi/Makefile.am, tests/prime.c, ++tests/register.c, tests/ac.c, tests/basic.c, tests/tsexp.c, ++tests/keygen.c, tests/pubkey.c, configure.ac, acinclude.m4) ++ ++LIBGCRYPT Brad Hards 2006-02-09 ++Assigns Past and Future Changes ++bradh@frogmouth.net ++(Added OFB mode. Changed cipher/cipher.c, test/basic.c doc/gcrypt.tex. ++ added SHA-224, changed cipher/sha256.c, added HMAC tests.) ++ ++LIBGCRYPT Hye-Shik Chang 2006-09-07 ++Assigns Past and Future Changes ++perky@freebsd.org ++(SEED cipher) ++ ++LIBGCRYPT Werner Dittmann 2009-05-20 ++Assigns Past and Future Changes ++werner.dittmann@t-online.de ++(mpi/amd64, tests/mpitests.c) ++ ++GNUPG David Shaw ++Assigns past and future changes. ++dshaw@jabberwocky.com ++(cipher/camellia-glue.c and related stuff) ++ ++LIBGCRYPT Andrey Jivsov 2010-12-09 ++Assigns Past and Future Changes ++openpgp@brainhub.org ++(cipher/ecc.c and related files) ++ ++LIBGCRYPT Ulrich Müller 2012-02-15 ++Assigns Past and Future Changes ++ulm@gentoo.org ++(Changes to cipher/idea.c and related files) ++ ++LIBGCRYPT Vladimir Serbinenko 2012-04-26 ++Assigns Past and Future Changes ++phcoder@gmail.com ++(cipher/serpent.c) ++ ++ ++Authors with a DCO ++================== ++ ++Andrei Scherer ++2014-08-22:BF7CEF794F9.000003F0andsch@inbox.com: ++ ++Christian Aistleitner ++2013-02-26:20130226110144.GA12678@quelltextlich.at: ++ ++Christian Grothoff ++2013-03-21:514B5D8A.6040705@grothoff.org: ++ ++Clemens Lang ++2022-02-10:20220210133844.46581-1-cllang@redhat.com: ++ ++Danny Tsen ++2021-12-20:OF85D11C2F.7A339D7D-ON002587B1.0042A81E-002587B1.0042B94D@ibm.com ++ ++Dmitry Baryshkov ++Dmitry Eremin-Solenikov ++2013-07-13:20130713144407.GA27334@fangorn.rup.mentorg.com: ++ ++Dmitry Kasatkin ++2012-12-14:50CAE2DB.80302@intel.com: ++ ++Falko Strenzke ++2023-09-27:51677567-0b78-4665-805d-fd0cdd50f7fa@mtg.de: ++ ++H.J. Lu ++2020-01-19:20200119135241.GA4970@gmail.com: ++ ++Jia Zhang ++2017-10-17:59E56E30.9060503@alibaba-inc.com: ++ ++Jérémie Courrèges-Anglas ++2016-05-26:87bn3ssqg0.fsf@ritchie.wxcvbn.org: ++ ++Jussi Kivilinna ++2012-11-15:20121115172331.150537dzb5i6jmy8@www.dalek.fi: ++ ++Jussi Kivilinna ++2013-05-06:5186720A.4090101@iki.fi: ++ ++Markus Teich ++2014-10-08:20141008180509.GA2770@trolle: ++ ++Martin Storsjö ++2018-03-28:dc1605ce-a47d-34c5-8851-d9569f9ea5d3@martin.st: ++ ++Mathias L. Baumann ++2017-01-30:07c06d79-0828-b564-d604-fd16c7c86ebe@sociomantic.com: ++ ++Milan Broz ++2014-01-13:52D44CC6.4050707@gmail.com: ++ ++Paul Wolneykien ++2019-11-19:20191119204459.312927aa@rigel.localdomain: ++ ++Peter Wu ++2015-07-22:20150722191325.GA8113@al: ++ ++Rafaël Carré ++2012-04-20:4F91988B.1080502@videolan.org: ++ ++Sergey V. ++2013-11-07:2066221.5IYa7Yq760@darkstar: ++ ++Shawn Landden ++2019-07-09:2794651562684255@iva4-64850291ca1c.qloud-c.yandex.net: ++ ++Simit Ghane ++2024-05-06:OF22575887.761836D9-ON48258B15.0044A21E-48258B15.0044A222@lge.com: ++ ++Stephan Mueller ++2014-08-22:2008899.25OeoelVVA@myon.chronox.de: ++ ++Tianjia Zhang ++2020-01-08:dcda0127-2f45-93a3-0736-27259a33bffa@linux.alibaba.com: ++ ++Tomáš Mráz ++2012-04-16:1334571250.5056.52.camel@vespa.frost.loc: ++ ++Vitezslav Cizek ++2015-11-05:20151105131424.GA32700@kolac.suse.cz: ++ ++Werner Koch (g10 Code GmbH) ++2012-12-05:87obi8u4h2.fsf@vigenere.g10code.de: ++ ++ ++More credits ++============ ++ ++Libgcrypt used to be part of GnuPG but has been taken out into its own ++package on 2000-12-21. ++ ++Most of the stuff in mpi has been taken from an old GMP library ++version by Torbjorn Granlund . ++ ++The files cipher/rndunix.c and cipher/rndw32.c are based on those ++files from Cryptlib. Copyright Peter Gutmann, Paul Kendall, and Chris ++Wedgwood 1996-1999. ++ ++The ECC code cipher/ecc.c was based on code by Sergi Blanch i Torne, ++sergi at calcurco dot org. ++ ++The implementation of the Camellia cipher has been been taken from the ++original NTT provided GPL source. ++ ++The CAVS testing program tests/cavs_driver.pl is not to be considered ++a part of libgcrypt proper. We distribute it merely for convenience. ++It has a permissive license and is copyrighted by atsec information ++security corporation. See the file for details. ++ ++The file salsa20.c is based on D.J. Bernstein's public domain code and ++taken from Nettle. Copyright 2012 Simon Josefsson and Niels Möller. ++ ++The sntrup761 code is based on public domain code written by Daniel ++J. Bernstein, Chitchanok Chuengsatiansup, Tanja Lange, and Christine ++van Vredendaal. Copyright 2023 Simon Josefsson. ++ ++ ++ This file is free software; as a special exception the author gives ++ unlimited permission to copy and/or distribute it, with or without ++ modifications, as long as this notice is preserved. ++ ++ This file is distributed in the hope that it will be useful, but ++ WITHOUT ANY WARRANTY, to the extent permitted by law; without even the ++ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +diff --git a/grub-core/lib/libgcrypt/COPYING b/grub-core/lib/libgcrypt/COPYING +new file mode 100644 +index 0000000..d159169 +--- /dev/null ++++ b/grub-core/lib/libgcrypt/COPYING +@@ -0,0 +1,339 @@ ++ GNU GENERAL PUBLIC LICENSE ++ Version 2, June 1991 ++ ++ Copyright (C) 1989, 1991 Free Software Foundation, Inc., ++ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ Everyone is permitted to copy and distribute verbatim copies ++ of this license document, but changing it is not allowed. ++ ++ Preamble ++ ++ The licenses for most software are designed to take away your ++freedom to share and change it. By contrast, the GNU General Public ++License is intended to guarantee your freedom to share and change free ++software--to make sure the software is free for all its users. This ++General Public License applies to most of the Free Software ++Foundation's software and to any other program whose authors commit to ++using it. (Some other Free Software Foundation software is covered by ++the GNU Lesser General Public License instead.) You can apply it to ++your programs, too. ++ ++ When we speak of free software, we are referring to freedom, not ++price. Our General Public Licenses are designed to make sure that you ++have the freedom to distribute copies of free software (and charge for ++this service if you wish), that you receive source code or can get it ++if you want it, that you can change the software or use pieces of it ++in new free programs; and that you know you can do these things. ++ ++ To protect your rights, we need to make restrictions that forbid ++anyone to deny you these rights or to ask you to surrender the rights. ++These restrictions translate to certain responsibilities for you if you ++distribute copies of the software, or if you modify it. ++ ++ For example, if you distribute copies of such a program, whether ++gratis or for a fee, you must give the recipients all the rights that ++you have. You must make sure that they, too, receive or can get the ++source code. And you must show them these terms so they know their ++rights. ++ ++ We protect your rights with two steps: (1) copyright the software, and ++(2) offer you this license which gives you legal permission to copy, ++distribute and/or modify the software. ++ ++ Also, for each author's protection and ours, we want to make certain ++that everyone understands that there is no warranty for this free ++software. If the software is modified by someone else and passed on, we ++want its recipients to know that what they have is not the original, so ++that any problems introduced by others will not reflect on the original ++authors' reputations. ++ ++ Finally, any free program is threatened constantly by software ++patents. We wish to avoid the danger that redistributors of a free ++program will individually obtain patent licenses, in effect making the ++program proprietary. To prevent this, we have made it clear that any ++patent must be licensed for everyone's free use or not licensed at all. ++ ++ The precise terms and conditions for copying, distribution and ++modification follow. ++ ++ GNU GENERAL PUBLIC LICENSE ++ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION ++ ++ 0. This License applies to any program or other work which contains ++a notice placed by the copyright holder saying it may be distributed ++under the terms of this General Public License. The "Program", below, ++refers to any such program or work, and a "work based on the Program" ++means either the Program or any derivative work under copyright law: ++that is to say, a work containing the Program or a portion of it, ++either verbatim or with modifications and/or translated into another ++language. (Hereinafter, translation is included without limitation in ++the term "modification".) Each licensee is addressed as "you". ++ ++Activities other than copying, distribution and modification are not ++covered by this License; they are outside its scope. The act of ++running the Program is not restricted, and the output from the Program ++is covered only if its contents constitute a work based on the ++Program (independent of having been made by running the Program). ++Whether that is true depends on what the Program does. ++ ++ 1. You may copy and distribute verbatim copies of the Program's ++source code as you receive it, in any medium, provided that you ++conspicuously and appropriately publish on each copy an appropriate ++copyright notice and disclaimer of warranty; keep intact all the ++notices that refer to this License and to the absence of any warranty; ++and give any other recipients of the Program a copy of this License ++along with the Program. ++ ++You may charge a fee for the physical act of transferring a copy, and ++you may at your option offer warranty protection in exchange for a fee. ++ ++ 2. You may modify your copy or copies of the Program or any portion ++of it, thus forming a work based on the Program, and copy and ++distribute such modifications or work under the terms of Section 1 ++above, provided that you also meet all of these conditions: ++ ++ a) You must cause the modified files to carry prominent notices ++ stating that you changed the files and the date of any change. ++ ++ b) You must cause any work that you distribute or publish, that in ++ whole or in part contains or is derived from the Program or any ++ part thereof, to be licensed as a whole at no charge to all third ++ parties under the terms of this License. ++ ++ c) If the modified program normally reads commands interactively ++ when run, you must cause it, when started running for such ++ interactive use in the most ordinary way, to print or display an ++ announcement including an appropriate copyright notice and a ++ notice that there is no warranty (or else, saying that you provide ++ a warranty) and that users may redistribute the program under ++ these conditions, and telling the user how to view a copy of this ++ License. (Exception: if the Program itself is interactive but ++ does not normally print such an announcement, your work based on ++ the Program is not required to print an announcement.) ++ ++These requirements apply to the modified work as a whole. If ++identifiable sections of that work are not derived from the Program, ++and can be reasonably considered independent and separate works in ++themselves, then this License, and its terms, do not apply to those ++sections when you distribute them as separate works. But when you ++distribute the same sections as part of a whole which is a work based ++on the Program, the distribution of the whole must be on the terms of ++this License, whose permissions for other licensees extend to the ++entire whole, and thus to each and every part regardless of who wrote it. ++ ++Thus, it is not the intent of this section to claim rights or contest ++your rights to work written entirely by you; rather, the intent is to ++exercise the right to control the distribution of derivative or ++collective works based on the Program. ++ ++In addition, mere aggregation of another work not based on the Program ++with the Program (or with a work based on the Program) on a volume of ++a storage or distribution medium does not bring the other work under ++the scope of this License. ++ ++ 3. You may copy and distribute the Program (or a work based on it, ++under Section 2) in object code or executable form under the terms of ++Sections 1 and 2 above provided that you also do one of the following: ++ ++ a) Accompany it with the complete corresponding machine-readable ++ source code, which must be distributed under the terms of Sections ++ 1 and 2 above on a medium customarily used for software interchange; or, ++ ++ b) Accompany it with a written offer, valid for at least three ++ years, to give any third party, for a charge no more than your ++ cost of physically performing source distribution, a complete ++ machine-readable copy of the corresponding source code, to be ++ distributed under the terms of Sections 1 and 2 above on a medium ++ customarily used for software interchange; or, ++ ++ c) Accompany it with the information you received as to the offer ++ to distribute corresponding source code. (This alternative is ++ allowed only for noncommercial distribution and only if you ++ received the program in object code or executable form with such ++ an offer, in accord with Subsection b above.) ++ ++The source code for a work means the preferred form of the work for ++making modifications to it. For an executable work, complete source ++code means all the source code for all modules it contains, plus any ++associated interface definition files, plus the scripts used to ++control compilation and installation of the executable. However, as a ++special exception, the source code distributed need not include ++anything that is normally distributed (in either source or binary ++form) with the major components (compiler, kernel, and so on) of the ++operating system on which the executable runs, unless that component ++itself accompanies the executable. ++ ++If distribution of executable or object code is made by offering ++access to copy from a designated place, then offering equivalent ++access to copy the source code from the same place counts as ++distribution of the source code, even though third parties are not ++compelled to copy the source along with the object code. ++ ++ 4. You may not copy, modify, sublicense, or distribute the Program ++except as expressly provided under this License. Any attempt ++otherwise to copy, modify, sublicense or distribute the Program is ++void, and will automatically terminate your rights under this License. ++However, parties who have received copies, or rights, from you under ++this License will not have their licenses terminated so long as such ++parties remain in full compliance. ++ ++ 5. You are not required to accept this License, since you have not ++signed it. However, nothing else grants you permission to modify or ++distribute the Program or its derivative works. These actions are ++prohibited by law if you do not accept this License. Therefore, by ++modifying or distributing the Program (or any work based on the ++Program), you indicate your acceptance of this License to do so, and ++all its terms and conditions for copying, distributing or modifying ++the Program or works based on it. ++ ++ 6. Each time you redistribute the Program (or any work based on the ++Program), the recipient automatically receives a license from the ++original licensor to copy, distribute or modify the Program subject to ++these terms and conditions. You may not impose any further ++restrictions on the recipients' exercise of the rights granted herein. ++You are not responsible for enforcing compliance by third parties to ++this License. ++ ++ 7. If, as a consequence of a court judgment or allegation of patent ++infringement or for any other reason (not limited to patent issues), ++conditions are imposed on you (whether by court order, agreement or ++otherwise) that contradict the conditions of this License, they do not ++excuse you from the conditions of this License. If you cannot ++distribute so as to satisfy simultaneously your obligations under this ++License and any other pertinent obligations, then as a consequence you ++may not distribute the Program at all. For example, if a patent ++license would not permit royalty-free redistribution of the Program by ++all those who receive copies directly or indirectly through you, then ++the only way you could satisfy both it and this License would be to ++refrain entirely from distribution of the Program. ++ ++If any portion of this section is held invalid or unenforceable under ++any particular circumstance, the balance of the section is intended to ++apply and the section as a whole is intended to apply in other ++circumstances. ++ ++It is not the purpose of this section to induce you to infringe any ++patents or other property right claims or to contest validity of any ++such claims; this section has the sole purpose of protecting the ++integrity of the free software distribution system, which is ++implemented by public license practices. Many people have made ++generous contributions to the wide range of software distributed ++through that system in reliance on consistent application of that ++system; it is up to the author/donor to decide if he or she is willing ++to distribute software through any other system and a licensee cannot ++impose that choice. ++ ++This section is intended to make thoroughly clear what is believed to ++be a consequence of the rest of this License. ++ ++ 8. If the distribution and/or use of the Program is restricted in ++certain countries either by patents or by copyrighted interfaces, the ++original copyright holder who places the Program under this License ++may add an explicit geographical distribution limitation excluding ++those countries, so that distribution is permitted only in or among ++countries not thus excluded. In such case, this License incorporates ++the limitation as if written in the body of this License. ++ ++ 9. The Free Software Foundation may publish revised and/or new versions ++of the General Public License from time to time. Such new versions will ++be similar in spirit to the present version, but may differ in detail to ++address new problems or concerns. ++ ++Each version is given a distinguishing version number. If the Program ++specifies a version number of this License which applies to it and "any ++later version", you have the option of following the terms and conditions ++either of that version or of any later version published by the Free ++Software Foundation. If the Program does not specify a version number of ++this License, you may choose any version ever published by the Free Software ++Foundation. ++ ++ 10. If you wish to incorporate parts of the Program into other free ++programs whose distribution conditions are different, write to the author ++to ask for permission. For software which is copyrighted by the Free ++Software Foundation, write to the Free Software Foundation; we sometimes ++make exceptions for this. Our decision will be guided by the two goals ++of preserving the free status of all derivatives of our free software and ++of promoting the sharing and reuse of software generally. ++ ++ NO WARRANTY ++ ++ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY ++FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN ++OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES ++PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED ++OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ++MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS ++TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE ++PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, ++REPAIR OR CORRECTION. ++ ++ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING ++WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR ++REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, ++INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING ++OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED ++TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY ++YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER ++PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE ++POSSIBILITY OF SUCH DAMAGES. ++ ++ END OF TERMS AND CONDITIONS ++ ++ How to Apply These Terms to Your New Programs ++ ++ If you develop a new program, and you want it to be of the greatest ++possible use to the public, the best way to achieve this is to make it ++free software which everyone can redistribute and change under these terms. ++ ++ To do so, attach the following notices to the program. It is safest ++to attach them to the start of each source file to most effectively ++convey the exclusion of warranty; and each file should have at least ++the "copyright" line and a pointer to where the full notice is found. ++ ++ ++ Copyright (C) ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License along ++ with this program; if not, write to the Free Software Foundation, Inc., ++ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ ++Also add information on how to contact you by electronic and paper mail. ++ ++If the program is interactive, make it output a short notice like this ++when it starts in an interactive mode: ++ ++ Gnomovision version 69, Copyright (C) year name of author ++ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. ++ This is free software, and you are welcome to redistribute it ++ under certain conditions; type `show c' for details. ++ ++The hypothetical commands `show w' and `show c' should show the appropriate ++parts of the General Public License. Of course, the commands you use may ++be called something other than `show w' and `show c'; they could even be ++mouse-clicks or menu items--whatever suits your program. ++ ++You should also get your employer (if you work as a programmer) or your ++school, if any, to sign a "copyright disclaimer" for the program, if ++necessary. Here is a sample; alter the names: ++ ++ Yoyodyne, Inc., hereby disclaims all copyright interest in the program ++ `Gnomovision' (which makes passes at compilers) written by James Hacker. ++ ++ , 1 April 1989 ++ Ty Coon, President of Vice ++ ++This General Public License does not permit incorporating your program into ++proprietary programs. If your program is a subroutine library, you may ++consider it more useful to permit linking proprietary applications with the ++library. If this is what you want to do, use the GNU Lesser General ++Public License instead of this License. +diff --git a/grub-core/lib/libgcrypt/COPYING.LIB b/grub-core/lib/libgcrypt/COPYING.LIB +new file mode 100644 +index 0000000..4362b49 +--- /dev/null ++++ b/grub-core/lib/libgcrypt/COPYING.LIB +@@ -0,0 +1,502 @@ ++ GNU LESSER GENERAL PUBLIC LICENSE ++ Version 2.1, February 1999 ++ ++ Copyright (C) 1991, 1999 Free Software Foundation, Inc. ++ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ Everyone is permitted to copy and distribute verbatim copies ++ of this license document, but changing it is not allowed. ++ ++[This is the first released version of the Lesser GPL. It also counts ++ as the successor of the GNU Library Public License, version 2, hence ++ the version number 2.1.] ++ ++ Preamble ++ ++ The licenses for most software are designed to take away your ++freedom to share and change it. By contrast, the GNU General Public ++Licenses are intended to guarantee your freedom to share and change ++free software--to make sure the software is free for all its users. ++ ++ This license, the Lesser General Public License, applies to some ++specially designated software packages--typically libraries--of the ++Free Software Foundation and other authors who decide to use it. You ++can use it too, but we suggest you first think carefully about whether ++this license or the ordinary General Public License is the better ++strategy to use in any particular case, based on the explanations below. ++ ++ When we speak of free software, we are referring to freedom of use, ++not price. Our General Public Licenses are designed to make sure that ++you have the freedom to distribute copies of free software (and charge ++for this service if you wish); that you receive source code or can get ++it if you want it; that you can change the software and use pieces of ++it in new free programs; and that you are informed that you can do ++these things. ++ ++ To protect your rights, we need to make restrictions that forbid ++distributors to deny you these rights or to ask you to surrender these ++rights. These restrictions translate to certain responsibilities for ++you if you distribute copies of the library or if you modify it. ++ ++ For example, if you distribute copies of the library, whether gratis ++or for a fee, you must give the recipients all the rights that we gave ++you. You must make sure that they, too, receive or can get the source ++code. If you link other code with the library, you must provide ++complete object files to the recipients, so that they can relink them ++with the library after making changes to the library and recompiling ++it. And you must show them these terms so they know their rights. ++ ++ We protect your rights with a two-step method: (1) we copyright the ++library, and (2) we offer you this license, which gives you legal ++permission to copy, distribute and/or modify the library. ++ ++ To protect each distributor, we want to make it very clear that ++there is no warranty for the free library. Also, if the library is ++modified by someone else and passed on, the recipients should know ++that what they have is not the original version, so that the original ++author's reputation will not be affected by problems that might be ++introduced by others. ++ ++ Finally, software patents pose a constant threat to the existence of ++any free program. We wish to make sure that a company cannot ++effectively restrict the users of a free program by obtaining a ++restrictive license from a patent holder. Therefore, we insist that ++any patent license obtained for a version of the library must be ++consistent with the full freedom of use specified in this license. ++ ++ Most GNU software, including some libraries, is covered by the ++ordinary GNU General Public License. This license, the GNU Lesser ++General Public License, applies to certain designated libraries, and ++is quite different from the ordinary General Public License. We use ++this license for certain libraries in order to permit linking those ++libraries into non-free programs. ++ ++ When a program is linked with a library, whether statically or using ++a shared library, the combination of the two is legally speaking a ++combined work, a derivative of the original library. The ordinary ++General Public License therefore permits such linking only if the ++entire combination fits its criteria of freedom. The Lesser General ++Public License permits more lax criteria for linking other code with ++the library. ++ ++ We call this license the "Lesser" General Public License because it ++does Less to protect the user's freedom than the ordinary General ++Public License. It also provides other free software developers Less ++of an advantage over competing non-free programs. These disadvantages ++are the reason we use the ordinary General Public License for many ++libraries. However, the Lesser license provides advantages in certain ++special circumstances. ++ ++ For example, on rare occasions, there may be a special need to ++encourage the widest possible use of a certain library, so that it becomes ++a de-facto standard. To achieve this, non-free programs must be ++allowed to use the library. A more frequent case is that a free ++library does the same job as widely used non-free libraries. In this ++case, there is little to gain by limiting the free library to free ++software only, so we use the Lesser General Public License. ++ ++ In other cases, permission to use a particular library in non-free ++programs enables a greater number of people to use a large body of ++free software. For example, permission to use the GNU C Library in ++non-free programs enables many more people to use the whole GNU ++operating system, as well as its variant, the GNU/Linux operating ++system. ++ ++ Although the Lesser General Public License is Less protective of the ++users' freedom, it does ensure that the user of a program that is ++linked with the Library has the freedom and the wherewithal to run ++that program using a modified version of the Library. ++ ++ The precise terms and conditions for copying, distribution and ++modification follow. Pay close attention to the difference between a ++"work based on the library" and a "work that uses the library". The ++former contains code derived from the library, whereas the latter must ++be combined with the library in order to run. ++ ++ GNU LESSER GENERAL PUBLIC LICENSE ++ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION ++ ++ 0. This License Agreement applies to any software library or other ++program which contains a notice placed by the copyright holder or ++other authorized party saying it may be distributed under the terms of ++this Lesser General Public License (also called "this License"). ++Each licensee is addressed as "you". ++ ++ A "library" means a collection of software functions and/or data ++prepared so as to be conveniently linked with application programs ++(which use some of those functions and data) to form executables. ++ ++ The "Library", below, refers to any such software library or work ++which has been distributed under these terms. A "work based on the ++Library" means either the Library or any derivative work under ++copyright law: that is to say, a work containing the Library or a ++portion of it, either verbatim or with modifications and/or translated ++straightforwardly into another language. (Hereinafter, translation is ++included without limitation in the term "modification".) ++ ++ "Source code" for a work means the preferred form of the work for ++making modifications to it. For a library, complete source code means ++all the source code for all modules it contains, plus any associated ++interface definition files, plus the scripts used to control compilation ++and installation of the library. ++ ++ Activities other than copying, distribution and modification are not ++covered by this License; they are outside its scope. The act of ++running a program using the Library is not restricted, and output from ++such a program is covered only if its contents constitute a work based ++on the Library (independent of the use of the Library in a tool for ++writing it). Whether that is true depends on what the Library does ++and what the program that uses the Library does. ++ ++ 1. You may copy and distribute verbatim copies of the Library's ++complete source code as you receive it, in any medium, provided that ++you conspicuously and appropriately publish on each copy an ++appropriate copyright notice and disclaimer of warranty; keep intact ++all the notices that refer to this License and to the absence of any ++warranty; and distribute a copy of this License along with the ++Library. ++ ++ You may charge a fee for the physical act of transferring a copy, ++and you may at your option offer warranty protection in exchange for a ++fee. ++ ++ 2. You may modify your copy or copies of the Library or any portion ++of it, thus forming a work based on the Library, and copy and ++distribute such modifications or work under the terms of Section 1 ++above, provided that you also meet all of these conditions: ++ ++ a) The modified work must itself be a software library. ++ ++ b) You must cause the files modified to carry prominent notices ++ stating that you changed the files and the date of any change. ++ ++ c) You must cause the whole of the work to be licensed at no ++ charge to all third parties under the terms of this License. ++ ++ d) If a facility in the modified Library refers to a function or a ++ table of data to be supplied by an application program that uses ++ the facility, other than as an argument passed when the facility ++ is invoked, then you must make a good faith effort to ensure that, ++ in the event an application does not supply such function or ++ table, the facility still operates, and performs whatever part of ++ its purpose remains meaningful. ++ ++ (For example, a function in a library to compute square roots has ++ a purpose that is entirely well-defined independent of the ++ application. Therefore, Subsection 2d requires that any ++ application-supplied function or table used by this function must ++ be optional: if the application does not supply it, the square ++ root function must still compute square roots.) ++ ++These requirements apply to the modified work as a whole. If ++identifiable sections of that work are not derived from the Library, ++and can be reasonably considered independent and separate works in ++themselves, then this License, and its terms, do not apply to those ++sections when you distribute them as separate works. But when you ++distribute the same sections as part of a whole which is a work based ++on the Library, the distribution of the whole must be on the terms of ++this License, whose permissions for other licensees extend to the ++entire whole, and thus to each and every part regardless of who wrote ++it. ++ ++Thus, it is not the intent of this section to claim rights or contest ++your rights to work written entirely by you; rather, the intent is to ++exercise the right to control the distribution of derivative or ++collective works based on the Library. ++ ++In addition, mere aggregation of another work not based on the Library ++with the Library (or with a work based on the Library) on a volume of ++a storage or distribution medium does not bring the other work under ++the scope of this License. ++ ++ 3. You may opt to apply the terms of the ordinary GNU General Public ++License instead of this License to a given copy of the Library. To do ++this, you must alter all the notices that refer to this License, so ++that they refer to the ordinary GNU General Public License, version 2, ++instead of to this License. (If a newer version than version 2 of the ++ordinary GNU General Public License has appeared, then you can specify ++that version instead if you wish.) Do not make any other change in ++these notices. ++ ++ Once this change is made in a given copy, it is irreversible for ++that copy, so the ordinary GNU General Public License applies to all ++subsequent copies and derivative works made from that copy. ++ ++ This option is useful when you wish to copy part of the code of ++the Library into a program that is not a library. ++ ++ 4. You may copy and distribute the Library (or a portion or ++derivative of it, under Section 2) in object code or executable form ++under the terms of Sections 1 and 2 above provided that you accompany ++it with the complete corresponding machine-readable source code, which ++must be distributed under the terms of Sections 1 and 2 above on a ++medium customarily used for software interchange. ++ ++ If distribution of object code is made by offering access to copy ++from a designated place, then offering equivalent access to copy the ++source code from the same place satisfies the requirement to ++distribute the source code, even though third parties are not ++compelled to copy the source along with the object code. ++ ++ 5. A program that contains no derivative of any portion of the ++Library, but is designed to work with the Library by being compiled or ++linked with it, is called a "work that uses the Library". Such a ++work, in isolation, is not a derivative work of the Library, and ++therefore falls outside the scope of this License. ++ ++ However, linking a "work that uses the Library" with the Library ++creates an executable that is a derivative of the Library (because it ++contains portions of the Library), rather than a "work that uses the ++library". The executable is therefore covered by this License. ++Section 6 states terms for distribution of such executables. ++ ++ When a "work that uses the Library" uses material from a header file ++that is part of the Library, the object code for the work may be a ++derivative work of the Library even though the source code is not. ++Whether this is true is especially significant if the work can be ++linked without the Library, or if the work is itself a library. The ++threshold for this to be true is not precisely defined by law. ++ ++ If such an object file uses only numerical parameters, data ++structure layouts and accessors, and small macros and small inline ++functions (ten lines or less in length), then the use of the object ++file is unrestricted, regardless of whether it is legally a derivative ++work. (Executables containing this object code plus portions of the ++Library will still fall under Section 6.) ++ ++ Otherwise, if the work is a derivative of the Library, you may ++distribute the object code for the work under the terms of Section 6. ++Any executables containing that work also fall under Section 6, ++whether or not they are linked directly with the Library itself. ++ ++ 6. As an exception to the Sections above, you may also combine or ++link a "work that uses the Library" with the Library to produce a ++work containing portions of the Library, and distribute that work ++under terms of your choice, provided that the terms permit ++modification of the work for the customer's own use and reverse ++engineering for debugging such modifications. ++ ++ You must give prominent notice with each copy of the work that the ++Library is used in it and that the Library and its use are covered by ++this License. You must supply a copy of this License. If the work ++during execution displays copyright notices, you must include the ++copyright notice for the Library among them, as well as a reference ++directing the user to the copy of this License. Also, you must do one ++of these things: ++ ++ a) Accompany the work with the complete corresponding ++ machine-readable source code for the Library including whatever ++ changes were used in the work (which must be distributed under ++ Sections 1 and 2 above); and, if the work is an executable linked ++ with the Library, with the complete machine-readable "work that ++ uses the Library", as object code and/or source code, so that the ++ user can modify the Library and then relink to produce a modified ++ executable containing the modified Library. (It is understood ++ that the user who changes the contents of definitions files in the ++ Library will not necessarily be able to recompile the application ++ to use the modified definitions.) ++ ++ b) Use a suitable shared library mechanism for linking with the ++ Library. A suitable mechanism is one that (1) uses at run time a ++ copy of the library already present on the user's computer system, ++ rather than copying library functions into the executable, and (2) ++ will operate properly with a modified version of the library, if ++ the user installs one, as long as the modified version is ++ interface-compatible with the version that the work was made with. ++ ++ c) Accompany the work with a written offer, valid for at ++ least three years, to give the same user the materials ++ specified in Subsection 6a, above, for a charge no more ++ than the cost of performing this distribution. ++ ++ d) If distribution of the work is made by offering access to copy ++ from a designated place, offer equivalent access to copy the above ++ specified materials from the same place. ++ ++ e) Verify that the user has already received a copy of these ++ materials or that you have already sent this user a copy. ++ ++ For an executable, the required form of the "work that uses the ++Library" must include any data and utility programs needed for ++reproducing the executable from it. However, as a special exception, ++the materials to be distributed need not include anything that is ++normally distributed (in either source or binary form) with the major ++components (compiler, kernel, and so on) of the operating system on ++which the executable runs, unless that component itself accompanies ++the executable. ++ ++ It may happen that this requirement contradicts the license ++restrictions of other proprietary libraries that do not normally ++accompany the operating system. Such a contradiction means you cannot ++use both them and the Library together in an executable that you ++distribute. ++ ++ 7. You may place library facilities that are a work based on the ++Library side-by-side in a single library together with other library ++facilities not covered by this License, and distribute such a combined ++library, provided that the separate distribution of the work based on ++the Library and of the other library facilities is otherwise ++permitted, and provided that you do these two things: ++ ++ a) Accompany the combined library with a copy of the same work ++ based on the Library, uncombined with any other library ++ facilities. This must be distributed under the terms of the ++ Sections above. ++ ++ b) Give prominent notice with the combined library of the fact ++ that part of it is a work based on the Library, and explaining ++ where to find the accompanying uncombined form of the same work. ++ ++ 8. You may not copy, modify, sublicense, link with, or distribute ++the Library except as expressly provided under this License. Any ++attempt otherwise to copy, modify, sublicense, link with, or ++distribute the Library is void, and will automatically terminate your ++rights under this License. However, parties who have received copies, ++or rights, from you under this License will not have their licenses ++terminated so long as such parties remain in full compliance. ++ ++ 9. You are not required to accept this License, since you have not ++signed it. However, nothing else grants you permission to modify or ++distribute the Library or its derivative works. These actions are ++prohibited by law if you do not accept this License. Therefore, by ++modifying or distributing the Library (or any work based on the ++Library), you indicate your acceptance of this License to do so, and ++all its terms and conditions for copying, distributing or modifying ++the Library or works based on it. ++ ++ 10. Each time you redistribute the Library (or any work based on the ++Library), the recipient automatically receives a license from the ++original licensor to copy, distribute, link with or modify the Library ++subject to these terms and conditions. You may not impose any further ++restrictions on the recipients' exercise of the rights granted herein. ++You are not responsible for enforcing compliance by third parties with ++this License. ++ ++ 11. If, as a consequence of a court judgment or allegation of patent ++infringement or for any other reason (not limited to patent issues), ++conditions are imposed on you (whether by court order, agreement or ++otherwise) that contradict the conditions of this License, they do not ++excuse you from the conditions of this License. If you cannot ++distribute so as to satisfy simultaneously your obligations under this ++License and any other pertinent obligations, then as a consequence you ++may not distribute the Library at all. For example, if a patent ++license would not permit royalty-free redistribution of the Library by ++all those who receive copies directly or indirectly through you, then ++the only way you could satisfy both it and this License would be to ++refrain entirely from distribution of the Library. ++ ++If any portion of this section is held invalid or unenforceable under any ++particular circumstance, the balance of the section is intended to apply, ++and the section as a whole is intended to apply in other circumstances. ++ ++It is not the purpose of this section to induce you to infringe any ++patents or other property right claims or to contest validity of any ++such claims; this section has the sole purpose of protecting the ++integrity of the free software distribution system which is ++implemented by public license practices. Many people have made ++generous contributions to the wide range of software distributed ++through that system in reliance on consistent application of that ++system; it is up to the author/donor to decide if he or she is willing ++to distribute software through any other system and a licensee cannot ++impose that choice. ++ ++This section is intended to make thoroughly clear what is believed to ++be a consequence of the rest of this License. ++ ++ 12. If the distribution and/or use of the Library is restricted in ++certain countries either by patents or by copyrighted interfaces, the ++original copyright holder who places the Library under this License may add ++an explicit geographical distribution limitation excluding those countries, ++so that distribution is permitted only in or among countries not thus ++excluded. In such case, this License incorporates the limitation as if ++written in the body of this License. ++ ++ 13. The Free Software Foundation may publish revised and/or new ++versions of the Lesser General Public License from time to time. ++Such new versions will be similar in spirit to the present version, ++but may differ in detail to address new problems or concerns. ++ ++Each version is given a distinguishing version number. If the Library ++specifies a version number of this License which applies to it and ++"any later version", you have the option of following the terms and ++conditions either of that version or of any later version published by ++the Free Software Foundation. If the Library does not specify a ++license version number, you may choose any version ever published by ++the Free Software Foundation. ++ ++ 14. If you wish to incorporate parts of the Library into other free ++programs whose distribution conditions are incompatible with these, ++write to the author to ask for permission. For software which is ++copyrighted by the Free Software Foundation, write to the Free ++Software Foundation; we sometimes make exceptions for this. Our ++decision will be guided by the two goals of preserving the free status ++of all derivatives of our free software and of promoting the sharing ++and reuse of software generally. ++ ++ NO WARRANTY ++ ++ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO ++WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. ++EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR ++OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY ++KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE ++IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ++PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE ++LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME ++THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. ++ ++ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN ++WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY ++AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU ++FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR ++CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE ++LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING ++RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A ++FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF ++SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH ++DAMAGES. ++ ++ END OF TERMS AND CONDITIONS ++ ++ How to Apply These Terms to Your New Libraries ++ ++ If you develop a new library, and you want it to be of the greatest ++possible use to the public, we recommend making it free software that ++everyone can redistribute and change. You can do so by permitting ++redistribution under these terms (or, alternatively, under the terms of the ++ordinary General Public License). ++ ++ To apply these terms, attach the following notices to the library. It is ++safest to attach them to the start of each source file to most effectively ++convey the exclusion of warranty; and each file should have at least the ++"copyright" line and a pointer to where the full notice is found. ++ ++ ++ Copyright (C) ++ ++ This library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ This library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with this library; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++ ++Also add information on how to contact you by electronic and paper mail. ++ ++You should also get your employer (if you work as a programmer) or your ++school, if any, to sign a "copyright disclaimer" for the library, if ++necessary. Here is a sample; alter the names: ++ ++ Yoyodyne, Inc., hereby disclaims all copyright interest in the ++ library `Frob' (a library for tweaking knobs) written by James Random Hacker. ++ ++ , 1 April 1990 ++ Ty Coon, President of Vice ++ ++That's all there is to it! +diff --git a/grub-core/lib/libgcrypt/LICENSES b/grub-core/lib/libgcrypt/LICENSES +new file mode 100644 +index 0000000..c2fea82 +--- /dev/null ++++ b/grub-core/lib/libgcrypt/LICENSES +@@ -0,0 +1,319 @@ ++Additional license notices for Libgcrypt. -*- org -*- ++ ++This file contains the copying permission notices for various files in ++the Libgcrypt distribution which are not covered by the GNU Lesser ++General Public License (LGPL) or the GNU General Public License (GPL). ++ ++These notices all require that a copy of the notice be included ++in the accompanying documentation and be distributed with binary ++distributions of the code, so be sure to include this file along ++with any binary distributions derived from the GNU C Library. ++ ++* BSD_3Clause ++ ++ For files: ++ - cipher/sha256-avx-amd64.S ++ - cipher/sha256-avx2-bmi2-amd64.S ++ - cipher/sha256-ssse3-amd64.S ++ - cipher/sha512-avx-amd64.S ++ - cipher/sha512-avx2-bmi2-amd64.S ++ - cipher/sha512-ssse3-amd64.S ++ - cipher/sha512-ssse3-i386.c ++ - cipher/sha512-avx512-amd64.S ++ ++#+begin_quote ++ Copyright (c) 2012, Intel Corporation ++ ++ All rights reserved. ++ ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions are ++ met: ++ ++ * Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++ ++ * Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in the ++ documentation and/or other materials provided with the ++ distribution. ++ ++ * Neither the name of the Intel Corporation nor the names of its ++ contributors may be used to endorse or promote products derived from ++ this software without specific prior written permission. ++ ++ ++ THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION "AS IS" AND ANY ++ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ++ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION OR ++ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ++ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ++ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR ++ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ++ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING ++ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++#+end_quote ++ ++ For files: ++ - cipher/poly1305-amd64-avx512.S ++ ++#+begin_quote ++ Copyright (c) 2021-2022, Intel Corporation ++ ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions are met: ++ ++ * Redistributions of source code must retain the above copyright notice, ++ this list of conditions and the following disclaimer. ++ * Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in the ++ documentation and/or other materials provided with the distribution. ++ * Neither the name of Intel Corporation nor the names of its contributors ++ may be used to endorse or promote products derived from this software ++ without specific prior written permission. ++ ++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ++ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE ++ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR ++ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER ++ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++#+end_quote ++ ++ For files: ++ - random/jitterentropy-base.c ++ - random/jitterentropy-gcd.c ++ - random/jitterentropy-gcd.h ++ - random/jitterentropy-health.c ++ - random/jitterentropy-health.h ++ - random/jitterentropy-noise.c ++ - random/jitterentropy-noise.h ++ - random/jitterentropy-sha3.c ++ - random/jitterentropy-sha3.h ++ - random/jitterentropy-timer.c ++ - random/jitterentropy-timer.h ++ - random/jitterentropy.h ++ - random/rndjent.c (plus common Libgcrypt copyright holders) ++ ++#+begin_quote ++ Copyright (C) 2017 - 2021, Stephan Mueller ++ ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions ++ are met: ++ 1. Redistributions of source code must retain the above copyright ++ notice, and the entire permission notice in its entirety, ++ including the disclaimer of warranties. ++ 2. Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in the ++ documentation and/or other materials provided with the distribution. ++ 3. The name of the author may not be used to endorse or promote ++ products derived from this software without specific prior ++ written permission. ++ ++ ALTERNATIVELY, this product may be distributed under the terms of ++ the GNU General Public License, in which case the provisions of the GPL2 ++ are required INSTEAD OF the above restrictions. (This clause is ++ necessary due to a potential bad interaction between the GPL and ++ the restrictions contained in a BSD-style copyright.) ++ ++ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED ++ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF ++ WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE ++ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ++ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT ++ OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ++ BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ++ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE ++ USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH ++ DAMAGE. ++#+end_quote ++ ++ For files: ++ - cipher/cipher-gcm-ppc.c ++ - cipher/keccak-amd64-avx512.S ++ ++#+begin_quote ++ Copyright (c) 2006, CRYPTOGAMS by ++ All rights reserved. ++ ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions ++ are met: ++ ++ * Redistributions of source code must retain copyright notices, ++ this list of conditions and the following disclaimer. ++ ++ * Redistributions in binary form must reproduce the above ++ copyright notice, this list of conditions and the following ++ disclaimer in the documentation and/or other materials ++ provided with the distribution. ++ ++ * Neither the name of the CRYPTOGAMS nor the names of its ++ copyright holder and contributors may be used to endorse or ++ promote products derived from this software without specific ++ prior written permission. ++ ++ ALTERNATIVELY, provided that this notice is retained in full, this ++ product may be distributed under the terms of the GNU General Public ++ License (GPL), in which case the provisions of the GPL apply INSTEAD OF ++ those given above. ++ ++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS ++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++#+end_quote ++ ++* X License ++ ++ For files: ++ - install.sh ++ ++#+begin_quote ++ Copyright (C) 1994 X Consortium ++ ++ Permission is hereby granted, free of charge, to any person obtaining a copy ++ of this software and associated documentation files (the "Software"), to ++ deal in the Software without restriction, including without limitation the ++ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or ++ sell copies of the Software, and to permit persons to whom the Software is ++ furnished to do so, subject to the following conditions: ++ ++ The above copyright notice and this permission notice shall be included in ++ all copies or substantial portions of the Software. ++ ++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++ X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN ++ AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- ++ TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++ ++ Except as contained in this notice, the name of the X Consortium shall not ++ be used in advertising or otherwise to promote the sale, use or other deal- ++ ings in this Software without prior written authorization from the X Consor- ++ tium. ++#+end_quote ++ ++* Public domain ++ ++ For files: ++ - cipher/arcfour-amd64.S ++ ++#+begin_quote ++ Author: Marc Bevand ++ Licence: I hereby disclaim the copyright on this code and place it ++ in the public domain. ++#+end_quote ++ ++* OCB license 1 ++ ++ For files: ++ - cipher/cipher-ocb.c ++ ++#+begin_quote ++ OCB is covered by several patents but may be used freely by most ++ software. See http://web.cs.ucdavis.edu/~rogaway/ocb/license.htm . ++ In particular license 1 is suitable for Libgcrypt: See ++ http://web.cs.ucdavis.edu/~rogaway/ocb/license1.pdf for the full ++ license document; it basically says: ++ ++ License 1 — License for Open-Source Software Implementations of OCB ++ (Jan 9, 2013) ++ ++ Under this license, you are authorized to make, use, and ++ distribute open-source software implementations of OCB. This ++ license terminates for you if you sue someone over their ++ open-source software implementation of OCB claiming that you have ++ a patent covering their implementation. ++ ++ ++ ++ License for Open Source Software Implementations of OCB ++ January 9, 2013 ++ ++ 1 Definitions ++ ++ 1.1 “Licensor” means Phillip Rogaway. ++ ++ 1.2 “Licensed Patents” means any patent that claims priority to United ++ States Patent Application No. 09/918,615 entitled “Method and Apparatus ++ for Facilitating Efficient Authenticated Encryption,” and any utility, ++ divisional, provisional, continuation, continuations-in-part, reexamination, ++ reissue, or foreign counterpart patents that may issue with respect to the ++ aforesaid patent application. This includes, but is not limited to, United ++ States Patent No. 7,046,802; United States Patent No. 7,200,227; United ++ States Patent No. 7,949,129; United States Patent No. 8,321,675 ; and any ++ patent that issues out of United States Patent Application No. 13/669,114. ++ ++ 1.3 “Use” means any practice of any invention claimed in the Licensed Patents. ++ ++ 1.4 “Software Implementation” means any practice of any invention ++ claimed in the Licensed Patents that takes the form of software executing on ++ a user-programmable, general-purpose computer or that takes the form of a ++ computer-readable medium storing such software. Software Implementation does ++ not include, for example, application-specific integrated circuits (ASICs), ++ field-programmable gate arrays (FPGAs), embedded systems, or IP cores. ++ ++ 1.5 “Open Source Software” means software whose source code is published ++ and made available for inspection and use by anyone because either (a) the ++ source code is subject to a license that permits recipients to copy, modify, ++ and distribute the source code without payment of fees or royalties, or ++ (b) the source code is in the public domain, including code released for ++ public use through a CC0 waiver. All licenses certified by the Open Source ++ Initiative at opensource.org as of January 9, 2013 and all Creative Commons ++ licenses identified on the creativecommons.org website as of January 9, ++ 2013, including the Public License Fallback of the CC0 waiver, satisfy these ++ requirements for the purposes of this license. ++ ++ 1.6 “Open Source Software Implementation” means a Software ++ Implementation in which the software implicating the Licensed Patents is ++ Open Source Software. Open Source Software Implementation does not include ++ any Software Implementation in which the software implicating the Licensed ++ Patents is combined, so as to form a larger program, with software that is ++ not Open Source Software. ++ ++ 2 License Grant ++ ++ 2.1 License. Subject to your compliance with the term s of this license, ++ including the restriction set forth in Section 2.2, Licensor hereby ++ grants to you a perpetual, worldwide, non-exclusive, non-transferable, ++ non-sublicenseable, no-charge, royalty-free, irrevocable license to practice ++ any invention claimed in the Licensed Patents in any Open Source Software ++ Implementation. ++ ++ 2.2 Restriction. If you or your affiliates institute patent litigation ++ (including, but not limited to, a cross-claim or counterclaim in a lawsuit) ++ against any entity alleging that any Use authorized by this license ++ infringes another patent, then any rights granted to you under this license ++ automatically terminate as of the date such litigation is filed. ++ ++ 3 Disclaimer ++ YOUR USE OF THE LICENSED PATENTS IS AT YOUR OWN RISK AND UNLESS REQUIRED ++ BY APPLICABLE LAW, LICENSOR MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY ++ KIND CONCERNING THE LICENSED PATENTS OR ANY PRODUCT EMBODYING ANY LICENSED ++ PATENT, EXPRESS OR IMPLIED, STATUT ORY OR OTHERWISE, INCLUDING, WITHOUT ++ LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR ++ PURPOSE, OR NONINFRINGEMENT. IN NO EVENT WILL LICENSOR BE LIABLE FOR ANY ++ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ++ ARISING FROM OR RELATED TO ANY USE OF THE LICENSED PATENTS, INCLUDING, ++ WITHOUT LIMITATION, DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, PUNITIVE ++ OR SPECIAL DAMAGES, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF ++ SUCH DAMAGES PRIOR TO SUCH AN OCCURRENCE. ++#+end_quote +diff --git a/grub-core/lib/libgcrypt/README b/grub-core/lib/libgcrypt/README +new file mode 100644 +index 0000000..7733dbd +--- /dev/null ++++ b/grub-core/lib/libgcrypt/README +@@ -0,0 +1,278 @@ ++ Libgcrypt - The GNU Crypto Library ++ ------------------------------------ ++ Version 1.11 ++ ++ Copyright (C) 1989,1991-2018 Free Software Foundation, Inc. ++ Copyright (C) 2012-2024 g10 Code GmbH ++ Copyright (C) 2013-2024 Jussi Kivilinna ++ ++ Libgcrypt is free software. See the file AUTHORS for full copying ++ notices, and LICENSES for notices about contributions that require ++ these additional notices to be distributed. ++ ++ ++ Overview ++ -------- ++ ++ Libgcrypt is a general purpose crypto library based on the code ++ used in GnuPG. Libgcrypt depends on the library `libgpg-error', ++ which must be installed correctly before Libgcrypt is to be built. ++ Libgcrypt is distributed under the LGPL, see the section "License" ++ below for details. ++ ++ ++ Build Instructions ++ ------------------ ++ ++ The download canonical location for libgcrypt is: ++ ++ https://gnupg.org/ftp/gcrypt/libgcrypt/ ++ ++ To build libgcrypt you need libgpg-error: ++ ++ https://gnupg.org/ftp/gcrypt/libgpg-error/ ++ ++ You should get the latest versions of course. ++ ++ After building and installing the libgpg-error package, you may ++ continue with Libgcrypt installation as with allmost all GNU ++ packages, you just have to do ++ ++ ./configure ++ make ++ make check ++ make install ++ ++ The "make check" is not required but a good idea to see whether ++ the library works as expected. The check takes some while and ++ prints some benchmarking results. Before doing "make install" you ++ probably need to become root. ++ ++ To build libgcrypt for Microsoft Windows, you need to have the ++ mingw32 cross-building toolchain installed. Instead of running a ++ plain configure you use ++ ++ ./autogen.sh --build-w32 ++ make ++ make install ++ ++ By default this command sequences expectsd a libgpg-error ++ installed below $HOME/w32root and installs libgcrypt to that ++ directory too. See the autogen.sh code for details. ++ ++ The documentation is available as an Info file (gcrypt.info). To ++ build documentation in PDF, run this: ++ ++ cd doc ++ make pdf ++ ++ ++ ++ Mailing List ++ ------------ ++ ++ You may want to join the developer's mailing list ++ gcrypt-devel@gnupg.org by sending mail with a subject of ++ "subscribe" to gcrypt-devel-request@gnupg.org. An archive of this ++ list is available at https://lists.gnupg.org . ++ ++ ++ Configure options ++ ----------------- ++ Here is a list of configure options which are sometimes useful ++ for installation. ++ ++ --enable-large-data-tests ++ With this option a "make check" will take really ++ long due to extra checks for the hash algorithms. ++ ++ --disable-asm ++ Do not use assembler modules. It is not possible ++ to use this on some CPU types. ++ ++ --enable-ld-version-script ++ Libgcrypt tries to build a library where internal ++ symbols are not exported. This requires support ++ from ld and is currently enabled for a few OSes. ++ If you know that your ld supports the so called ++ ELF version scripts, you can use this option to ++ force its use. OTOH, if you get error message ++ from the linker, you probably want to use this ++ option to disable the use of version scripts. ++ Note, that you should never ever use an ++ undocumented symbol or one which is prefixed with ++ an underscore. ++ ++ --enable-ciphers=list ++ --enable-pubkey-ciphers=list ++ --enable-digests=list ++ If not otherwise specified, all algorithms ++ included in the libgcrypt source tree are built. ++ An exception are algorithms, which depend on ++ features not provided by the system, like 64bit ++ data types. With these switches it is possible ++ to select exactly those algorithm modules, which ++ should be built. The algorithms are to be ++ separated by spaces, commas or colons. To view ++ the list used with the current build the program ++ tests/version may be used. ++ ++ --disable-endian-check ++ Don't let configure test for the endianness but ++ try to use the OS provided macros at compile ++ time. This is helpful to create OS X fat binaries. ++ ++ --enable-random-daemon ++ Include support for a global random daemon and ++ build the daemon. This is an experimental feature. ++ ++ --enable-mpi-path=EXTRA_PATH ++ Prepend EXTRA_PATH to list of CPU specific ++ optimizations. For example, if you want to add ++ optimizations forn a Intel Pentium 4 compatible ++ CPU, you may use ++ --enable-mpi-path=pentium4/sse2:pentium4/mmx ++ Take care: The generated library may crash on ++ non-compatible CPUs. ++ ++ --enable-random=NAME ++ Force the use of the random gathering module ++ NAME. Default is either to use /dev/random or ++ the auto mode. Possible values for NAME are: ++ egd - Use the module which accesses the ++ Entropy Gathering Daemon. See the webpages ++ for more information about it. ++ unix - Use the standard Unix module which does not ++ have a very good performance. ++ linux - Use the module which accesses /dev/random. ++ This is the first choice and the default one ++ for GNU/Linux or *BSD. ++ auto - Compile linux, egd and unix in and ++ automagically select at runtime. ++ ++ --enable-hmac-binary-check ++ Include support to check the binary at runtime ++ against a HMAC checksum. This works only in FIPS ++ mode on systems providing the dladdr function and using ++ the ELF binary format. ++ ++ --with-fips-module-version=version ++ Specify a string used as a module version for FIPS ++ certification purposes. ++ ++ --disable-padlock-support ++ Disable support for the PadLock engine of VIA ++ processors. The default is to use PadLock if ++ available. Try this if you get problems with ++ assembler code. ++ ++ --disable-aesni-support ++ Disable support for the AES-NI instructions of ++ newer Intel CPUs. The default is to use AES-NI ++ if available. Try this if you get problems with ++ assembler code. ++ ++ --disable-O-flag-munging ++ Some code is too complex for some compilers while ++ in higher optimization modes, thus the compiler ++ invocation is modified to use a lower ++ optimization level. Usually this works very well ++ but on some platforms these rules break the ++ invocation. This option may be used to disable ++ the feature under the assumption that either good ++ CFLAGS are given or the compiler can grok the code. ++ ++ ++ ++ ++ Build Problems ++ -------------- ++ ++ If you have a problem with a a certain release, please first check ++ the Release-info URL given in the NEWS file. ++ ++ We can't check all assembler files, so if you have problems ++ assembling them (or the program crashes) use --disable-asm with ++ ./configure. If you opt to delete individual replacement files in ++ hopes of using the remaining ones, be aware that the configure ++ scripts may consider several subdirectories to get all available ++ assembler files; be sure to delete the correct ones. Never delete ++ udiv-qrnnd.S in any CPU directory, because there may be no C ++ substitute (in mpi/genereic). Don't forget to delete ++ "config.cache" and run "./config.status --recheck". We got a few ++ reports about problems using versions of gcc earlier than 2.96 ++ along with a non-GNU assembler (as). If this applies to your ++ platform, you can either upgrade gcc to a more recent version, or ++ use the GNU assembler. ++ ++ Some make tools are broken - the best solution is to use GNU's ++ make. Try gmake or grab the sources from a GNU archive and ++ install them. ++ ++ Specific problems on some machines: ++ ++ * AArch64 (GCC 11.1 and 11.2) ++ ++ Because of the bug in GCC (fixed in 11.3), with the option ++ -O3, vectorization results wrong code for the function ++ buf_eq_const. Please use -O2 or -fno-tree-loop-vectorize. ++ ++ * IBM RS/6000 running AIX ++ ++ Due to a change in gcc (since version 2.8) the MPI stuff may ++ not build. In this case try to run configure using: ++ CFLAGS="-g -O2 -mcpu=powerpc" ./configure ++ ++ * SVR4.2 (ESIX V4.2 cc) ++ ++ Due to problems with the ESIX as(1), you probably want to do: ++ CFLAGS="-O -K pentium" ./configure --disable-asm ++ ++ * SunOS 4.1.4 ++ ++ ./configure ac_cv_sys_symbol_underscore=yes ++ ++ * Sparc64 CPUs ++ ++ We have reports about failures in the AES module when ++ compiling using gcc (e.g. version 4.1.2) and the option -O3; ++ using -O2 solves the problem. ++ ++ ++ License ++ ------- ++ ++ The library is distributed under the terms of the GNU Lesser ++ General Public License (LGPL); see the file COPYING.LIB for the ++ actual terms. ++ ++ The helper programs as well as the documentation are distributed ++ under the terms of the GNU General Public License (GPL); see the ++ file COPYING for the actual terms. ++ ++ The file LICENSES has notices about contributions that require ++ that these additional notices are distributed. ++ ++ ++ Contact ++ ------- ++ ++ See the file AUTHORS. ++ ++ Commercial grade support for Libgcrypt is available; for a listing ++ of offers see https://www.gnupg.org/service.html . ++ ++ Since 2001 maintenance and development of Libgcrypt is done by g10 ++ Code GmbH and was mostly financed by donations; since 2022 a raise ++ in revenues from support contracts allows to fully finance the ++ development without resorting to donations. Many thanks to our ++ paid developers for their work and also a big thank you to Jussi ++ Kivilinna for all of his performance work. ++ ++ This file is Free Software; as a special exception the authors gives ++ unlimited permission to copy and/or distribute it, with or without ++ modifications, as long as this notice is preserved. For conditions ++ of the whole package, please see the file COPYING. This file is ++ distributed in the hope that it will be useful, but WITHOUT ANY ++ WARRANTY, to the extent permitted by law; without even the implied ++ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +diff --git a/grub-core/lib/libgcrypt/README.GIT b/grub-core/lib/libgcrypt/README.GIT +new file mode 100644 +index 0000000..ee2c638 +--- /dev/null ++++ b/grub-core/lib/libgcrypt/README.GIT +@@ -0,0 +1,49 @@ ++If you are building from GIT, run the script ++ ++./autogen.sh ++ ++first, to make sure that you have all the necessary maintainer tools ++are installed and to build the actual configuration files. If you ++have just checked out from GIT, you should add the option "--force" to ++autogen.sh so that meta data is noticed by autom4te.cache. Then run ++ ++./configure --enable-maintainer-mode ++ ++followed by the usual make. ++ ++If autogen.sh complains about insufficient versions of the required ++tools, or the tools are not installed, you may use environment ++variables to override the default tool names: ++ ++ AUTOMAKE_SUFFIX is used as a suffix for all tools from the automake ++ package. For example ++ AUTOMAKE_SUFFIX="-1.7" ./autogen.sh ++ uses "automake-1.7" and "aclocal-1.7. ++ AUTOMAKE_PREFIX is used as a prefix for all tools from the automake ++ page and may be combined with AUTOMAKE_SUFFIX. e.g.: ++ AUTOMAKE_PREFIX=/usr/foo/bin ./autogen.sh ++ uses "automake" and "aclocal" in the /usr/foo/bin ++ directory. ++ AUTOCONF_SUFFIX is used as a suffix for all tools from the automake ++ package ++ AUTOCONF_PREFIX is used as a prefix for all tools from the automake ++ package ++ GETTEXT_SUFFIX is used as a suffix for all tools from the gettext ++ package ++ GETTEXT_PREFIX is used as a prefix for all tools from the gettext ++ package ++ ++It is also possible to use the variable name AUTOMAKE, AUTOCONF, ++ACLOCAL, AUTOHEADER, GETTEXT and MSGMERGE to directly specify the name ++of the programs to run. It is however better to use the suffix and ++prefix forms as described above because that does not require ++knowledge about the actual tools used by autogen.sh. ++ ++ ++Please don't use autopoint, libtoolize or autoreconf unless you are ++the current maintainer and want to update the standard configuration ++files. All those files should be in GIT and only updated manually ++if the maintainer decides that newer versions are required. The ++maintainer should also make sure that the required version of automake ++et al. are properly indicated at the top of configure.ac and take care ++to copy the files and not merely use symlinks. +diff --git a/grub-core/lib/libgcrypt/THANKS b/grub-core/lib/libgcrypt/THANKS +new file mode 100644 +index 0000000..6a44ead +--- /dev/null ++++ b/grub-core/lib/libgcrypt/THANKS +@@ -0,0 +1,168 @@ ++Libgcrypt is based on the GnuPG code. Here is a list of people, who ++helped in GnuPG and Libgcrypt development. Please help us to keep it ++complete and free of errors. ++ ++Albert Chin china at thewrittenword com ++Allan Clark allanc@sco.com ++Anand Kumria wildfire@progsoc.uts.edu.au ++Andreas Metzler ametzler at downhill.at.eu.org ++Ariel T Glenn ariel@columbia.edu ++Aurelien Jarno aurel32 at debian.org ++Ben Hutchings ben decadent org uk ++Bodo Moeller Bodo_Moeller@public.uni-hamburg.de ++Brenno de Winter brenno@dewinter.com ++Brian Moore bem@cmc.net ++Brian Warner warner@lothar.com ++Brieuc Jeunhomme bbp@via.ecp.fr ++Bryan Fullerton bryanf@samurai.com ++Caskey L. Dickson caskey@technocage.com ++Cees van de Griend cees-list@griend.xs4all.nl ++Charles Levert charles@comm.polymtl.ca ++Christian Biere christianbiere@gmx.de ++Christian Grothoff christian at grothoff org ++Christian von Roques roques@pond.sub.org ++Christopher Oliver oliver@fritz.traverse.net ++Christian Recktenwald chris@citecs.de ++Daiki Ueno ueno at unixuser org ++Dan Fandrich dan at coneharvesters com ++Daniel Eisenbud eisenbud@cs.swarthmore.edu ++Daniel Koening dan@mail.isis.de ++David Ellement ellement@sdd.hp.com ++Detlef Lannert lannert@lannert.rz.uni-duesseldorf.de ++Dirk Lattermann dlatt@t-online.de ++Dirk Stoecker gcrypt@dstoecker.de ++Ed Boraas ecxjo@esperanto.org ++Elie De Brauwer elie@de-brauwer.be ++Enzo Michelangeli em@MailAndNews.com ++Ernst Molitor ernst.molitor@uni-bonn.de ++Fabian Keil fk at fabiankeil de ++Fabio Coatti cova@felix.unife.it ++Felix von Leitner leitner@amdiv.de ++Frank Heckenbach heckenb@mi.uni-erlangen.de ++Frank Stajano frank.stajano@cl.cam.ac.uk ++Gabriele Monti psicus78 gmail com ++Gaël Quéri gqueri@mail.dotcom.fr ++Gregor Riepl seto-kun@freesurf.ch ++Gerlinde Klaes gk@u64.de ++Greg Louis glouis@dynamicro.on.ca ++Greg Troxel gdt@ir.bbn.com ++Gregory Steuck steuck@iname.com ++Geoff Keating geoffk@ozemail.com.au ++Harald Denker harry@hal.westfalen.de ++Hendrik Buschkamp buschkamp@rheumanet.org ++Holger Schurig holger@d.om.org ++Hugh Daniel hugh@toad.com ++Ian McKellar imckellar@harvestroad.com.au ++Ian Peters itp@ximian.com ++Janusz A. Urbanowicz alex@bofh.torun.pl ++James Troup james@nocrew.org ++Jean-loup Gailly gzip@prep.ai.mit.edu ++Jeff Johnson jbj@redhat.com ++Jens Bachem bachem@rrz.uni-koeln.de ++J Horacio MG homega@ciberia.es ++Joachim Backes backes@rhrk.uni-kl.de ++Jordi Mallach jordi@sindominio.net ++John A. Martin jam@jamux.com ++Johnny Teveßen j.tevessen@gmx.de ++Jörg Schilling schilling@fokus.gmd.de ++Jun Kuriyama kuriyama@sky.rim.or.jp ++Karl Fogel kfogel@guanabana.onshore.com ++Karsten Thygesen karthy@kom.auc.dk ++Katsuhiro Kondou kondou@nec.co.jp ++Kazu Yamamoto kazu@iijlab.net ++Lars Kellogg-Stedman lars@bu.edu ++Lee Fisher blibbet at gmail dot com ++Marco d'Itri md@linux.it ++Mark Adler madler@alumni.caltech.edu ++Mark Elbrecht snowball3@bigfoot.com ++Markus Friedl Markus.Friedl@informatik.uni-erlangen.de ++Matthias Urlichs smurf@smurf.noris.de ++Martin Kahlert martin.kahlert@provi.de ++Martin Hamilton ++Martin Schulte schulte@thp.uni-koeln.de ++Matthew Skala mskala@ansuz.sooke.bc.ca ++Max Kellermann max@duempel.org ++Max Valianskiy maxcom@maxcom.ml.org ++Michael Fischer v. Mollard mfvm@gmx.de ++Michael Roth mroth@nessie.de ++Michael Sobolev mss@despair.transas.com ++Michele Baldessari michele@pupazzo.org ++Modestas Vainius geromanas@mailas.com ++Neil Dunbar neil.dunbar at pobox.com ++Neil Spring nspring@cs.washington.edu ++Newton Hammet newton@hammet.net ++Nicolas Graner Nicolas.Graner@cri.u-psud.fr ++NIIBE Yutaka gniibe@chroot.org ++Niklas Hernaeus ++Nikolay Sturm sturm@sec.informatik.tu-darmstadt.de ++Nikos Mavroyanopoulos nmav@hellug.gr ++Nimrod Zimerman zimerman@forfree.at ++N J Doye nic@niss.ac.uk ++Oliver Haakert haakert@hsp.de ++Oskari Jääskeläinen f33003a@cc.hut.fi ++Paul D. Smith psmith@baynetworks.com ++Philippe Laliberte arsphl@oeil.qc.ca ++Peter Gutmann pgut001@cs.auckland.ac.nz ++QingLong qinglong@bolizm.ihep.su ++Rafael Ávila de Espíndola rafael.espindola@gmail.com ++Rafaël Carré funman@videolan.org ++Ralf Fassel ralf@akutech.de ++Ralf Hildebrandt Ralf.Hildebrandt@innominate.com ++Ralf Schneider ralf@tapfere-schneiderleins.de ++Ralph Gillen gillen@theochem.uni-duesseldorf.de ++Rami Lehti Rami.Lehti@finland.sun.com ++Randolph Chung tausq@debian.org ++Randy mcclellr@oit.edu ++Rat ratinox@peorth.gweep.net ++Reinhard Wobst R.Wobst@ifw-dresden.de ++Rémi Guyomarch rguyom@mail.dotcom.fr ++Reuben Sumner rasumner@wisdom.weizmann.ac.il ++Richard Outerbridge outer@interlog.com ++Roddy Strachan roddy@satlink.com.au ++Roland Rosenfeld roland@spinnaker.rhein.de ++Ross Golder rossigee@bigfoot.com ++Serge Munhoven munhoven@mema.ucl.ac.be ++Sergi Blanch i Torné sergi at calcurco cat ++Simon Josefsson jas@extundo.com ++SL Baur steve@xemacs.org ++Stephan Austermuehle au@hcsd.de ++Stephan Müller smueller at atsec com ++Stephane Corthesy stephane@sente.ch ++Stefan Karrmann S.Karrmann@gmx.net ++Stefan Keller dres@cs.tu-berlin.de ++Stefan Krüger stadtkind2 at gmx de ++Steffen Ullrich ccrlphr@xensei.com ++Steffen Zahn zahn@berlin.snafu.de ++Steven Bakker steven@icoe.att.com ++Susanne Schultz schultz@hsp.de ++Sven Bjorn ++Szakats Istvan szaki.ms@gmail.com ++Thiago Jung Bauermann jungmann@cwb.matrix.com.br ++Thomas Roessler roessler@guug.de ++Tom Holroyd tomh@po.crl.go.jp ++Tom Spindler dogcow@home.merit.edu ++Tom Zerucha tzeruch@ceddec.com ++Tomas Fasth tomas.fasth@twinspot.net ++Tommi Komulainen Tommi.Komulainen@iki.fi ++Thomas Mikkelsen tbm@image.dk ++Ulf Möller 3umoelle@informatik.uni-hamburg.de ++Umberto Salsi salsi@icosaedro.it ++Uoti Urpala ++Urko Lusa ulusa@euskalnet.net ++Victor Stinner haypo@inl.fr ++Walter Koch koch@u32.de ++Werner Koch wk@gnupg.org ++Wim Vandeputte wim@kd85.com ++ nbecker@hns.com ++ ++ ++ Copyright 1998, 1999, 2000, 2001, 2002, 2003, ++ 2009, 2011 Free Software Foundation, Inc. ++ ++ This file is free software; as a special exception the author gives ++ unlimited permission to copy and/or distribute it, with or without ++ modifications, as long as this notice is preserved. ++ ++ This file is distributed in the hope that it will be useful, but ++ WITHOUT ANY WARRANTY, to the extent permitted by law; without even the ++ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +diff --git a/grub-core/lib/libgcrypt/VERSION b/grub-core/lib/libgcrypt/VERSION +new file mode 100644 +index 0000000..1cac385 +--- /dev/null ++++ b/grub-core/lib/libgcrypt/VERSION +@@ -0,0 +1 @@ ++1.11.0 +diff --git a/grub-core/lib/libgcrypt/cipher/ChangeLog b/grub-core/lib/libgcrypt/cipher/ChangeLog +deleted file mode 100644 +index 1b3694f..0000000 +--- a/grub-core/lib/libgcrypt/cipher/ChangeLog ++++ /dev/null +@@ -1,3990 +0,0 @@ +-2010-08-19 Werner Koch +- +- * cipher.c (gcry_cipher_open): Remove double release of the module. +- Fixes bug#1263. +- +-2010-06-10 Jeff Johnson (wk) +- +- * ecc.c (ecc_generate_ext): Parse transient-key flag. +- (generate_key): Add arg TRANSIENT_KEY and use it to set the random +- level. +- +-2010-04-12 Brad Hards (wk) +- +- Spelling fixes. +- +-2010-03-26 Werner Koch +- +- * tiger.c (asn): Unfetter the old TIGER from an OID. +- (TIGER_CONTEXT): Add field VARIANT. +- (tiger_init): Factor code out to ... +- (do_init): New. +- (tiger1_init, tiger2_init): New. +- (_gcry_digest_spec_tiger1, _gcry_digest_spec_tiger2): New. +- * md.c (digest_table): Add TIGER1 and TIGER2 variants. +- +-2009-12-11 Werner Koch +- +- * sha256.c (Cho, Maj, Sum0, Sum1): Turn macros into inline +- functions. +- (transform): Partly unroll to interweave the chain variables +- +- * sha512.c (ROTR, Ch, Maj, Sum0, Sum1): Turn macros into inline +- functions. +- (transform): Partly unroll to interweave the chain variables. +- Suggested by Christian Grothoff. +- +-2009-12-10 Werner Koch +- +- * Makefile.am (o_flag_munging): New. +- (tiger.o, tiger.lo): Use it. +- +- * cipher.c (do_ctr_encrypt): Add arg OUTBUFLEN. Check for +- suitable value. Add check for valid inputlen. Wipe temporary +- memory. +- (do_ctr_decrypt): Likewise. +- (do_cbc_encrypt, do_cbc_decrypt): Add arg OUTBUFLEN. Check for +- suitable value. Move check for valid inputlen to here; change +- returned error from INV_ARG to INV_LENGTH. +- (do_ecb_encrypt, do_ecb_decrypt): Ditto. +- (do_cfb_encrypt, do_cfb_decrypt): Ditto. +- (do_ofb_encrypt, do_ofb_decrypt): Ditto. +- (cipher_encrypt, cipher_encrypt): Adjust for above changes. +- (gcry_cipher_encrypt, gcry_cipher_decrypt): Simplify. +- +-2009-12-09 Werner Koch +- +- * cipher.c (gcry_cipher_open): Allow for GCRY_CIPHER_MODE_AESWRAP. +- (cipher_encrypt, cipher_decrypt): Ditto. +- (do_aeswrap_encrypt, do_aeswrap_decrypt): New. +- (struct gcry_cipher_handle): Add field marks. +- (cipher_setkey, cipher_setiv): Update marks flags. +- (cipher_reset): Reset marks. +- (cipher_encrypt, cipher_decrypt): Add new arg OUTBUFLEN. +- (gcry_cipher_encrypt, gcry_cipher_decrypt): Pass outbuflen to +- cipher_encrypt. Replace GPG_ERR_TOO_SHORT by +- GPG_ERR_BUFFER_TOO_SHORT. +- +-2009-08-21 Werner Koch +- +- * dsa.c (dsa_generate_ext): Release retfactors array before +- setting it to NULL. Reported by Daiko Ueno. +- +-2009-07-02 Werner Koch +- +- * md.c (md_read): Fix incomplete check for NULL. +- Reported by Fabian Kail. +- +-2009-03-31 Werner Koch +- +- * rsa.c (rsa_check_secret_key): Return GPG_ERR_BAD_SECKEY and not +- GPG_ERR_PUBKEY_ALGO. +- +-2009-02-16 Werner Koch +- +- * rsa.c (generate_x931): Do not initialize TBL with automatic +- variables. +- * whirlpool.c, tiger.c, sha256.c, sha1.c, rmd160.c, md5.c +- * md4.c, crc.c: Remove memory.h. This is garbage from gnupg. +- Reported by Dan Fandrich. +- +-2009-01-22 Werner Koch +- +- * ecc.c (compute_keygrip): Remove superfluous const. +- +-2009-01-06 Werner Koch +- +- * rmd160.c (oid_spec_rmd160): Add TeleTrust identifier. +- +-2008-12-10 Werner Koch +- +- * dsa.c (generate): Add arg DOMAIN and use it if specified. +- (generate_fips186): Ditto. +- (dsa_generate_ext): Parse and check the optional "domain" +- parameter and pass them to the generate functions. +- +- * rijndael.c (rijndael_names): Add "AES128" and "AES-128". +- (rijndael192_names): Add "AES-192". +- (rijndael256_names): Add "AES-256". +- +-2008-12-05 Werner Koch +- +- * dsa.c (generate): Add arg TRANSIENT_KEY and use it to detrmine +- the RNG quality needed. +- (dsa_generate_ext): Parse the transient-key flag und pass it to +- generate. +- +-2008-11-28 Werner Koch +- +- * dsa.c (generate_fips186): Add arg DERIVEPARMS and use the seed +- value if available. +- +- * primegen.c (_gcry_generate_fips186_2_prime): Fix inner p loop. +- +-2008-11-26 Werner Koch +- +- * primegen.c (_gcry_generate_fips186_3_prime): New. +- * dsa.c (generate_fips186): Add arg USE_FIPS186_2. +- (dsa_generate_ext): Parse new flag use-fips183-2. +- +-2008-11-25 Werner Koch +- +- * dsa.c (generate_fips186): New. +- (dsa_generate_ext): Use new function if derive-parms are given or +- if in FIPS mode. +- * primegen.c (_gcry_generate_fips186_2_prime): New. +- +-2008-11-24 Werner Koch +- +- * pubkey.c (gcry_pk_genkey): Insert code to output extrainfo. +- (pubkey_generate): Add arg R_EXTRAINFO and pass it to the extended +- key generation function. +- * rsa.c (gen_x931_parm_xp, gen_x931_parm_xi): New. +- (generate_x931): Generate params if not given. +- (rsa_generate_ext): Parse use-x931 flag. Return p-q-swapped +- indicator. +- * dsa.c (dsa_generate_ext): Put RETFACTORS into R_EXTRAINFO if +- possible. +- +- * pubkey.c (gcry_pk_genkey): Remove parsing of almost all +- parameters and pass the parameter S-expression to pubkey_generate. +- (pubkey_generate): Simplify by requitring modules to parse the +- parameters. Remove the special cases for Elgamal and ECC. +- (sexp_elements_extract_ecc): Add arg EXTRASPEC and use it. Fix +- small memory leak. +- (sexp_to_key): Pass EXTRASPEC to sexp_elements_extract_ecc. +- (pubkey_table) [USE_ELGAMAL]: Add real extraspec. +- * rsa.c (rsa_generate_ext): Adjust for new calling convention. +- * dsa.c (dsa_generate_ext): Ditto. +- * elgamal.c (_gcry_elg_generate): Ditto. Rename to elg_generate_ext. +- (elg_generate): New. +- (_gcry_elg_generate_using_x): Remove after merging code with +- elg_generate_ext. +- (_gcry_pubkey_extraspec_elg): New. +- (_gcry_elg_check_secret_key, _gcry_elg_encrypt, _gcry_elg_sign) +- (_gcry_elg_verify, _gcry_elg_get_nbits): Make static and remove +- _gcry_ prefix. +- * ecc.c (_gcry_ecc_generate): Rename to ecc_generate_ext and +- adjust for new calling convention. +- (_gcry_ecc_get_param): Rename to ecc_get_param and make static. +- (_gcry_pubkey_extraspec_ecdsa): Add ecc_generate_ext and +- ecc_get_param. +- +-2008-11-20 Werner Koch +- +- * pubkey.c (pubkey_generate): Add arg DERIVEPARMS. +- (gcry_pk_genkey): Parse derive-parms and pass it to above. +- * rsa.c (generate_x931): New. +- (rsa_generate_ext): Add arg DERIVEPARMS and call new function in +- fips mode or if DERIVEPARMS is given. +- * primegen.c (_gcry_derive_x931_prime, find_x931_prime): New. +- +-2008-11-19 Werner Koch +- +- * rsa.c (rsa_decrypt): Use gcry_create_nonce for blinding. +- (generate): Rename to generate_std. +- +-2008-11-05 Werner Koch +- +- * md.c (md_open): Use a switch to set the Bsize. +- (prepare_macpads): Fix long key case for SHA384 and SHA512. +- +- * cipher.c (gcry_cipher_handle): Add field EXTRASPEC. +- (gcry_cipher_open): Set it. +- (gcry_cipher_ctl): Add private control code to disable weak key +- detection and to return the current input block. +- * des.c (_tripledes_ctx): Add field FLAGS. +- (do_tripledes_set_extra_info): New. +- (_gcry_cipher_extraspec_tripledes): Add new function. +- (do_tripledes_setkey): Disable weak key detection. +- +-2008-10-24 Werner Koch +- +- * md.c (digest_table): Allow MD5 in fips mode. +- (md_register_default): Take special action for MD5. +- (md_enable, gcry_md_hash_buffer): Ditto. +- +-2008-09-30 Werner Koch +- +- * rijndael.c (do_setkey): Properly align "t" and "tk". +- (prepare_decryption): Properly align "w". Fixes bug #936. +- +-2008-09-18 Werner Koch +- +- * pubkey.c (gcry_pk_genkey): Parse domain parameter. +- (pubkey_generate): Add new arg DOMAIN and remove special case for +- DSA with qbits. +- * rsa.c (rsa_generate): Add dummy args QBITS, NAME and DOMAIN and +- rename to rsa_generate_ext. Change caller. +- (_gcry_rsa_generate, _gcry_rsa_check_secret_key) +- (_gcry_rsa_encrypt, _gcry_rsa_decrypt, _gcry_rsa_sign) +- (_gcry_rsa_verify, _gcry_rsa_get_nbits): Make static and remove +- _gcry_ prefix. +- (_gcry_pubkey_spec_rsa, _gcry_pubkey_extraspec_rsa): Adjust names. +- * dsa.c (dsa_generate_ext): New. +- (_gcry_dsa_generate): Replace code by a call to dsa_generate. +- (_gcry_dsa_check_secret_key, _gcry_dsa_sign, _gcry_dsa_verify) +- (_gcry_dsa_get_nbits): Make static and remove _gcry prefix. +- (_gcry_dsa_generate2): Remove. +- (_gcry_pubkey_spec_dsa): Adjust to name changes. +- (_gcry_pubkey_extraspec_rsa): Add dsa_generate_ext. +- +-2008-09-16 Werner Koch +- +- * ecc.c (run_selftests): Add arg EXTENDED. +- +-2008-09-12 Werner Koch +- +- * rsa.c (test_keys): Do a bad case signature check. +- * dsa.c (test_keys): Do a bad case check. +- +- * cipher.c (_gcry_cipher_selftest): Add arg EXTENDED and pass it +- to the called tests. +- * md.c (_gcry_md_selftest): Ditto. +- * pubkey.c (_gcry_pk_selftest): Ditto. +- * rijndael.c (run_selftests): Add arg EXTENDED and pass it to the +- called tests. +- (selftest_fips_128): Add arg EXTENDED and run only one test +- non-extended mode. +- (selftest_fips_192): Add dummy arg EXTENDED. +- (selftest_fips_256): Ditto. +- * hmac-tests.c (_gcry_hmac_selftest): Ditto. +- (run_selftests): Ditto. +- (selftests_sha1): Add arg EXTENDED and run only one test +- non-extended mode. +- (selftests_sha224, selftests_sha256): Ditto. +- (selftests_sha384, selftests_sha512): Ditto. +- * sha1.c (run_selftests): Add arg EXTENDED and pass it to the +- called test. +- (selftests_sha1): Add arg EXTENDED and run only one test +- non-extended mode. +- * sha256.c (run_selftests): Add arg EXTENDED and pass it to the +- called tests. +- (selftests_sha224): Add arg EXTENDED and run only one test +- non-extended mode. +- (selftests_sha256): Ditto. +- * sha512.c (run_selftests): Add arg EXTENDED and pass it to the +- called tests. +- (selftests_sha384): Add arg EXTENDED and run only one test +- non-extended mode. +- (selftests_sha512): Ditto. +- * des.c (run_selftests): Add arg EXTENDED and pass it to the +- called test. +- (selftest_fips): Add dummy arg EXTENDED. +- * rsa.c (run_selftests): Add dummy arg EXTENDED. +- +- * dsa.c (run_selftests): Add dummy arg EXTENDED. +- +- * rsa.c (extract_a_from_sexp): New. +- (selftest_encr_1024): Check that the ciphertext does not match the +- plaintext. +- (test_keys): Improve tests and return an error status. +- (generate): Return an error if test_keys fails. +- * dsa.c (test_keys): Add comments and return an error status. +- (generate): Return an error if test_keys failed. +- +-2008-09-11 Werner Koch +- +- * rsa.c (_gcry_rsa_decrypt): Return an error instead of calling +- BUG in case of a practically impossible condition. +- (sample_secret_key, sample_public_key): New. +- (selftest_sign_1024, selftest_encr_1024): New. +- (selftests_rsa): Implement tests. +- * dsa.c (sample_secret_key, sample_public_key): New. +- (selftest_sign_1024): New. +- (selftests_dsa): Implement tests. +- +-2008-09-09 Werner Koch +- +- * hmac-tests.c (selftests_sha1): Add tests. +- (selftests_sha224, selftests_sha384, selftests_sha512): Make up tests. +- +- * hash-common.c, hash-common.h: New. +- * sha1.c (selftests_sha1): Add 3 tests. +- * sha256.c (selftests_sha256, selftests_sha224): Ditto. +- * sha512.c (selftests_sha512, selftests_sha384): Ditto. +- +-2008-08-29 Werner Koch +- +- * pubkey.c (gcry_pk_get_keygrip): Remove the special case for RSA +- and check whether a custom computation function has been setup. +- * rsa.c (compute_keygrip): New. +- (_gcry_pubkey_extraspec_rsa): Setup this function. +- * ecc.c (compute_keygrip): New. +- (_gcry_pubkey_extraspec_ecdsa): Setup this function. +- +-2008-08-28 Werner Koch +- +- * cipher.c (cipher_decrypt, cipher_encrypt): Return an error if +- mode NONE is used. +- (gcry_cipher_open): Allow mode NONE only with a debug flag set and +- if not in FIPS mode. +- +-2008-08-26 Werner Koch +- +- * pubkey.c (pubkey_generate): Add arg KEYGEN_FLAGS. +- (gcry_pk_genkey): Implement new parameter "transient-key" and +- pass it as flags to pubkey_generate. +- (pubkey_generate): Make use of an ext_generate function. +- * rsa.c (generate): Add new arg transient_key and pass appropriate +- args to the prime generator. +- (_gcry_rsa_generate): Factor all code out to ... +- (rsa_generate): .. new func with extra arg KEYGEN_FLAGS. +- (_gcry_pubkey_extraspec_ecdsa): Setup rsa_generate. +- * primegen.c (_gcry_generate_secret_prime) +- (_gcry_generate_public_prime): Add new arg RANDOM_LEVEL. +- +-2008-08-21 Werner Koch +- +- * primegen.c (_gcry_generate_secret_prime) +- (_gcry_generate_public_prime): Use a constant macro for the random +- level. +- +-2008-08-19 Werner Koch +- +- * pubkey.c (sexp_elements_extract_ecc) [!USE_ECC]: Do not allow +- allow "curve" parameter. +- +-2008-08-15 Werner Koch +- +- * pubkey.c (_gcry_pk_selftest): New. +- * dsa.c (selftests_dsa, run_selftests): New. +- * rsa.c (selftests_rsa, run_selftests): New. +- * ecc.c (selftests_ecdsa, run_selftests): New. +- +- * md.c (_gcry_md_selftest): New. +- * sha1.c (run_selftests, selftests_sha1): New. +- * sha256.c (selftests_sha224, selftests_sha256, run_selftests): New. +- * sha512.c (selftests_sha384, selftests_sha512, run_selftests): New. +- +- * des.c (selftest): Remove static variable form selftest. +- (des_setkey): No on-the-fly self test in fips mode. +- (tripledes_set3keys): Ditto. +- +- * cipher.c (_gcry_cipher_setkey, _gcry_cipher_setiv): +- +- * dsa.c (generate): Bail out in fips mode if NBITS is less than 1024. +- * rsa.c (generate): Return an error code if the the requested size +- is less than 1024 and we are in fpis mode. +- (_gcry_rsa_generate): Take care of that error code. +- +- * ecc.c (generate_curve): In fips mode enable only NIST curves. +- +- * cipher.c (_gcry_cipher_selftest): New. +- +- * sha512.c (_gcry_digest_extraspec_sha384) +- (_gcry_digest_extraspec_sha512): New. +- * sha256.c (_gcry_digest_extraspec_sha224) +- (_gcry_digest_extraspec_sha256): New. +- * sha1.c (_gcry_digest_extraspec_sha1): New. +- * ecc.c (_gcry_pubkey_extraspec_ecdsa): New. +- * dsa.c (_gcry_pubkey_extraspec_dsa): New. +- * rsa.c (_gcry_pubkey_extraspec_rsa): New. +- * rijndael.c (_gcry_cipher_extraspec_aes) +- (_gcry_cipher_extraspec_aes192, _gcry_cipher_extraspec_aes256): New. +- * des.c (_gcry_cipher_extraspec_tripledes): New. +- +- * cipher.c (gcry_cipher_register): Rename to _gcry_cipher_register. +- Add arg EXTRASPEC. +- (dummy_extra_spec): New. +- (cipher_table_entry): Add extraspec field. +- * md.c (_gcry_md_register): Rename to _gcry_md_register. Add +- arg EXTRASPEC. +- (dummy_extra_spec): New. +- (digest_table_entry): Add extraspec field. +- * pubkey.c (gcry_pk_register): Rename to _gcry_pk_register. Add +- arg EXTRASPEC. +- (dummy_extra_spec): New. +- (pubkey_table_entry): Add extraspec field. +- +- * ac.c: Let most public functions return GPG_ERR_UNSUPPORTED in +- fips mode. +- +- * pubkey.c (pubkey_table_entry): Add field FIPS_ALLOWED and mark +- appropriate algorithms. +- (dummy_generate, dummy_check_secret_key, dummy_encrypt) +- (dummy_decrypt, dummy_sign, dummy_verify, dummy_get_nbits): Signal +- a fips error when used. +- (gcry_pk_register): In fips mode do not allow to register new +- algorithms. +- +- * md.c (digest_table): Add field FIPS_ALLOWED and mark appropriate +- algorithms. +- (md_register_default): In fips mode register only fips algorithms. +- (gcry_md_register): In fips mode do not allow to register new +- algorithms. +- (gcry_md_get): Signal a fips error if called. +- (gcry_md_hash_buffer): Do not allow rmd160 when not in fips mode. +- (md_start_debug): Disable in fips_mode. +- +- * md.c (gcry_md_register_default): Rename to .. +- (md_register_default): .. this. +- (md_digest): Remove this commented fucntion. +- * pubkey.c (gcry_pk_register_default): Rename to .. +- (pk_register_default): .. this. +- +- * cipher.c (cipher_table_entry): Add field FIPS_ALLOWED. +- (gcry_cipher_register_default): Register only fips approved +- algorithms. +- (gcry_cipher_register): Do not allow to register new ciphers. +- (cipher_setiv): Signal fips error. +- +- * cipher (gcry_cipher_register_default): Rename to .. +- (cipher_register_default): .. this. +- (REGISTER_DEFAULT_CIPHERS): Adjust for that change. +- +-2008-07-05 Werner Koch +- +- * random-daemon.c, random.h, rndhw.c, rndunix.c, rand-internal.h +- * random.c, rndegd.c, rndlinux.c, rndw32.c: Move to ../cipher. +- * Makefile.am: Remove random stuff. +- +-2008-06-24 Szakats Istvan (wk) +- +- * ac.c (_gcry_ac_key_destroy, _gcry_ac_key_pair_generate): Relase +- some more memory. +- +-2008-04-22 Werner Koch +- +- * rijndael.c (_gcry_aes_cfb_enc, _gcry_aes_cbc_enc) +- (_gcry_aes_cfb_dec, _gcry_aes_cbc_dec): Use Padlock if possible. +- +-2008-04-18 Werner Koch +- +- * sha1.c (transform_aligned): Remove. That is will obviosuly not +- work because we need a scratch working area and our internal API +- does not allow to modify the buffers. +- +- * rijndael.c: Factor tables out to .. +- * rijndael-tables.h: .. new. +- +- * ac.c (ac_data_extract): Make static. +- +- * camellia.h [HAVE_CONFIG_H]: Include config.h. +- +- * rndw32.c (registry_poll): Only print the performance data +- problem warning once. Suggested by Simon Josefsson. +- +-2008-03-19 Werner Koch +- +- * cipher.c (gcry_cipher_open) [USE_AES]: Init bulk encryption only +- if requested. Suggested by Dirk Stoecker. +- +-2008-03-18 Werner Koch +- +- * sha1.c: Include stdint.h. +- (transform): Add arg NBLOCKS so that we can work on more than one +- block and avoid updates of the chaining variables. Changed all +- callers to use 1. +- (sha1_write): Replace loop around transform. +- (transform_aligned) [WORDS_BIGENDIAN]: New. +- (TRANSFORM): New macro to replace all direct calls of transform. +- +-2008-03-17 Werner Koch +- +- * rijndael.c (_gcry_aes_cfb_dec): New. +- (do_encrypt): Factor code out to .. +- (do_encrypt_aligned): .. New. +- (_gcry_aes_cfb_enc, _gcry_aes_cfb_dec): Use new function. +- (do_decrypt): Factor code out to .. +- (do_decrypt_aligned): .. new. +- (_gcry_aes_cbc_enc, _gcry_aes_cbc_dec): New. +- * cipher.c (struct gcry_cipher_handle): Put field IV into new +- union U_IV to enforce proper alignment. Change all users. +- (do_cfb_decrypt): Optimize. +- (do_cbc_encrypt, do_cbc_decrypt): Optimize. +- +-2008-03-15 Werner Koch +- +- * rijndael.c (_gcry_aes_cfb_enc): New. +- * cipher.c (struct gcry_cipher_handle): Add field ALGO and BULK. +- (gcry_cipher_open): Set ALGO and BULK. +- (do_cfb_encrypt): Optimize. +- +-2008-02-18 Werner Koch +- +- * rsa.c (_gcry_rsa_verify) [IS_DEVELOPMENT_VERSION]: Print +- intermediate results. +- +-2008-01-08 Werner Koch +- +- * random.c (add_randomness): Do not just increment +- POOL_FILLED_COUNTER but update it by the actual amount of data. +- +-2007-12-13 Werner Koch +- +- * pubkey.c (sexp_data_to_mpi): Support SHA-224. +- +-2007-12-05 Werner Koch +- +- * rijndael.c (USE_PADLOCK): Depend on ENABLE_PADLOCK_SUPPORT. +- * rndhw.c (USE_PADLOCK): Ditto +- +- * rsa.c (secret): Fixed condition test for using CRT. Reported by +- Dean Scarff. Fixes bug#864. +- (_gcry_rsa_check_secret_key): Return an erro if the optional +- parameters are missing. +- * pubkey.c (sexp_elements_extract): Add arg ALGO_NAME. Changed all +- callers to pass NULL. Add hack to allow for optional RSA +- parameters. +- (sexp_to_key): Pass algo name to sexp_elements_extract. +- +-2007-12-03 Werner Koch +- +- * random.c (gcry_random_add_bytes): Implement it. +- * rand-internal.h (RANDOM_ORIGIN_EXTERNAL): New. +- +-2007-11-30 Werner Koch +- +- * rndhw.c: New. +- * rndlinux.c (_gcry_rndlinux_gather_random): Try to read 50% +- directly from the hwrng. +- * random.c (do_fast_random_poll): Also run the hw rng fast poll. +- (_gcry_random_dump_stats): Tell whether the hw rng failed. +- +-2007-11-29 Werner Koch +- +- * rijndael.c (USE_PADLOCK): Define new macro used for ia32. +- (RIJNDAEL_context) [USE_PADLOCK]: Add fields USE_PADLOCK and +- PADLOCK_KEY. +- (do_setkey) [USE_PADLOCK]: Enable padlock if available for 128 bit +- AES. +- (do_padlock) [USE_PADLOCK]: New. +- (rijndael_encrypt, rijndael_decrypt) [USE_PADLOCK]: Divert to +- do_padlock. +- * cipher.c (cipher_context_alignment_t): New. Use it in this +- module in place of PROPERLY_ALIGNED_TYPE. +- (NEED_16BYTE_ALIGNED_CONTEXT): Define macro for ia32. +- (struct gcry_cipher_handle): Add field HANDLE_OFFSET. +- (gcry_cipher_open): Take care of increased alignment requirements. +- (gcry_cipher_close): Ditto. +- +-2007-11-28 Werner Koch +- +- * sha256.c (asn224): Fixed wrong template. It happened due to a +- bug in RFC4880. SHA-224 is not in the stable version of libgcrypt +- so the consequences are limited to users of this devel version. +- +-2007-10-31 Werner Koch +- +- * ac.c (gcry_ac_data_new): Remove due to the visibility wrapper. +- (gcry_ac_data_destroy, gcry_ac_data_copy, gcry_ac_data_length) +- (gcry_ac_data_set, gcry_ac_data_get_name, gcry_ac_data_get_index) +- (gcry_ac_data_to_sexp, gcry_ac_data_from_sexp) +- (gcry_ac_data_clear, gcry_ac_io_init, gcry_ac_open) +- (gcry_ac_close, gcry_ac_key_init, gcry_ac_key_pair_generate) +- (gcry_ac_key_pair_extract, gcry_ac_key_destroy) +- (gcry_ac_key_pair_destroy, gcry_ac_key_data_get) +- (gcry_ac_key_test, gcry_ac_key_get_nbits, gcry_ac_key_get_grip) +- (gcry_ac_data_encrypt, gcry_ac_data_decrypt, gcry_ac_data_sign) +- (gcry_ac_data_verify, gcry_ac_data_encode, gcry_ac_data_decode) +- (gcry_ac_mpi_to_os, gcry_ac_mpi_to_os_alloc, gcry_ac_os_to_mpi) +- (gcry_ac_data_encrypt_scheme, gcry_ac_data_decrypt_scheme) +- (gcry_ac_data_sign_scheme, gcry_ac_data_verify_scheme) +- (gcry_ac_io_init_va): Ditto. +- (gcry_ac_id_to_name, gcry_ac_name_to_id): Remove as these +- deprecated functions are now implemented by visibility.c. +- +-2007-10-26 Werner Koch +- +- * rndw32.c: Disable debug flag. +- +-2007-10-25 Werner Koch +- +- * rndw32.c: Updated from current cryptlib snapshot and modified +- for our use. Removed support from pre NT systems. +- (slow_gatherer_windows95): Remove. +- (_gcry_rndw32_gather_random): Require an NT platform. +- (init_system_rng, read_system_rng, read_mbm_data): New. +- (slow_gatherer_windowsNT): Rename to ... +- (slow_gatherer): .. this. Read system RNG and MBM. +- (registry_poll): New with code factored out from slow_gatherer. +- +-2007-08-23 Werner Koch +- +- * random.c (pool_filled_counter): New. +- (add_randomness): Use it. +- +-2007-08-22 Werner Koch +- +- * rndw32.c, rndunix.c: Switched to LGPL. +- +-2007-05-30 Werner Koch +- +- * camellia.h, camellia.c: Replace by new LGPL version and adjusted +- camellia.h. +- +-2007-05-09 Marcus Brinkmann +- +- * ac.c (_gcry_ac_io_init_va, _gcry_ac_io_write, _gcry_ac_io_read): +- Adjust users of gcry_ac_io_t because union is not anonymous +- anymore. +- +-2007-05-02 Werner Koch +- +- * camellia-glue.c (camellia_setkey, camellia_encrypt) +- (camellia_decrypt): Recalculated used stack size in called +- functions. +- * camellia.h: Redefine external symbols. +- +-2007-05-02 David Shaw +- +- * Makefile.am, cipher.c: Add Camellia. +- +- * camellia-glue.c: New. The necessary glue to interface libgcrypt +- to the stock NTT Camellia distribution. +- +- * camellia.h, camellia.c: The stock NTT Camellia distribution +- (GPL). +- +-2007-04-30 David Shaw +- +- * cipher.c: Use #if instead of #ifdef as configure defines the +- USE_cipher defines as 0 for disabled. +- +-2007-04-30 Werner Koch +- +- * rndegd.c (_gcry_rndegd_set_socket_name): New. +- +-2007-04-30 Marcus Brinkmann +- +- * ecc.c (ec2os): Fix relocation of short numbers. +- +- * ecc.c (generate_key): Do not allocate D, which will be allocated +- by GEN_K. Remove G. Fix test if g_x, g_y resp. q_x, q_y are +- requested. +- (_gcry_ecc_generate): Release unneeded members of SK. +- * pubkey.c (sexp_to_key): Release NAME. +- +-2007-04-28 Marcus Brinkmann +- +- * ac.c (gcry_ac_mpi): Remove member NAME_PROVIDED. +- (ac_data_mpi_copy, _gcry_ac_data_set, _gcry_ac_data_get_name) +- (_gcry_ac_data_get_index, ac_data_construct): Adjust handling of +- NAME accordingly. +- +-2007-04-20 Werner Koch +- +- * ecc.c (domain_parms): Add standard brainpool curves. +- +-2007-04-18 Werner Koch +- +- * ecc.c (generate_curve): Implement alias mechanism. +- +- * pubkey.c (sexp_elements_extract_ecc): New. +- (sexp_to_key): Add special case for ecc. +- (sexp_to_key, sexp_to_sig, sexp_to_enc, gcry_pk_genkey): Replace +- name_terminated stuff by a call to _gcry_sexp_nth_string. +- (gcry_pk_get_keygrip): Ditto. +- +-2007-04-16 Werner Koch +- +- * ecc.c (_gcry_ecc_generate): Renamed DUMMY to CURVE and use it. +- +-2007-04-13 Marcus Brinkmann +- +- * ac.c (ac_data_construct): Cast const away to suppress compiler +- warning. +- +- * ecc.c (ecc_generate): Avoid compiler warning for unused argument +- DUMMY. +- (ecc_verify): Avoid compiler warning for unused arguments CMP and +- OPAQUEV. +- +-2007-04-06 Werner Koch +- +- * sha1.c (oid_spec_sha1): Add another oid from X9.62. +- +-2007-03-28 Werner Koch +- +- * pubkey.c (gcry_pk_genkey): Do not issue misc-key-info if it is +- empty. +- (gcry_pk_genkey): New parameter "curve". +- +- * ecc.c: Entirely rewritten with only a few traces of the old +- code left. +- (_gcry_ecc_generate): New. +- (generate_key) New arg NAME. +- (generate_curve): Ditto. Return actual number of NBITS. +- +-2007-03-26 Werner Koch +- +- * pubkey.c (gcry_pk_genkey): Increase size of SKEY array and add a +- runtime bounds check. +- +-2007-03-23 Werner Koch +- +- * ecc.c (ecc_ctx_init, ecc_ctx_free, ecc_mod, ecc_mulm): New. +- (duplicate_point, sum_points, escalar_mult): Don't use a +- copy of base->p. Replaced all mpi_mulm by ecc_mulm so that we can +- experiment with different algorithms. +- (generate_key, check_secret_key, sign, verify): Initialize a +- computation context for use by ecc_mulm. +- +-2007-03-22 Werner Koch +- +- * pubkey.c (pubkey_table): Initialize ECC. +- * Makefile.am (EXTRA_libcipher_la_SOURCES): Add ecc.c. +- * ecc.c: New. Heavily reformatted and changed for use in libgcrypt. +- (point_init): New. +- (escalar_mult): Make arg R the first arg to be similar to the mpi +- functions. +- (duplicate_point): Ditto +- (sum_points): Ditto +- (sign, verify): Remove unneeded copy operations. +- (sum_points): Removed memory leaks and optimized some compares. +- (verify): Simplified input check. +- +-2007-03-14 Werner Koch +- +- * random.c (MASK_LEVEL): Removed macro as it was used only at one +- place. Open coded it there. +- (gcry_randomize, _gcry_update_random_seed_file) +- (_gcry_fast_random_poll): Factor lock code out to .. +- (lock_pool, unlock_pool): .. new. +- (initialize): Look the pool while allocating. +- (read_random_source, do_fast_random_poll): Moved intialization to ... +- (initialize): .. here. +- (_gcry_enable_quick_random_gen): No more need for initialization. +- (is_initialized): Moved this global flag to .. +- (initialize): .. here and changed all users to unconditionally call +- initialize. +- (add_randomness): Remove initalization here. It simply can't +- happen. +- +- * random.c (enum random_origins): Moved to .. +- * rand-internal.h: .. here. +- * rndunix.c (_gcry_rndunix_gather_random): Use enum in prototype +- for ORIGIN and renamed REQUESTOR to ORIGIN. +- * rndegd.c (_gcry_rndegd_gather_random): Ditto. +- * rndlinux.c (_gcry_rndlinux_gather_random): Ditto. +- * rndw32.c (_gcry_rndw32_gather_random): Ditto. +- (_gcry_rndw32_gather_random_fast): Ditto. +- +-2007-03-13 Werner Koch +- +- * random.c (enum random_origins): New. +- (add_randomness): Renamed arg SOURCE to ORIGIN. +- (read_random_source): Renamed arg REQUESTOR to ORIGIN. +- (getfnc_gather_random): Removed static variable because this +- function is only called one and thus we don't need this +- optimization. +- (_gcry_quick_random_gen): Removed and replaced by.. +- (_gcry_enable_quick_random_gen): .. this. It is onlyu used to +- enable it and it does not make sense to disable it later. Changed +- the only one caller too. +- (get_random_bytes): Removed. +- (gcry_random_bytes, gcry_random_bytes_secure): Implement in terms +- of gcry_randomize. +- * random-daemon.c (_gcry_daemon_get_random_bytes): Removed. +- +-2007-02-23 Werner Koch +- +- * elgamal.c (generate): Removed unused variable TEMP. +- (test_keys): New arg NODIE. +- (generate_using_x, _gcry_elg_generate_using_x): New. +- * pubkey.c (pubkey_generate): New arg XVALUE and direct call to +- the new elgamal generate fucntion. +- (gcry_pk_genkey): Parse the new "xvalue" tag. +- +-2007-02-22 Werner Koch +- +- * pubkey.c (sexp_data_to_mpi): Handle dynamically allocated +- algorithms. Suggested by Neil Dunbar. Fixes bug#596. +- +- * rndw32.c (_gcry_rndw32_gather_random_fast): Make it return void. +- +- * cipher.c (gcry_cipher_algo_name): Simplified. +- +- * random.c: Use the daemon only if compiled with USE_RANDOM_DAEMON. +- +- * Makefile.am (libcipher_la_SOURCES): Build random-daemon support +- only if requested. +- +-2007-02-21 Werner Koch +- +- * random.c (rndpool, keypool): Make unsigned. +- (mix_pool): Change char* variables to unsigned char*. +- (gcry_randomize): Make arg BUFFER a void*. +- (gcry_create_nonce): Ditto. +- +- * rmd160.c (gcry_rmd160_mixblock): Make BUFFER a void*. +- (_gcry_rmd160_hash_buffer): Make OUTBUF and BUFFER void*. +- * sha1.c (_gcry_sha1_hash_buffer): Ditto. +- +- * cipher.c (gcry_cipher_encrypt, cry_cipher_decrypt): Change +- buffer args to void*. +- (gcry_cipher_register): Make ALGORITHM_ID a int *. +- +- * md.c (md_start_debug): Make SUFFIX a const char*. Use snprintf. +- (gcry_md_debug): New. +- (gcry_md_ctl): Changed arg BUFFER from unsigned char*. +- +- * md.c (md_write): Make INBUF a const void*. +- (gcry_md_write): Remove needless cast. +- * crc.c (crc32_write): Make INBUF a const void* +- (update_crc32, crc24rfc2440_write): Ditto. +- * sha512.c (sha512_write, transform): Ditto. +- * sha256.c (sha256_write, transform): Ditto. +- * rmd160.c (rmd160_write, transform): Ditto. +- * md5.c (md5_write, transform): Ditto. +- * md4.c (md4_write, transform): Ditto. +- * sha1.c (sha1_write, transform): Ditto. +- +- * tiger.c (tiger_write, transform): Ditto. +- * whirlpool.c (whirlpool_write, whirlpool_add, transform): Ditto. +- +- * elgamal.c (elg_names): Change to a const*. +- * dsa.c (dsa_names): Ditto. +- * rsa.c (rsa_names): Ditto. +- * pubkey.c (gcry_pk_lookup_func_name): Make ALIASES a const. +- +-2007-02-20 Werner Koch +- +- * rndlinux.c (open_device): Remove unsused arg MINOR. +- +-2007-01-30 Werner Koch +- +- * sha256.c (oid_spec_sha256): Add alias from pkcs#1. +- * sha512.c (oid_spec_sha512): Ditto. +- (oid_spec_sha384): Ditto. +- +-2006-12-18 Werner Koch +- +- * rndlinux.c (set_cloexec_flag): New. +- (open_device): Set close-on-exit flags. Suggested by Max +- Kellermann. Fixes Debian#403613. +- +- * Makefile.am (AM_CPPFLAGS, AM_CFLAGS): Splitted and merged +- Moritz' changes. +- (INCLUDES): Removed. +- +-2006-11-30 Werner Koch +- +- * serpent.c (byte_swap_32): Remove trailing semicolon. +- +-2006-11-15 Werner Koch +- +- * Makefile.am (INCLUDES): Include ../src/ +- +-2006-11-03 Werner Koch +- +- * random.c [HAVE_GETTIMEOFDAY]: Included sys/time.h and not +- sys/times.h. Reported by Rafaël Carré. +- +-2006-11-05 Moritz Schulte +- +- * Makefile.am (AM_CFLAGS): Added -I$(top_builddir)/src so that the +- new gcrypt.h is used, not the one installed in the system. +- +-2006-10-25 Werner Koch +- +- * primegen.c (prime_generate_internal): Tweaked use of secure +- memory and entropy use. Safe unused primes from the pool. Allocate +- at least a pool of 30. +- (save_pool_prime, get_pool_prime): New. +- +-2006-10-23 Werner Koch +- +- * ac.c (_gcry_ac_data_from_sexp): Reset sexp_tmp for failsafe +- means. Release sexp_cur if needed. Reported by Dirk Stoecker. +- +- * pubkey.c (pubkeys_registered_lock): Intialized it. It is not +- realy needed because this is a mere initialization to 0 anyway. +- Noted by Victor Stinner. +- +-2006-10-17 Werner Koch +- +- * dsa.c (_gcry_dsa_generate2): New. +- (generate): New arg QBITS. Add sanity checks for reasonable qbits +- and nbits. +- * pubkey.c (gcry_pk_genkey): Parse an qbits element. +- (pubkey_generate): New arg QBITS. Pass it to the DSA generation. +- +-2006-10-05 Werner Koch +- +- * md.c (gcry_md_algo_info) : Check that the algo is +- available. +- +-2006-10-04 David Shaw (wk) +- +- * tiger.c (round): Rename to tiger_round as gcc 4 has a built-in +- round function that this conflicts with. +- +-2006-09-11 Werner Koch +- +- * rndw32.c (slow_gatherer_windowsNT): While adding data use the +- size of the diskPerformance and not its address. Has been fixed in +- GnuPG more than a year ago. Noted by Lee Fisher. +- +-2006-08-30 Werner Koch +- +- * pubkey.c (sexp_data_to_mpi): Need to allow "ripemd160" here as +- this is the canonical name. +- +-2006-08-29 Hye-Shik Chang (wk) +- +- * seed.c: New. +- +-2006-08-03 Werner Koch +- +- * random-daemon.c (_gcry_daemon_initialize_basics): Don't +- initialize the socket. Remove arg SOCKETNAME. +- (connect_to_socket): Make sure that daemon is set to -1 on error. +- (call_daemon): Initialize the socket on the first call. +- (_gcry_daemon_randomize, _gcry_daemon_get_random_bytes) +- (_gcry_daemon_create_nonce): New arg SOCKETNAME. +- * random.c (initialize): Call new daemon initializator. +- (get_random_bytes, gcry_randomize, gcry_create_nonce): Pass socket +- name to daemon call and reset allow_daemon on failure. +- +-2006-07-26 Werner Koch +- +- * rmd160.c (_gcry_rmd160_mixblock): Add cast to transform call. +- +- * blowfish.c (selftest): Cast string to usnigned char*. +- +- * primegen.c (prime_generate_internal): Cast unsigned/char* +- mismatch in calling m_out_of_n. +- (is_prime): Changed COUNT to unsigned int *. +- +- * ac.c (_gcry_ac_data_copy): Initialize DATA_MPIS. +- +- * random.c (gcry_create_nonce): Update the pid after a fork. +- Reported by Uoti Urpala. +- +-2006-07-04 Marcus Brinkmann +- +- * sha512.c: Fix typo in copyright notice. +- +-2006-06-21 Werner Koch +- +- * rsa.c (_gcry_rsa_generate): Replace xcalloc by calloc. +- * pubkey.c (gcry_pk_encrypt, gcry_pk_sign): Ditto. +- (sexp_to_key, sexp_to_sig, sexp_to_enc, gcry_pk_encrypt) +- (gcry_pk_sign, gcry_pk_genkey, gcry_pk_get_keygrip): Ditto. +- * md.c (md_copy): Ditto. +- +-2006-04-22 Moritz Schulte +- +- * random-daemon.c (_gcry_daemon_initialize_basics): New argument: +- SOCKETNAME. Passing on to connect_to_socket() if non-NULL. +- (connect_to_socket, writen, readn, call_daemon): New functions. +- (_gcry_daemon_randomize, _gcry_daemon_get_random_bytes) +- (_gcry_daemon_create_nonce): Call call_daemon(). +- (RANDOM_DAEMON_SOCKET): New symbol. +- (daemon_socket): New static variable. +- +- * random.h (_gcry_daemon_initialize_basics): New parameter: +- SOCKETNAME. +- (_gcry_set_random_daemon_socket): New declaration. +- +- * random.c (initialize_basics): Pass DAEMON_SOCKET_NAME to +- _gcry_daemon_initialize_basics. +- (_gcry_set_random_daemon_socket): New function, setting +- DAEMON_SOCKET_NAME. +- +-2006-04-01 Moritz Schulte +- +- * ac.c (eme_pkcs_v1_5_encode): Use KEY_SIZE directly, no need to +- call gcry_ac_key_get_nbits. +- (eme_pkcs_v1_5_decode): Likewise. +- (ac_es_dencode_prepare_pkcs_v1_5): Fill options_em structure with +- key_size. +- (_gcry_ac_data_dump, gcry_ac_data_dump): New functions. +- (_gcry_ac_data_to_sexp, _gcry_ac_data_from_sexp): More or less +- rewritten; changed S-Expression format so that it matches the one +- used in pubkey.c. +- +-2006-03-15 Werner Koch +- +- * random-daemon.c: New. +- * random.c (_gcry_use_random_daemon): New. +- (get_random_bytes, gcry_randomize, gcry_create_nonce): Try +- diverting to the daemon functions. +- +-2006-03-14 Werner Koch +- +- * random.c (lock_seed_file): New. +- (read_seed_file, _gcry_update_random_seed_file): Use it. +- +- * random.c (gcry_create_nonce): Detect a fork and re-seed. +- (read_pool): Fixed the fork detection; it used to work only for +- multi-threaded processes. +- +-2006-03-12 Brad Hards (wk) +- +- * md.c (md_open): Use new variable macpads_Bsize instead of +- hardwiring the block size. Changed at all places. +- +-2006-03-10 Brad Hards (wk, patch 2005-04-22) +- +- * md.c, sha256.c: Add support for SHA-224. +- (sha224_init): New. +- +-2006-01-18 Brad Hards (wk 2006-03-07) +- +- * cipher.c (cipher_encrypt, cipher_decrypt, do_ofb_encrypt) +- (do_ofb_decrypt, gcry_cipher_open): Implement Output Feedback Mode. +- +-2005-11-02 Moritz Schulte +- +- * pubkey.c (gcry_pk_algo_name): Return "?" instead of NULL for +- unknown algorithm IDs. +- * cipher.c (cipher_algo_to_string): Likewise. +- +-2005-11-01 Moritz Schulte +- +- * pubkey.c (gcry_pk_algo_info): Don't forget to break after switch +- case. +- +-2005-09-19 Werner Koch +- +- * dsa.c (generate): Add preliminary support for 2 and 4 keys. +- Return an error code if the key size is not supported. +- (_gcry_dsa_generate): Return an error. +- +-2005-08-22 Werner Koch +- +- * primegen.c (check_prime): New arg RM_ROUNDS. +- (prime_generate_internal): Call it here with 5 rounds as used +- before. +- (gcry_prime_check): But here with 64 rounds. +- (is_prime): Make sure never to use less than 5 rounds. +- +-2005-04-16 Moritz Schulte +- +- * ac.c (_gcry_ac_init): New function. +- +-2005-04-12 Moritz Schulte +- +- * ac.c (_gcry_ac_io_write, _gcry_ac_io_read): Initialize err to +- make the compiler happy. +- Always use errno, now that gcry_malloc() is guaranteed to set +- errno on failure. +- (_gcry_ac_data_to_sexp): Don't forget to goto out after error in +- loop. +- (_gcry_ac_data_to_sexp): Remove unused variable: mpi_list; +- (_gcry_ac_data_to_sexp): Always deallocate sexp_buffer. +- (_gcry_ac_data_from_sexp): Don't forget to initialize data_set_new. +- (_gcry_ac_data_from_sexp): Handle special case, which is +- necessary, since gcry_sexp_nth() does not distinguish between +- "element does not exist" and "element is the empty list". +- (_gcry_ac_io_init_va): Use assert to make sure that mode and type +- are correct. +- Use gcry_error_t types where gcry_err_code_t types have been used +- before. +- +-2005-04-11 Moritz Schulte +- +- * ac.c (_gcry_ac_data_sign_scheme): Don't forget to initialize +- buffer. +- +- * whirlpool.c: New file. +- * md.c (digest_table): Add whirlpool. +- * Makefile.am (EXTRA_libcipher_la_SOURCES): Added: whirlpool.c. +- +-2005-03-30 Moritz Schulte +- +- * ac.c (_gcry_ac_data_from_sexp): Use length of SEXP_CUR, not +- length of SEXP; do not forget to set SEXP_TMP to NULL after it has +- been released. +- +- (struct gcry_ac_mpi): New member: name_provided. +- (_gcry_ac_data_set): Rename variable `name_final' to `name_cp'; +- remove const qualifier; change code to not cast away const +- qualifiers; use name_provided member as well. +- (_gcry_ac_data_set, _gcry_ac_data_get_name): Use name_provided +- member of named mpi structure. +- +- (gcry_ac_name_to_id): Do not forget to initialize err. +- (_gcry_ac_data_get_index): Do not forget to initialize mpi_return; +- use gcry_free() instead of free(); remove unnecessary cast; rename +- mpi_return and name_return to mpi_cp and name_cp; adjust code. +- (ac_data_mpi_copy): Do not cast away const qualifier. +- (ac_data_values_destroy): Likewise. +- (ac_data_construct): Likewise. +- +- (ac_data_mpi_copy): Initialize flags to GCRY_AC_FLAG_DEALLOC. +- (ac_data_extract): Use GCRY_AC_FLAG_DEALLOC instead of +- GCRY_AC_FLAG_COPY. +- +- (_gcry_ac_io_init_va, _gcry_ac_io_init, gcry_ac_io_init) +- (gcry_ac_io_init_va, _gcry_ac_io_write, _gcry_ac_io_read) +- (_gcry_ac_io_read_all, _gcry_ac_io_process): New functions. +- (gry_ac_em_dencode_t): Use gcry_ac_io_t in prototype instead of +- memroy strings directly; adjust encode/decode functions to use io +- objects. +- (emsa_pkcs_v1_5_encode_data_cb): New function ... +- (emsa_pkcs_v1_5_encode): ... use it here. +- (ac_data_dencode): Use io objects. +- (_gcry_ac_data_encode, _gcry_ac_data_decode, gcry_ac_data_encode) +- (gcry_ac_data_decode): Likewise. +- (_gcry_ac_data_encrypt_scheme, gcry_ac_data_encrypt_scheme) +- (_gcry_ac_data_decrypt_scheme, gcry_ac_data_decrypt_scheme) +- (_gcry_ac_data_sign_scheme, gcry_ac_data_sign_scheme) +- (_gcry_ac_data_verify_scheme, gcry_ac_data_verify_scheme): +- Likewise. +- +-2005-03-23 Werner Koch +- +- * rndw32.c (_gcry_rndw32_gather_random_fast): While adding data +- use the size of the object and not the one of its address. Bug +- reported by Sascha Kiefer. +- +-2005-03-19 Moritz Schulte +- +- * cipher.c (do_cbc_encrypt): Be careful to not overwrite data, +- which is to be used later on. This happend, in case CTS is +- enabled and OUTBUF is equal to INBUF. +- +-2005-02-25 Werner Koch +- +- * pubkey.c (gcry_pk_get_keygrip): Allow for shadowed-private-key. +- +-2005-02-13 Moritz Schulte +- +- * serpent.c: Updated from 1.2 branch: +- +- s/u32_t/u32/ and s/byte_t/byte/. Too match what we have always +- used and are using in all other files too +- (serpent_test): Moved prototype out of a fucntion. +- +-2005-02-07 Moritz Schulte +- +- * ac.c: Major parts rewritten. +- * pubkey.c (_gcry_pk_get_elements): New function. +- +-2004-12-09 Werner Koch +- +- * serpent.c (serpent_setkey): Moved prototype of serpent_test to +- outer scope. +- +-2004-09-11 Moritz Schulte +- +- * pubkey.c (pubkey_table): Added an alias entry for GCRY_PK_ELG_E. +- +-2004-08-23 Moritz Schulte +- +- * ac.c: Do not include . +- * rndegd.c: Likewise. +- * sha1.c: Likewise. +- * rndunix.c: Likewise. +- * rndlinux.c: Likewise. +- * rmd160.c: Likewise. +- * md5.c: Likewise. +- * md4.c: Likewise. +- * cipher.c: Likewise. +- * crc.c: Likewise. +- * blowfish.c: Likewise. +- +- * pubkey.c (dummy_generate, dummy_check_secret_key) +- (dummy_encrypt, dummy_decrypt, dummy_sign, dummy_verify): Return +- err code GPG_ERR_NOT_IMPLEMENTED instead of aborting through +- log_bug(). +- (dummy_get_nbits): Return 0 instead of aborting though log_bug(). +- +-2004-08-19 Werner Koch +- +- * pubkey.c (sexp_data_to_mpi): Changed the zero random byte +- substituting code to actually do clever things. Thanks to +- Matthias Urlichs for noting the implementation problem. +- +-2004-08-09 Moritz Schulte +- +- * pubkey.c (gcry_pk_sign): Fixed memory leak; fix provided by +- Modestas Vainius. +- +-2004-07-16 Werner Koch +- +- * rijndael.c (do_encrypt): Fix alignment problem. Bugs found by +- Matthias Urlichs. +- (do_decrypt): Ditto. +- (keySched, keySched2): Use 2 macros along with unions in the key +- schedule context. +- +-2004-07-14 Moritz Schulte +- +- * rsa.c (_gcry_rsa_decrypt): Don't forget to free "a". Thanks to +- Nikos Mavroyanopoulos. +- +-2004-05-09 Werner Koch +- +- * random.c (read_pool): Mix the PID in to better protect after a +- fork. +- +-2004-07-04 Moritz Schulte +- +- * serpent.c: Use "u32_t" instead of "unsigned long", do not +- declare S-Box variables as "register". Fixes failure on +- OpenBSD/sparc64, reported by Nikolay Sturm. +- +-2004-05-07 Werner Koch +- +- * random.c (initialize): Factored out some code to .. +- (initialize_basics): .. new function. +- (_gcry_random_initialize): Just call initialize_basics unless the +- new arg FULL is set to TRUE. +- (_gcry_fast_random_poll): Don't do anything unless the random +- system has been really initialized. +- +-2004-05-07 Moritz Schulte +- +- * ac.c (gcry_ac_open): Do not dereference NULL pointer. Reported +- by Umberto Salsi. +- +-2004-02-20 Werner Koch +- +- * primegen.c (check_prime): New args CB_FUNC and CB_ARG; call them +- at different stages. Pass these arguments through all callers. +- +-2004-02-06 Werner Koch +- +- * des.c: Add a new OID as used by pkcs#12. +- +- * rfc2268.c: New. Taken from libgcrypt. +- * cipher.c: Setup the rfc2268 algorithm. +- +-2004-01-25 Moritz Schulte +- +- * primegen.c (prime_generate_internal): Do not forget to free +- `q_factor'; fixed by Brieuc Jeunhomme. +- (prime_generate_internal): Do not forget to free `prime'. +- +-2004-01-14 Moritz Schulte +- +- * ac.c (gcry_ac_data_set): New argument: flags; slightly +- rewritten. +- (gcry_ac_data_get_name, gcry_ac_data_get_index): Likewise. +- (gcry_ac_key_pair_generate): New argument: misc_data; modified +- order of arguments. +- (gcry_ac_key_test): New argument: handle. +- (gcry_ac_key_get_nbits, gcry_ac_key_get_grip): Likewise. +- Use GCRY_AC_FLAG_NO_BLINDING instead of +- GCRY_AC_DATA_FLAG_NO_BLINDING. +- (gcry_ac_mpi): New member: flags. +- (gcry_ac_data_search, gcry_ac_data_add): Removed functions. +- +-2003-12-22 Werner Koch +- +- * primegen.c (is_prime): Release A2. +- +-2003-12-19 Werner Koch +- +- * md.c: Moved a couple of functions down below the data structure +- definitions. +- (struct gcry_md_context): New field ACTUAL_HANDLE_SIZE. +- (md_open): Set it here. +- (strcut gcry_md_list): New field ACTUAL_STRUCT_SIZE. +- (md_enable): Set it here. +- (md_close): Wipe the context memory. +- secure memory. +- * cipher.c (struct gcry_cipher_handle): New field ACTUAL_HANDLE_SIZE. +- (gcry_cipher_open): Set it here. +- (gcry_cipher_close): Use it to always wipe out the handle data. +- +- * ac.c (gcry_ac_open): Make sure HANDLE gets initialized even when +- the function is not successful. +- (gcry_ac_close): Allow a NULL handle. +- (gcry_ac_key_destroy, gcry_ac_key_pair_destroy): Ditto. +- (gcry_ac_key_get_grip): Return INV_OBJ on error. +- +- * primegen.c (prime_generate_internal): Fixed error code for +- failed malloc. Replaced the !err if chain by gotos. +- (gcry_prime_group_generator): Remove the extra sanity check. +- +- * md.c: Minor code and comment cleanups. +- +-2003-12-16 Werner Koch +- +- * primegen.c (gen_prime): Doc fix. Thanks to Newton Hammet. +- +-2003-12-11 Werner Koch +- +- * rndunix.c (slow_poll): Don't use #warning but #error. +- +- * rndegd.c: Changed indentation. +- (my_make_filename): Removd the var_arg cruft becuase we +- don't need it here. Changed caller. +- +- * rndlinux.c: Changed indentation. +- (open_device): Remove the superfluous stat call and clarify +- comment. +- +- * rsa.c: Changed indentation. +- (secret): Use the standard algorithm if p, q and u are not +- available. +- (rsa_blind, rsa_unblind): Renamed from _gcry_rsa_blind, +- _gcry_rsa_unblind and moved more to the top. +- +- * md4.c: Changed indentation. Removed unnecessary casts. +- * md5.c, rmd160.c, sha1.c, tiger.c: Ditto. +- * rijndael.c, twofish.c: Ditto. +- * serpent.c: Removed unnecessary casts. +- * sha256.c, sha512.c: Ditto. +- +-2003-12-09 Werner Koch +- +- * dsa.c: Unified indentation style. +- * elgamal.c: Ditto. +- * des.c (des_key_schedule): Code beautifications. +- * blowfish.c: Changed indentation style. +- * cast5.c (do_cast_setkey): Ditto. +- +- * pubkey.c (gcry_pk_encrypt): Replaced the chain of if(!err) tests +- by straightforward gotos. Other cleanups. +- (gcry_pk_decrypt): Ditto. +- (gcry_pk_sign): Ditto. +- (gcry_pk_verify): Ditto. +- (gcry_pk_genkey): Ditto. Use strtoul instead of strtol. +- (gcry_pk_ctl): Use GPG_ERR_INV_ARG to indicate bad arguments. +- +-2003-12-07 Werner Koch +- +- * pubkey.c (gcry_pk_register_default): Undef the helper macro. +- (gcry_pk_map_name): Allow NULL for string. +- (sexp_to_key): Use memcpy and not strncpy. Use gcry_free and not +- free. +- (sexp_to_sig): Ditto. +- (sexp_to_enc): Ditto. Replaced the chain of if(!err) tests by +- straightforward gotos. +- +-2003-12-05 Werner Koch +- +- * cipher.c: Documentation cleanups. +- (gcry_cipher_mode_from_oid): Allow NULL for STRING. +- +-2003-12-03 Werner Koch +- +- * elgamal.c (sign, do_encrypt, gen_k): Make sure that a small K is +- only used for encryption. +- +-2003-11-18 Werner Koch +- +- * random.h (rndw32_set_dll_name): Removed unused prototype. +- +- * Makefile.am (EXTRA_DIST): Added Manifest. +- +-2003-11-11 Werner Koch +- +- * Manifest: New. +- +-2003-11-04 Werner Koch +- +- * md.c (gcry_md_hash_buffer): Use shortcut for SHA1 +- * sha1.c (_gcry_sha1_hash_buffer): New. +- +- * random.c: Reformatted most functions. +- (mix_pool): Moved the failsafe_digest from global +- scope to here. +- (do_fast_random_poll): Use the generic fucntions even if a fast +- gathering function has been used. +- (read_pool): Detect a fork and retry. +- (gcry_randomize, get_random_bytes): Don't distinguish anymore +- between weak and strong random. +- (gcry_create_nonce): New. +- +-2003-10-31 Werner Koch +- +- * rndw32.c (slow_gatherer_windowsNT): Use a plain buffer for the +- disk performance values and not the W32 API structure. +- +- * dsa.c (verify): s/exp/ex/ due to shadowing of a builtin. +- * elgamal.c (verify): Ditto. +- +- * ac.c (gcry_ac_data_get_index): s/index/idx/ +- (gcry_ac_data_copy_internal): Remove the cast in _gcry_malloc. +- (gcry_ac_data_add): Must use gcry_realloc instead of realloc. +- * pubkey.c (sexp_elements_extract): s/index/idx/ as tribute to the +- forehackers. +- (gcry_pk_encrypt): Removed shadowed definition of I. Reordered +- arguments to malloc for clarity. +- (gcry_pk_sign, gcry_pk_genkey): Ditto. +- * primegen.c (prime_generate_internal): s/random/randomlevel/. +- +-2003-10-27 Moritz Schulte +- +- * pubkey.c (gcry_pk_encrypt): Don't forget to deallocate pkey. +- +-2003-10-27 Werner Koch +- +- * random.c (gcry_random_add_bytes): Return if buflen is zero to +- avoid gcc warning about unsed parameter. +- (MASK_LEVEL): Simplified; does now work for signed and unsigned +- w/o warnings. +- +- * md.c (md_start_debug): Removed the const from SUFFIX, because +- this function is called from the control fucntion which does not +- require const. +- +- Prefixed all (pubkey,digest,cipher}_spec_* globale variables with +- _gcry_. +- +- * ac.c (ac_key_identifiers): Made static. +- +- * random.c (getfnc_gather_random,getfnc_fast_random_poll): Move +- prototypes to .. +- * rand-internal.h: .. here +- * random.c (getfnc_gather_random): Include rndw32 gatherer. +- * rndunix.c, rndw32.c, rndegd.c: Include them here. +- * rndlinux.c (_gcry_rndlinux_gather_random): Prepend the _gcry_ +- prefix. Changed all callers. +- * rndegd.c (_gcry_rndegd_gather_random): Likewise. +- (_gcry_rndegd_connect_socket): Likewise. +- * rndunix.c (_gcry_rndunix_gather_random): Likewise. +- (waitpid): Made static. +- * rndw32.c: Removed the old and unused winseed.dll cruft. +- (_gcry_rndw32_gather_random_fast): Renamed from +- gather_random_fast. +- (_gcry_rndw32_gather_random): Renamed from gather_random. Note, +- that the changes 2003-04-08 somehow got lost. +- +- * sha512.c (sha512_init, sha384_init): Made static. +- +- * cipher.c (do_ctr_decrypt): Removed "return" from this void +- function. +- +-2003-10-24 Moritz Schulte +- +- * serpent.c: Fix an issue on big-endian systems. +- +- * rndw32.c: Removed IS_MODULE -cruft. +- * rndlinux.c (rndlinux_gather_random): Likewise. +- +-2003-10-10 Werner Koch +- +- * primegen.c (gen_prime): Bail out if NBITS is less than 16. +- (prime_generate_internal): Initialize prime variable to suppress +- compiler warning. Check pbits, initialize qbits when passed as +- zero. +- +- * primegen.c (prime_generate_internal): New arg +- ALL_FACTORS. Changed all callers. +- (gcry_prime_generate): Make the factors arg optional. Request +- all_factors. Make sure PRIME is set to NULL even on error. +- (gcry_prime_group_generator): New. +- (gcry_prime_release_factors): New. +- +-2003-10-06 Werner Koch +- +- * primegen.c (gen_prime): Assert that NBITS is never zero, it +- would cause a segv. +- +-2003-09-28 Moritz Schulte +- +- * ac.c: Include "cipher.h". +- +-2003-09-27 Moritz Schulte +- +- * rndegd.c (do_read): Return nread instead of nbytes; thanks to +- Michael Caerwyn. +- +-2003-09-04 Werner Koch +- +- * pubkey.c (_gcry_pk_aliased_algo_name): New. +- * ac.c (gcry_ac_open): Use it here. +- +- * Makefile.am (EXTRA_libcipher_la_SOURCES): Add serpent.c +- +-2003-09-02 Moritz Schulte +- +- * primegen.c (gcry_prime_check, gcry_prime_generate): New +- functions. +- (prime_generate_internal): New function, based on +- _gcry_generate_elg_prime. +- (_gcry_generate_elg_prime): Rewritten as a wrapper for +- prime_generate_internal. +- +-2003-08-28 Werner Koch +- +- * pubkey.c (gcry_pk_encrypt): Don't include the flags list in the +- return value. This does not make sense and breaks any programs +- parsing the output strictly (e.g. current gpgsm). +- (gcry_pk_encrypt): If aliases for the algorithm name exists, take +- the first one instead of the regular name to adhere to SPKI +- conventions. +- (gcry_pk_genkey): Ditto. +- (gcry_pk_sign): Ditto. Removed unused KEY_ALGO_NAME. +- +-2003-08-19 Moritz Schulte +- +- * cipher.c: Add support for Serpent +- * serpent.c: New file. +- +-2003-08-10 Moritz Schulte +- +- * rsa.c (_gcry_rsa_blind, _gcry_rsa_unblind): Declare static. +- +-2003-08-09 Timo Schulz +- +- * random.c (getfnc_gather_random): Don't check NAME_OF_DEV_RANDOM +- two times, but also the NAME_OF_DEV_URANDOM device. +- +-2003-08-08 Moritz Schulte +- +- * pubkey.c (sexp_to_enc): Fixed extraction of S-Expression: do not +- fail if no `flags' sub S-Expression is found. +- +-2003-07-27 Werner Koch +- +- * md.c (gcry_md_lookup_func_oid): Allow for empty OID lists. +- +-2003-07-23 Moritz Schulte +- +- * ac.c (gcry_ac_data_construct): New argument: include_flags, only +- include `flags' S-expression, if include_flags is true. Adjust +- callers. Thanks for triggering a bug caused by `flags' +- sub-S-expression where they are not expected to Ralf Schneider. +- +-2003-07-21 Moritz Schulte +- +- * pubkey.c (gcry_pk_lookup_func_name): Use new member name +- `aliases' instead of `sexp_names'. +- +- * ac.c (gcry_ac_key_data_get): New function. +- +- * cipher.c (gcry_cipher_lookup_func_name): Fix return value. +- +-2003-07-20 Moritz Schulte +- +- * blowfish.c: Adjusted for new gcry_cipher_spec_t structure. +- * cast5.c: Likewise. +- * twofish.c: Likewise. +- * arcfour.c: Likewise. +- * rijndael.c (rijndael_oids, rijndael192_oids, rijndael256_oids): +- New variables, adjust for new gcry_cipher_spec_t structure. +- * des.c (oids_tripledes): New variable, adjust for new +- gcry_cipher_spec_t structure. +- +- * md.c (oid_table): Removed. +- +- * tiger.c (oid_spec_tiger): New variable. +- (digest_spec_tiger): Adjusted for new gry_md_spec_t structure. +- +- * sha512.c (oid_spec_sha512): New variable. +- (digest_spec_sha512): Adjusted for new gry_md_spec_t structure. +- +- * sha512.c (oid_spec_sha384): New variable. +- (digest_spec_sha384): Adjusted for new gry_md_spec_t structure. +- +- * sha256.c (oid_spec_sha256): New variable. +- (digest_spec_sha256): Adjusted for new gry_md_spec_t structure. +- +- * sha1.c (oid_spec_sha1): New variable. +- (digest_spec_sha1): Adjusted for new gry_md_spec_t structure. +- +- * rmd160.c (oid_spec_rmd160): New variable. +- (digest_spec_rnd160): Adjusted for new gry_md_spec_t structure. +- +- * md5.c (oid_spec_md5): New variable. +- (digest_spec_md5): Adjusted for new gry_md_spec_t structure. +- +- * md4.c (oid_spec_md4): New variable. +- (digest_spec_md4): Adjusted for new gry_md_spec_t structure. +- +- * crc.c (digest_spec_crc32, digest_spec_crc32_rfc1510, +- digest_spec_crc32_rfc2440): Adjusted for new gry_md_spec_t +- structure. +- +-2003-07-19 Moritz Schulte +- +- * md.c (gcry_md_lookup_func_oid): New function. +- (search_oid): New function, copied from cipher.c. +- (gcry_md_map_name): Adjust for new search_oid_interface. +- +- * cipher.c (oid_table): Removed table. +- (gcry_cipher_lookup_func_oid): New function. +- (search_oid): Rewritten to use the module functions. +- (gcry_cipher_map_name): Adjust for new search_oid interface. +- (gcry_cipher_mode_from_oid): Likewise. +- +-2003-07-18 Werner Koch +- +- * md.c (gcry_md_hash_buffer): Convert ERR to gpg_error_t in +- gpg_strerror. +- +-2003-07-14 Moritz Schulte +- +- * cipher.c (gcry_cipher_lookup_func_name): Also check the cipher +- name aliases, not just the primary name. +- (gcry_cipher_map_name): Remove kludge for aliasing Rijndael to +- AES. +- +- * arcfour.c, blowfish.c, cast5.c, des.c, twofish.c: Adjust cipher +- specification structures. +- +- * rijndael.c (rijndael_names, rijndael192_names, +- rijndael256_names): New variables, use them in the cipher +- specifications. +- +- * rmd160test.c: Removed file. +- +- * ac.c, arcfour.c, blowfish.c, cast5.c, cipher.c, des.c, dsa.c, +- elgamal.c, md.c, pubkey.c, random.c, rijndael.c, rsa.c, twofish.c: +- Used gcry_err* wrappers for libgpg symbols. +- +- * primegen.c (gen_prime): Correct the order arguments to +- extra_check. +- +-2003-07-12 Moritz Schulte +- +- * ac.c: Replaced all public occurences of gpg_error_t with +- gcry_error_t. +- * cipher.c: Likewise. +- * md.c: Likewise. +- * pubkey.c: Likewise. +- * random.c: Likewise. +- +- * cipher.c: Added support for TWOFISH128. +- +-2003-07-08 Moritz Schulte +- +- * ac.c (gcry_ac_data_copy_internal): New function, based on +- gcry_ac_data_copy. +- (gcry_ac_data_copy): Made public, use gcry_ac_data_copy_internal. +- (gcry_ac_key_init): Use gcry_ac_data_copy_internal. +- +-2003-07-07 Moritz Schulte +- +- * ac.c (gcry_ac_data_set): Only release old MPI value if it is +- different from the new value. Bug reported by Simon Josefsson +- . +- +- * pubkey.c (gcry_pk_list): New function. +- * md.c (gcry_md_list): New function. +- +- * ac.c (gcry_ac_key_pair_generate): Fix calculation of format +- string size. +- +-2003-07-05 Moritz Schulte +- +- * md.c: Named struct of digest_table `digest_table_entry'. +- (digest_table_entry): New member: algorithm; filled in. +- (digest_table_entry): Removed unused member: flags. +- (gcry_md_register): New argument: algorithm_id, filled in. +- (gcry_md_register_default): Used algorithm ID from module +- structure. +- (gcry_md_map_name): Likewise. +- (md_enable): Likewise. +- (md_read): Likewise. +- (gcry_md_info): Likewise. +- +- * pubkey.c: Named truct for pubkey_table `pubkey_table_entry'. +- (pubkey_table_entry): New member: algorithm; filled in. +- (gcry_pk_register_default): Used algorithm ID from pubkey_table. +- (gcry_pk_register): New argument: algorithm_id, filled in. +- (gcry_pk_map_name): Used algorithm ID from module structure. +- (gcry_pk_decrypt): Likewise. +- (gcry_pk_encrypt): Likewise. +- (gcry_pk_verify): Likewise. +- (gcry_pk_sign): Likewise. +- (gcry_pk_testkey): Likewise. +- (gcry_pk_genkey): Likewise. +- (gcry_pk_get_nbits): Likewise. +- (sexp_to_key): Removed unused variable: algo. +- (sexp_to_sig): Likewise. +- +- * cipher.c: Named struct for cipher_table `cipher_table_entry'. +- (cipher_table_entry): New member: algorithm; filled in. +- (gcry_cipher_register_default): Used algorithm ID from +- cipher_table. +- (gcry_cipher_register): New argument: algorithm_id, filled in. +- (gcry_cipher_map_name): Used algorithm ID from module structure. +- +- * arcfour.c (cipher_spec_arcfour): Removed algorithm ID. +- * blowfish.c (cipher_spec_blowfish): Likewise. +- * cast5.c (cipher_spec_cast5): Likewise. +- * crc.c (digest_spec_crc32): Likewise. +- * crc.c (digest_spec_crc32_rfc1510): Likewise. +- * crc.c (digest_spec_crc32_rfc2440): Likewise. +- * des.c (cipher_spec_des): Likewise. +- * des.c (cipher_spec_tripledes): Likewise. +- * dsa.c (pubkey_spec_dsa): Likewise. +- * elgamal.c (pubkey_spec_elg): Likewise. +- * md4.c (digest_spec_md4): Likewise. +- * md5.c (digest_spec_md5): Likewise. +- * aes.c (cipher_spec_aes): Likewise. +- * aes.c (cipher_spec_aes192): Likewise. +- * aes.c (cipher_spec_aes256): Likewise. +- * rsa.c (pubkey_spec_rsa): Likewise. +- * sha1.c (digest_spec_sha1): Likewise. +- * sha256.c (digest_spec_sha256): Likewise. +- * sha512.c (digest_spec_sha512): Likewise. +- * tiger.c (digest_spec_tiger): Likewise. +- * twofish.c (cipher_spec_twofish): Likewise. +- * twofish.c (cipher_spec_twofish128): Likewise. +- +- * Makefile.am (EXTRA_libcipher_la_SOURCES): Fix list of source +- files; reported by Simon Josefsson . +- +- * pubkey.c: Replaced all occurences of `id' with `algorithm', +- since `id' is a keyword in obj-c. +- * md.c: Likewise. +- * cipher.c: Likewise. +- +- * crc.c, md4.c, md5.c, rmd160.c, sha1.c, sha256.c, tiger.c: +- Replaced all occurences of gcry_digest_spec_t with gcry_md_spec_t. +- +- * dsa.c, rsa.c, elgamal.c: Replaced all occurencens of +- gcry_pubkey_spec_t with gcry_pk_spec_t. +- +- * md.c: Replaced all occurences of gcry_digest_spec_t with +- gcry_md_spec_t. +- (gcry_digest_register_default): Renamed to ... +- (gcry_md_register_default): ... this; adjusted callers. +- (gcry_digest_lookup_func_name): Renamed to ... +- (gcry_md_lookup_func_name): ... this; adjusted callers. +- (gcry_digest_lookup_name): Renamed to ... +- (gcry_md_lookup_name): ... this; adjusted callers. +- (gcry_digest_register): Renamed to ... +- (gcry_md_register): ... this. +- (gcry_digest_unregister): Renamed to ... +- (gcry_md_unregister): ... this. +- +- * pubkey.c (gcry_pubkey_register): Renamed to ... +- (gcry_pk_register): ... this. +- (gcry_pubkey_unregister): Renamed to ... +- (gcry_pk_unregister): ... this. +- Replaced all occurences of gcry_pubkey_spec_t with gcry_pk_spec_t. +- (gcry_pubkey_register_default): Renamed to ... +- (gcry_pk_register_default): ... this; adjusted callers. +- (gcry_pubkey_lookup_func_name): Renamed to ... +- (gcry_pk_lookup_func_name): ... this; adjusted callers. +- (gcry_pubkey_lookup_name): Renamed to ... +- (gcry_pk_lookup_name): ... this; adjusted callers. +- +- * md.c (gcry_md_hash_buffer): Fix error checking. Thanks to Simon +- Josefsson . +- +-2003-07-04 Moritz Schulte +- +- * cipher.c (gcry_cipher_list): New function. +- +-2003-07-01 Moritz Schulte +- +- * pubkey.c (sexp_to_sig): Accept a `flags' S-expression to be more +- consistent with sexp_to_enc. +- +-2003-06-30 Moritz Schulte +- +- * Makefile.am (libcipher_la_SOURCES): Added: ac.c. +- +- * pubkey.c (_gcry_pk_module_lookup): New function. +- (_gcry_pk_module_release): New function. +- +-2003-06-29 Moritz Schulte +- +- * ac.c: New file. +- +-2003-06-26 Werner Koch +- +- * md.c (gcry_md_hash_buffer): Trigger BUG correcly with new API. +- +-2003-06-19 Werner Koch +- +- * md.c (gcry_md_is_enabled): Fixed. +- +-2003-06-18 Werner Koch +- +- * cipher.c (gcry_cipher_get_algo_keylen): New. +- (gcry_cipher_get_algo_blklen): New. +- +-2003-06-18 Moritz Schulte +- +- * arcfour.c, cipher.c, blowfish.c, md.c, cast5.c, pubkey.c, crc.c, +- des.c, dsa.c, elgamal.c, md4.c, md5.c, random.c, rijndael.c, +- rmd160.c, rsa.c, sha1.c, sha256.c, sha512.c, tiger.c, twofish.c: +- Replaced older types GcryDigestSpec, GcryCipherSpec and +- GcryPubkeySpec with newer types: gcry_digest_spec_t, +- gcry_cipher_spec_t and gcry_pubkey_spec_t. +- +- * md.c (gcry_digest_id_new): Removed function. +- (gcry_digest_register): Removed code for generating a new module +- ID. +- +- * pubkey.c (gcry_pubkey_id_new): Removed function. +- (gcry_pubkey_register): Removed code for generating a new module +- ID. +- +- * cipher.c, md.c, pubkey.c: Replace old type GcryModule with newer +- one: gcry_module_t. +- (gcry_cipher_id_new): Removed function. +- (gcry_cipher_register): Removed code for generating a new module +- ID. +- +- * cipher.c (gcry_cipher_register): Adjust call to +- _gcry_module_add. +- (gcry_cipher_register_default): Likewise. +- * pubkey.c (gcry_pubkey_register_default): Likewise. +- (gcry_pubkey_register): Likewise. +- * md.c (gcry_digest_register_default): Likewise. +- (gcry_digest_register): Likewise. +- +- * md.c (gcry_digest_lookup_func_id): Removed function. +- (gcry_digest_lookup_id): Likewise. +- (gcry_digest_id_new): Use _gcry_module_lookup_id instead of +- gcry_digest_lookup_id. +- (digest_algo_to_string): Likewise. +- (check_digest_algo): Likewise. +- (md_enable): Likewise. +- (md_digest_length): Likewise. +- (md_asn_oid): Likewise. +- +- * pubkey.c (gcry_pubkey_lookup_id): Removed function. +- (gcry_pubkey_lookup_func_id): Likewise. +- (gcry_pubkey_id_new): Use _gcry_module_lookup_id instead of +- gcry_pubkey_id_new. +- (gcry_pk_algo_name): Likewise. +- (disable_pubkey_algo): Likewise. +- (check_pubkey_algo): Likewise. +- (pubkey_get_npkey): Likewise. +- (pubkey_get_nskey): Likewise. +- (pubkey_get_nsig): Likewise. +- (pubkey_get_nenc): Likewise. +- (pubkey_generate): Likewise. +- (pubkey_check_secret_key): Likewise. +- (pubkey_encrypt): Likewise. +- (pubkey_decrypt): Likewise. +- (pubkey_sign): Likewise. +- (pubkey_verify): Likewise. +- (gcry_pk_algo_info): Likewise. +- +- * cipher.c (gcry_cipher_lookup_func_id): Removed function. +- (gcry_cipher_lookup_id): Likewise. +- (cipher_algo_to_string): use _gcry_module_lookup_id instead of +- gcry_cipher_lookup_id. +- (disable_cipher_algo): Likewise. +- (check_cipher_algo): Likewise. +- (cipher_get_blocksize): Likewise. +- (gcry_cipher_open): Likewise. +- (gcry_cipher_id_new): Likewise. +- +-2003-06-17 Moritz Schulte +- +- * Makefile.am (GCRYPT_MODULES): Set to @GCRYPT_CIPHERS@, +- @GCRYPT_PUBKEY_CIPHERS@, @GCRYPT_DIGESTS@ and @GCRYPT_RANDOM@. +- (libcipher_la_DEPENDENCIES): Set to $(GCRYPT_MODULES). +- (libcipher_la_LIBADD): Likewise. +- (AM_CFLAGS): Added: @GPG_ERROR_CFLAGS@. +- (EXTRA_libcipher_la_SOURCES): Added all conditional sources. +- +- * md.c (md_open): Use _gcry_fast_random_poll instead of +- fast_random_poll. +- * cipher.c (gcry_cipher_open): Likewise. +- +- * random.h (fast_random_poll): Removed macro. +- +- * blowfish.c, md4.c, md5.c, rmd160.c, sha1.c, sha256.c, sha512.c, +- tiger.c: Use Autoconf's WORDS_BIGENDIAN instead of our own +- BIG_ENDIAN_HOST. +- +-2003-06-16 Moritz Schulte +- +- * random.c (getfnc_gather_random): Do not special-case +- USE_ALL_RANDOM_MODULES, make it the default. +- +- * dsa.c: Replace last occurences of old type names with newer +- names (i.e. replace MPI with gcry_mpi_t). +- * elgamal.c: Likewise. +- * primegen.c: Likewise. +- * pubkey.c: Likewise. +- * rsa.c: Likewise. +- +-2003-06-14 Moritz Schulte +- +- * des.c (des_setkey): Add selftest check. +- (tripledes_set3keys): Likewise. +- (do_tripledes_setkey): Remove selftest check. +- (do_des_setkey): Likewise. +- +-2003-06-11 Moritz Schulte +- +- * md.c (_gcry_md_init): New function. +- * cipher.c (_gcry_cipher_init): New function. +- * pubkey.c (_gcry_pk_init): New function. +- +-2003-06-13 Werner Koch +- +- * md.c (gcry_md_get_algo): Reverted to old API. This is a +- convenience function anyway and error checking is not approriate. +- (gcry_md_is_secure): New. +- (gcry_md_is_enabled): New. +- +-2003-06-12 Werner Koch +- +- * cipher.c (gcry_cipher_open): Make sure HANDLE is set to NULL on +- error. +- +-2003-06-11 Werner Koch +- +- * md.c (gcry_md_open): Make sure H receives either NULL or an +- valid handle. +- (gcry_md_copy): Swapped arguments so that it is more in lione with +- md_open and most other API fucntions like memcpy (destination +- comes first). Make sure HANDLE is set to NULL on error. +- +- * rijndael.c (do_encrypt): Hack to force correct alignment. It +- seems not to be not sufficient, though. We should rework this +- fucntions and remove all these ugly casts. Let the compiler +- optimize or have an assembler implementation. +- +-2003-06-09 Moritz Schulte +- +- * Makefile.am: Removed rules serpent, since that is not commited +- yet. +- +-2003-06-08 Moritz Schulte +- +- * pubkey.c (gcry_pk_encrypt): Improve calculation for size of the +- format string. +- +-2003-06-07 Moritz Schulte +- +- * arcfour.c, bithelp.h, blowfish.c, cast5.c, cipher.c, crc.c, +- des.c, dsa.c, elgamal.c, md4.c, md5.c, md.c, primegen.c, pubkey.c, +- rand-internal.h, random.c, random.h, rijndael.c, rmd160.c, +- rmd160test.c, rmd.h, rndeged.c, rndlinux.c, rndunix.c, rndw32.c, +- rsa.c, sha1.c, sha256.c, sha512.c, tiger.c, twofish.c: Edited all +- preprocessor instructions to remove whitespace before the '#'. +- This is not required by C89, but there are some compilers out +- there that don't like it. Replaced any occurence of the now +- deprecated type names with the new ones. +- +-2003-06-04 Moritz Schulte +- +- * pubkey.c (gcry_pk_encrypt): Construct an arg_list and use +- gcry_sexp_build_array instead of gcry_sexp_build. +- (gcry_pk_sign): Likewise. +- (gcry_pk_genkey): Likewise. +- +-2003-06-01 Moritz Schulte +- +- * dsa.c (_gcry_dsa_generate): Do not check wether the algorithm ID +- does indeed belong to DSA. +- (_gcry_dsa_sign): Likewise. +- (_gcry_dsa_verify): Likewise. +- (_gcry_dsa_get_nbits): Likewise. +- +- * elgamal.c (_gcry_elg_check_secret_key): Do not check wether the +- algorithm ID does indeed belong to ElGamal. +- (_gcry_elg_encrypt): Likewise. +- (_gcry_elg_decrypt): Likewise. +- (_gcry_elg_sign): Likewise. +- (_gcry_elg_verify): Likewise. +- (_gcry_elg_get_nbits): Likewise. +- (_gcry_elg_generate): Likewise. +- +- * rsa.c (_gcry_rsa_generate): Do not check wether the algorithm ID +- does indeed belong to RSA. +- (_gcry_rsa_encrypt): Likewise. +- (_gcry_rsa_decrypt): Likewise. +- (_gcry_rsa_sign): Likewise. +- (_gcry_rsa_verify): Likewise. +- (_gcry_rsa_get_nbits): Likewise. +- +-2003-05-30 Moritz Schulte +- +- * md.c (md_get_algo): Return zero in case to algorithm is enabled. +- +- * md.c (gcry_md_info): Adjusted for new no-errno-API. +- (md_final): Likewise. +- (gcry_md_get_algo): Likewise. +- * pubkey.c (gcry_pk_get_keygrip): Likewise. +- (gcry_pk_ctl): Likewise. +- (gcry_pk_algo_info): Likewise. +- * des.c (selftest): Likewise. +- +-2003-05-29 Moritz Schulte +- +- * md.c (md_enable): Do not forget to release module on error. +- (gcry_md_open): Adjusted for new no-errno-API. +- (md_open): Likewise. +- (md_copy): Likewise. +- (gcry_md_copy): Likewise. +- (gcry_md_setkey): Likewise. +- (gcry_md_algo_info): Likewise. +- +- * cipher.c (gcry_cipher_open): Adjusted for new no-errno-API and +- also fixed a locking bug. +- (gcry_cipher_encrypt): Adjusted for new no-errno-API. +- (gcry_cipher_decrypt): Likewise. +- (gcry_cipher_ctl): Likewise. +- (gcry_cipher_info): Likewise. +- (gcry_cipher_algo_info): Likewise. +- +-2003-05-28 Moritz Schulte +- +- * md.c (md_enable): Adjusted for libgpg-error. +- (gcry_md_enable): Likewise. +- (gcry_digest_register_default): Likewise. +- (gcry_digest_register): Likewise. +- (check_digest_algo): Likewise. +- (prepare_macpads): Likewise. +- (gcry_md_setkey): Likewise. +- (gcry_md_ctl): Likewise. +- (gcry_md_get): Likewise. +- (gcry_md_algo_info): Likewise. +- (gcry_md_info): Likewise. +- * dsa.c (_gcry_dsa_generate): Likewise. +- (_gcry_dsa_check_secret_key): Likewise. +- (_gcry_dsa_sign): Likewie. +- (_gcry_dsa_verify): Likewise. +- * twofish.c (do_twofish_setkey): Likewise. +- (twofish_setkey): Likewise. +- * cipher.c (gcry_cipher_register): Likewise. +- +-2003-05-25 Moritz Schulte +- +- * rijndael.c (do_setkey): Adjusted for libgpg-error. +- (rijndael_setkey): Likewise. +- * random.c (gcry_random_add_bytes): Likewise. +- * elgamal.c (_gcry_elg_generate): Likewise. +- (_gcry_elg_check_secret_key): Likewise. +- (_gcry_elg_encrypt): Likewise. +- (_gcry_elg_decrypt): Likewise. +- (_gcry_elg_sign): Likewise. +- (_gcry_elg_verify): Likewise. +- * rsa.c (_gcry_rsa_generate): Likewise. +- (_gcry_rsa_check_secret_key): Likewise. +- (_gcry_rsa_encrypt): Likewise. +- (_gcry_rsa_decrypt): Likewise. +- (_gcry_rsa_sign): Likewise. +- (_gcry_rsa_verify): Likewise. +- * pubkey.c (dummy_generate, dummy_check_secret_key, dummy_encrypt, +- dummy_decrypt, dummy_sign, dummy_verify): Likewise. +- (gcry_pubkey_register): Likewise. +- (check_pubkey_algo): Likewise. +- (pubkey_generate): Likewise. +- (pubkey_check_secret_key): Likewise. +- (pubkey_encrypt): Likewise. +- (pubkey_decrypt): Likewise. +- (pubkey_sign): Likewise. +- (pubkey_verify): Likewise. +- (sexp_elements_extract): Likewise. +- (sexp_to_key): Likewise. +- (sexp_to_sig): Likewise. +- (sexp_to_enc): Likewise. +- (sexp_data_to_mpi): Likewise. +- (gcry_pk_encrypt): Likewise. +- (gcry_pk_decrypt): Likewise. +- (gcry_pk_sign): Likewise. +- (gcry_pk_verify): Likewise. +- (gcry_pk_testkey): Likewise. +- (gcry_pk_genkey): Likewise. +- (gcry_pk_ctl): Likewise. +- * cipher.c (dummy_setkey): Likewise. +- (check_cipher_algo): Likewise. +- (gcry_cipher_open): Likewise. +- (cipher_setkey): Likewise. +- (gcry_cipher_ctl): Likewise. +- (cipher_encrypt): Likewise. +- (gcry_cipher_encrypt): Likewise. +- (cipher_decrypt): Likewise. +- (gcry_cipher_decrypt): Likewise. +- (gcry_cipher_info): Likewise. +- (gcry_cipher_algo_info): Likewise. +- * cast5.c (cast_setkey): Likewise. +- (do_cast_setkey): Likewise. +- * arcfour.c (arcfour_setkey): Likewise. +- (do_arcfour_setkey): Likewise. +- * blowfish.c (do_bf_setkey): Likewise. +- (bf_setkey): Likewise. +- * des.c (do_des_setkey): Likewise. +- (do_tripledes_setkey): Likewise. +- +-2003-05-22 Moritz Schulte +- +- * tiger.c: Merged code ussing the U64_C macro from GnuPG. +- +- * sha512.c: Likewise. +- +-2003-05-17 Moritz Schulte +- +- * pubkey.c (gcry_pk_genkey): Fix type: acquire a lock, instead of +- releasing it. +- +-2003-05-11 Moritz Schulte +- +- * pubkey.c (gcry_pk_testkey): Call REGISTER_DEFAULT_CIPHERS. +- (gcry_pk_ctl): Likewise. +- +-2003-04-27 Moritz Schulte +- +- * pubkey.c (gcry_pk_genkey): Release sexp after extracted data has +- been used. +- +- * md.c (gcry_md_get_algo_dlen): Simplified, simply call +- md_digest_length to do the job. +- +- * des.c (do_des_setkey): Check for selftest failure not only +- during initialization. +- (do_tripledes_setkey): Include check for selftest failure. +- +- * pubkey.c (gcry_pubkey_register_default): New macro +- `pubkey_use_dummy', use it. +- +- * elgamal.c (elg_names): New variable. +- (pubkey_spec_elg): Include elg_names. +- +- * dsa.c (dsa_names): New variable. +- (pubkey_spec_dsa): Include dsa_names. +- +- * rsa.c (rsa_names): New variable. +- (pubkey_spec_rsa): Include rsa_names. +- +- * pubkey.c (gcry_pubkey_lookup_func_name): Compare name also with +- the names listed in `sexp_names'. +- +-2003-04-24 Moritz Schulte +- +- * pubkey.c (sexp_to_key): New variables: module, pubkey. Adjusted +- to new module interface. +- (sexp_to_key): Changend type of argument `retalgo' from `int *' to +- `GcryModule **'. Adjusted all callers. Removed argument: +- r_algotblidx. +- (sexp_to_sig): Changend type of argument `retalgo' from `int *' to +- `GcryModule **'. Adjusted all callers. +- (sexp_to_enc): Likewise. +- +- (pubkey_get_npkey, pubkey_get_nskey, pubkey_get_nsig, +- pubkey_get_nenc): Use strlen to find out the number. +- +- * rsa.c: Adjust pubkey_spec_rsa to new internal interface. +- * dsa.c: Likewise. +- * elgamal.c: Likewise. +- +-2003-04-17 Moritz Schulte +- +- * pubkey.c (sexp_elements_extract): New function. +- * pubkey.c (sexp_to_key): Removed variable `idx', added `err', use +- sexp_elements_extract. +- (sexp_to_sig): Likewise. +- (sexp_to_enc): Likewise. +- +- * pubkey.c: Terminate list correctly. +- * md.c: Include sha512/sha384 in digest_table. +- +-2003-04-16 Moritz Schulte +- +- * Makefile.am: Include support for sha512.c. +- +- * sha512.c: New file, merged from GnuPG, with few modifications +- for libgcrypt. +- +- * rand-internal.h: Removed declarations for constructor functions. +- +- * md.c (md_copy): Call _gcry_module_use for incrementing the usage +- counter of the digest modules. +- +- * rsa.c: Do not include "rsa.h". +- * dsa.c: Do not include "dsa.h". +- * elgamal.c: Do not include "elgamal.h". +- * des.c: Do not include "des.h". +- * cast5.c: Do not include "cast5.h". +- * blowfish.c: Do not include "blowfish.h". +- * arcfour.c: Do not include "arcfour.h". +- +- * Makefile.am (libcipher_la_DEPENDENCIES): Removed. +- (libcipher_la_LIBADD): Removed. +- Use Automake conditionals for conditional compilation. +- +-2003-04-13 Moritz Schulte +- +- * cipher.c (gcry_cipher_open): Call REGISTER_DEFAULT_CIPHERS. +- +- * md.c (gcry_md_list): New member: module. +- (md_enable): New variable: module, changed use of module and +- digest. +- (md_enable): Initialize member: module. +- (md_close): Call _gcry_module_release. +- +- * cipher.c (gcry_cipher_open): New variable: module, changed use of +- module and cipher. +- (struct gcry_cipher_handle): New member: module. +- (gcry_cipher_open): Initialize member: module. +- (gcry_cipher_close): Call _gcry_module_release. +- +-2003-04-09 Moritz Schulte +- +- * cipher.c: Include "ath.h". +- * md.c: Likewise. +- * pubkey.c: Likewise. +- +- * cipher.c (ciphers_registered_lock): New variable. +- * md.c (digests_registered_lock): New variable. +- * pubkey.c (pubkeys_registered_lock): New variable. +- +- * rndlinux.c (gnupgext_version, func_table): Removed definitions. +- (gnupgext_enum_func): Removed function. +- (_gcry_rndlinux_constructor): Removed function. +- +- * rndegd.c (gnupgext_version, func_table): Removed definitions. +- (gnupgext_enum_func): Removed function. +- (_gcry_rndegd_constructor): Removed function. +- +- * rndunix.c (gnupgext_version, func_table): Removed definitions. +- (gnupgext_enum_func): Removed function. +- (_gcry_rndunix_constructor): Removed function. +- +- * rndw32.c (gnupgext_version, func_table): Removed definitions. +- (gnupgext_enum_func): Removed function. +- (_gcry_rndw32_constructor): Removed function. +- +- * rndegd.c (rndegd_connect_socket): Simplify code for creating the +- egd socket address. +- (rndegd_connect_socket): Call log_fatal use instead of +- g10_log_fatal. +- (egd_gather_random): Renamed to ... +- (rndegd_gather_random): ... here. +- +-2003-04-08 Moritz Schulte +- +- * rndlinux.c: Do not include "dynload.h". +- * rndunix.c: Likewise. +- * rndw32.c: Likewise. +- +- * rndegd.c (rndegd_connect_socket): Factored out from ... +- (egd_gather_random): here; call it. +- (egd_socket): New variable. +- (egd_gather_random): Initialize fd with egd_socket, do not declare +- fd static. +- (do_read): Merged few changes from GnuPG. FIXME - not finished? +- Do not include "dynload.h". +- +- * rndw32.c (gather_random): Renamed to rndw32_gather_random, do +- not declare static. +- (gather_random_fast): Renamed to rndw32_gather_random_fast, do not +- declare static. +- +- * rndunix.c (gather_random): Renamed to rndunix_gather_random, do +- not declare static. +- * rndegd.c (gather_random): Renamed to rndegd_gather_random, do +- not declare static. +- * rndlinux.c (gather_random): Renamed to rndlinux_gather_random, +- do not declare static. +- +-2003-04-07 Moritz Schulte +- +- * Makefile.am (libcipher_la_SOURCES): Removed construct.c. +- (libcipher_la_SOURCES): Added sha1.c, sha256.c, rmd160.c, md4.c, +- md5.c, tiger.c and crc.c +- (EXTRA_PROGRAMS): Removed sha1, sha256, rmd160, md4, md5, tiger +- and crc. Removed definitions: EXTRA_md4_SOURCES, +- EXTRA_md5_SOURCES, EXTRA_rmd160_SOURCES, EXTRA_sha1_SOURCES, +- EXTRA_sha256_SOURCES, EXTRA_tiger_SOURCES and EXTRA_crc_SOURCES, +- BUILT_SOURCES, DISTCLEANFILES. +- +- * pubkey.c: Do not include "elgamal.h", "dsa.h" and "rsa.h". +- +- * Makefile.am (libcipher_la_SOURCES): Removed rsa.h, elgamal.h, +- dsa.h, des.h, cast5.h, arcfour.h and blowfish.h. +- +- * rsa.h: Removed file. +- * elgamal.h: Removed file. +- * dsa.h: Removed file. +- * des.h: Removed file. +- * cast5.h: Removed file. +- * arcfour.h: Removed file. +- * blowfish.h: Removed file. +- +- * Makefile.am (libcipher_la_SOURCES): Removed dynload.c and +- dynload.h. +- +- * rsa.c (pubkey_spec_rsa): New variable. +- * dsa.c (pubkey_spec_rsa): New variable. +- * elgamal.c (pubkey_spec_elg): New variable. +- +- * rsa.c (_gcry_rsa_get_info): Removed function. +- * elgamal.c (_gcry_elg_get_info): Removed function. +- * dsa.c (_gcry_dsa_get_info): Removed function. +- +- * tiger.c (tiger_get_info): Removed function. +- (gnupgext_version, func_table): Removed definitions. +- (gnupgext_enum_func): Removed function. +- (_gcry_tiger_constructor): Removed function. +- +- * sha1.c (sha1_get_info): Removed function. +- (gnupgext_version, func_table): Removed definitions. +- (gnupgext_enum_func): Removed function. +- (_gcry_sha1_constructor): Removed function. +- +- * sha256.c (sha256_get_info): Removed function. +- (gnupgext_version, func_table): Removed definitions. +- (gnupgext_enum_func): Removed function. +- (_gcry_sha256_constructor): Removed function. +- +- * rmd160.c (rmd160_get_info): Removed function. +- (gnupgext_version, func_table): Removed definitions. +- (gnupgext_enum_func): Removed function. +- (_gcry_rmd160_constructor): Removed function. +- +- * md5.c (md5_get_info): Removed function. +- (gnupgext_version, func_table): Removed definitions. +- (gnupgext_enum_func): Removed function. +- (_gcry_md5_constructor): Removed function. +- +- * md4.c (md4_get_info): Removed function. +- (gnupgext_version, func_table): Removed definitions. +- (gnupgext_enum_func): Removed function. +- (_gcry_md4_constructor): Removed function. +- +- * crc.c (crc_get_info): Removed function. +- +- * arcfour.c (do_arcfour_setkey): Changed type of context argument +- to `void *', added local variable for cast, adjusted callers. +- (arcfour_setkey): Likewise. +- (encrypt_stream): Likewise. +- * cast5.c (cast_setkey): Likewise. +- (encrypt_block): Likewise. +- * rijndael.c (rijndael_setkey): Likewise. +- (rijndael_encrypt): Likewise. +- (rijndael_decrypt): Likewise. +- * twofish.c (twofish_setkey): Likewise. +- (twofish_encrypt): Likewise. +- (twofish_decrypt): Likewise. +- * des.c (do_des_setkey): Likewise. +- (do_des_encrypt): Likewise. +- (do_des_encrypt): Likewise. +- (do_tripledes_encrypt): Likewise. +- (do_tripledes_encrypt): Likewise. +- * blowfish.c (bf_setkey: Likewise. +- (encrypt_block): Likewise. +- (decrypt_block): Likewise. +- +- * arcfour.c (encrypt_stream): Likewise. +- +- * rijndael.c (gnupgext_version, func_table): Removed definitions. +- (gnupgext_enum_func) Removed function. +- +- * twofish.c (gnupgext_version, func_table): Removed definitions. +- (gnupgext_enum_func) Removed function. +- +- * cast5.c (CIPHER_ALGO_CAST5): Removed. +- +- * blowfish.c (FNCCAST_SETKEY, FNCCAST_CRYPT): Removed macros. +- (CIPHER_ALGO_BLOWFISH): Removed symbol. +- * cast5.c (FNCCAST_SETKEY, FNCCAST_CRYPT): Likewise. +- * des.c (selftest_failed): Removed. +- (initialized): New variable. +- (do_des_setkey): Run selftest, if not yet done. +- (FNCCAST_SETKEY, FNCCAST_CRYPT): Removed macros. +- +- * arcfour.c (_gcry_arcfour_get_info): Removed function. +- * blowfish.c (_gcry_blowfish_get_info): Removed function. +- * cast5.c (_gcry_cast5_get_info): Removed function. +- * des.c (_gcry_des_get_info): Removed function. +- * rijndael.c (_gcry_rijndael_get_info): Removed function. +- * twofish.c (_gcry_twofish_get_info): Removed function. +- +- * arcfour.c (cipher_spec_arcfour): New variable. +- * twofish.c (cipher_spec_twofish, cipher_spec_twofish128): New +- variables. +- * rijndael.c (cipher_spec_aes, cipher_spec_aes192, +- cipher_spec256): New variables. +- * des.c (cipher_spec_des, cipher_spec_tripledes): New variables. +- * cast5.c (cipher_spec_cast5): New variable. +- * blowfish.c (cipher_spec_blowfish): Likewise. +- +- * twofish.c: Do not include "dynload.h". +- * rijndael.c: Likewise. +- * des.c: Likewise. +- * cast5.c: Likewise. +- * blowfish.c: Likewise. +- * cipher.c: Likewise. +- * crc.c: Likewise. +- * md4.c: Likewise. +- * md5.c: Likewise. +- * md.c: Likewise. +- * pubkey.c: Likewise. +- * rijndael.c: Likewise. +- * sha1.c: Likewise. +- * sha256.c: Likewise. +- +- * arcfour.c: Include "cipher.h". +- * twofish.c: Likewise. +- * rijndael.c: Likewise. +- * des.c: Likewise. +- * cast5.c: Likewise. +- * blowfish.c: Likewise. +- +- * twofish.c (twofish_setkey): Declared argument `key' const. +- (twofish_encrypt): Declared argument `inbuf' const. +- (twofish_decrypt): Likewise. +- +- * rijndael.c (rijndael_setkey): Declared argument `key' const. +- (rijndael_encrypt): Declared argument `inbuf' const. +- (rijndael_decrypt): Likewise. +- +- * des.c (do_des_setkey): Declared argument `key' const. +- (do_tripledes_setkey): Likewise. +- (do_des_encrypt): Declared argument `inbuf' const. +- (do_des_decrypt): Likewise. +- (do_tripledes_encrypt): Likewise. +- (do_tripledes_decrypt): Likewise. +- +- * cast5.c (encrypt_block): Declared argument `inbuf' const. +- (decrypt_block): Likewise. +- (cast_setkey): Declared argument `key' const. +- +- * blowfish.c (do_bf_setkey): Declared argument `key' const. +- (encrypt_block): Declared argument `inbuf' const. +- (encrypt_block): Likewise. +- +- +- +- * cipher.c: Remove CIPHER_ALGO_DUMMY related code. +- Removed struct cipher_table_s. +- Changed definition of cipher_table. +- Removed definition of disabled_algos. +- (ciphers_registered, default_ciphers_registered): New variables. +- (REGISTER_DEFAULT_CIPHERS): New macro. +- (dummy_setkey): Declared argument `key' const. +- (dummy_encrypt_block): Declared argument `inbuf' const. +- (dummy_encrypt_block): Likewise. +- (dummy_encrypt_stream): Likewise. +- (dummy_encrypt_stream): Likewise. +- (dummy_setkey): Use `unsigned char' instead of `byte'. +- (dummy_encrypt_block): Likewise. +- (dummy_decrypt_block): Likewise. +- (dummy_encrypt_stream): Likewise. +- (dummy_decrypt_stream): Likewise. +- (gcry_cipher_register_default): New function. +- (gcry_cipher_lookup_func_id): New function. +- (gcry_cipher_lookup_func_name): New function. +- (gcry_cipher_lookup_id): New function. +- (gcry_cipher_lookup_name): New function. +- (gcry_cipher_id_new): New function. +- (gcry_cipher_register): New function. +- (gcry_cipher_unregister): New function. +- (setup_cipher_table): Removed function. +- (load_cipher_modules): Removed function. +- (gcry_cipher_map_name): Adjusted to use new module management. +- (cipher_algo_to_string): Likewise. +- (disable_cipher_algo): Likewise. +- (check_cipher_algo): Likewise. +- (cipher_get_keylen): Likewise. +- (cipher_get_blocksize): Likewise. +- (gcry_cipher_open): Likewise. +- (struct gcry_cipher_handle): Replaced members algo, algo_index, +- blocksize, setkey, encrypt, decrypt, stencrypt, stdecrypt with one +- member: cipher. +- (gcry_cipher_open): Adjusted code for new handle structure. +- (cipher_setkey): Likewise. +- (cipher_setiv): Likewise. +- (cipher_reset): Likewise. +- (do_ecb_encrypt): Likewise. +- (do_ecb_decrypt): Likewise. +- (do_cbc_encrypt): Likewise. +- (do_cbc_decrypt): Likewise. +- (do_cfb_encrypt): Likewise. +- (do_cfb_decrypt): Likewise. +- (do_ctr_encrypt): Likewise. +- (cipher_encrypt): Likewise. +- (gcry_cipher_encrypt): Likewise. +- (cipher_decrypt): Likewise. +- (gcry_cipher_decrypt): Likewise. +- (cipher_sync): Likewise. +- (gcry_cipher_ctl): Likewise. +- +- * pubkey.c: Removed struct pubkey_table_s. +- Changed definition of pubkey_table. +- Removed definition of disabled_algos. +- (pubkeys_registered, default_pubkeys_registered): New variables. +- (REGISTER_DEFAULT_PUBKEYS): New macro. +- (setup_pubkey_table): Removed function. +- (load_pubkey_modules): Removed function. +- (gcry_pubkey_register_default): New function. +- (gcry_pubkey_lookup_func_id): New function. +- (gcry_pubkey_lookup_func_name): New function. +- (gcry_pubkey_lookup_id): New function. +- (gcry_pubkey_lookup_name): New function. +- (gcry_pubkey_id_new): New function. +- (gcry_pubkey_register): New function. +- (gcry_pubkey_unregister): New function. +- (gcry_pk_map_name): Adjusted to use new module management. +- (gcry_pk_algo_name): Likewise. +- (disable_pubkey_algo): Likewise. +- (check_pubkey_algo): Likewise. +- (pubkey_get_npkey): Likewise. +- (pubkey_get_nskey): Likewise. +- (pubkey_get_nsig): Likewise. +- (pubkey_get_nenc): Likewise. +- (pubkey_generate): Likewise. +- (pubkey_check_secret_key): Likewise. +- (pubkey_encrypt): Likewise. +- (pubkey_decrypt): Likewise. +- (pubkey_sign): Likewise. +- (pubkey_verify): Likewise. +- (gcry_pk_get_nbits): Likewise. +- (gcry_pk_algo_info): Likewise. +- +- * md.c: Removed struct md_digest_list_s. +- (digest_list): Changed definition. +- (digests_registered, default_digests_registered): New variables. +- (REGISTER_DEFAULT_DIGESTS): New macro. +- (new_list_item): Removed function. +- (setup_md_table): Removed function. +- (load_digest_module): Removed function. +- (gcry_digest_register_default): New function. +- (gcry_digest_lookup_func_id): New function. +- (gcry_digest_lookup_func_name): New function. +- (gcry_digest_lookup_id): New function. +- (gcry_digest_lookup_name): New function. +- (gcry_digest_id_new): New function. +- (gcry_digest_register): New function. +- (gcry_digest_unregister): New function. +- (GcryDigestEntry): New type. +- (struct gcry_md_context): Adjusted type of `list'. +- (gcry_md_map_name): Adjusted to use new module management. +- (digest_algo_to_string): Likewise. +- (check_digest_algo): Likewise. +- (md_enable): Likewise. +- (md_digest_length): Likewise. +- (md_asn_oid): Likewise. +- +-2003-04-07 Moritz Schulte +- +- * pubkey.c: Replaced PUBKEY_ALGO_DSA with GCRY_PK_DSA, +- PUBKEY_ALGO_RSA with GCRY_PK_RSA and PUBKEY_ALGO_ELGAMAL with +- GCRY_PK_ELG. +- +- * dsa.c: Replaced PUBKEY_ALGO_DSA with GCRY_PK_DSA. +- +-2003-04-01 Moritz Schulte +- +- * des.c: Removed checks for GCRY_CIPHER_3DES and GCRY_CIPHER_DES. +- +-2003-03-31 Moritz Schulte +- +- * tiger.c (tiger_get_info): Do not declare static. +- * sha256.c (sha256_get_info): Likewise. +- * sha1.c (sha1_get_info): Likewise. +- * rmd160.c (rmd160_get_info): Likewise. +- * md5.c (md5_get_info): Likewise. +- * md4.c (md4_get_info): Likewise. +- * crc.c (crc_get_info): Likewise. +- +- * md.c (load_digest_module): Call setup_md_table during +- initialization. +- (new_list_item): Link new element into digest_list. +- +- * cipher.c (do_ctr_decrypt): Made do_ctr_encrypt act as a wrapper +- for do_ctr_encrypt, since these functions are identical. +- +-2003-03-30 Simon Josefsson +- +- * cipher.c (struct gcry_cipher_handle): Add counter field. +- (gcry_cipher_open): Add CTR. +- (cipher_reset): Clear counter field. +- (do_ctr_encrypt, do_ctr_decrypt): New functions. +- (cipher_encrypt, cipher_decrypt): Call CTR functions. +- (gcry_cipher_ctl): Add SET_CTR to set counter. +- +-2003-03-30 Moritz Schulte +- +- * rsa.c (_gcry_rsa_blind): New function. +- (_gcry_rsa_unblind): New function. +- (_gcry_rsa_decrypt): Use _gcry_rsa_blind and _gcry_rsa_decrypt. +- +-2003-03-26 Moritz Schulte +- +- * dynload.c (_gcry_enum_gnupgext_pubkeys): Adjust `encrypt' and +- `decrypt' function arguments. +- (_gcry_enum_gnupgext_pubkeys): Likewise. +- * dynload.h: Likewise. +- +- * pubkey.c (dummy_decrypt): Add argument: int flags. +- (dummy_encrypt): Likewise. +- +- * elgamal.c (_gcry_elg_encrypt): Add argument: int flags. +- (_gcry_elg_decrypt): Likewise. +- +- * rsa.c (_gcry_rsa_encrypt): Add argument: int flags. +- (_gcry_rsa_decrypt): Likewise. +- +- * pubkey.c: Add `flags' argument to members `encrypt' and +- `decrypt' of struct `pubkey_table_s'. +- +- * rsa.h: Add `flags' argument to function declarations. +- * elgamal.h: Likewise. +- +- * pubkey.c (sexp_data_to_mpi): New variable: int parsed_flags. +- (sexp_data_to_mpi): Set `parsed_flags'. +- (sexp_data_to_mpi): New argument: int *flags. +- (gcry_pk_encrypt): New variable: int flags. +- (gcry_pk_encrypt): Pass `flags' to pubkey_encrypt. +- (pubkey_encrypt): New variable: int flags. +- (pubkey_encrypt): Pass `flags' to pubkey encrypt function. +- (pubkey_decrypt): Likewise. +- (pubkey_decrypt): Pass `flags' to pubkey encrypt function. +- (gcry_pk_encrypt): Include `flags' s-exp in return list. +- (sexp_to_enc): New argument: int *flags. +- (gcry_pk_decrypt): New variable: int flags. +- (gcry_pk_decrypt): Pass `flags' to pubkey_decrypt. +- (sexp_to_enc): New variable: int parsed_flags. +- (sexp_to_enc): Set `parsed_flags'. +- +-2003-03-22 Simon Josefsson +- +- * cipher.c (gcry_cipher_open, do_cbc_encrypt) +- (gcry_cipher_encrypt): Support GCRY_CIPHER_CBC_MAC. +- (gcry_cipher_ctl): Support GCRYCTL_SET_CBC_MAC. +- +-2003-03-19 Werner Koch +- +- * primegen.c (gen_prime): New args EXTRA_CHECK and EXTRA_CHECK_ARG +- to allow for a user callback. Changed all callers. +- (_gcry_generate_secret_prime) +- (_gcry_generate_public_prime): Ditto, pass them to gen_prime. +- * rsa.c (check_exponent): New. +- (generate): Use a callback to ensure that a given exponent is +- actually generated. +- +-2003-03-12 Moritz Schulte +- +- * primegen.c: Initialize `no_of_small_prime_numbers' statically. +- (gen_prime): Remove calculation of `no_of_small_prime_numbers'. +- +-2003-03-03 Moritz Schulte +- +- * md.c (gcry_md_ctl): Rewritten to use same style like the other +- functions dispatchers. +- +-2003-03-02 Moritz Schulte +- +- * cipher.c (struct gcry_cipher_handle): New member: algo_index. +- (gcry_cipher_open): Allocate memory for two cipher contexts. +- Initialize algo_index. +- (cipher_setkey): Duplicate context into reserved memory. +- (cipher_reset): New function, which resets the context and clear +- the IV. +- (gcry_cipher_ctl): Call cipher_reset. +- +-2003-02-23 Moritz Schulte +- +- * cipher.c: Remove (bogus) `digitp' macro definition. +- * md.c: Likewise. +- +- * blowfish.c (burn_stack): Removed. +- * arcfour.c (burn_stack): Likewise. +- * cast5.c (burn_stack): Likewise. +- * des.c (burn_stack): Likewise. +- * md4.c (burn_stack): Likewise. +- * md5.c (burn_stack): Likewise. +- * random.c (burn_stack): Likewise. +- * rijndael.c (burn_stack): Likewise. +- * rmd160.c (burn_stack): Likewise. +- * sha1.c (burn_stack): Likewise. +- * sha256.c (burn_stack): Likewise. +- * tiger.c (burn_stack): Likewise. +- * twofish.c (burn_stack): Likewise. +- +- * blowfish.c: Changed all occurences of burn_stack to +- _gcry_burn_stack. +- * arcfour.c: Likewise. +- * cast5.c: Likewise. +- * des.c: Likewise. +- * md4.c: Likewise. +- * md5.c: Likewise. +- * random.c: Likewise. +- * rijndael.c: Likewise. +- * rmd160.c: Likewise. +- * sha1.c: Likewise. +- * sha256.c: Likewise. +- * tiger.c: Likewise. +- * twofish.c: Likewise. +- +- * arcfour.c (_gcry_arcfour_get_info): Use GCRY_CIPHER_ARCFOUR +- instead of hard-coded value `301'. +- +-2003-01-24 Werner Koch +- +- * random.c (_gcry_register_random_progress): New. +- (_gcry_random_progress): New. +- +- * rndlinux.c (gather_random): Call the random progress function. +- +-2003-01-23 Werner Koch +- +- * rsa.c (generate): New arg USE_E to request a specific public +- exponent. +- (_gcry_rsa_generate): Ditto. +- * elgamal.c (_gcry_elg_generate): Must add an dummy argument +- instead of USE_E. +- * dsa.c (_gcry_dsa_generate): Ditto. +- * pubkey.c (dummy_generate): Ditto. +- (pubkey_generate): Add USE_E arg and pass it down. +- (gcry_pk_genkey): Detect "rsa-use-e" parameter and pass it to generate. +- +- * pubkey.c (sexp_to_enc): New arg RET_MODERN. +- (gcry_pk_decrypt): Make use of it to return a real S-expression. +- Return better error codes. +- (gcry_pk_verify): Return better error codes. +- +-2003-01-21 Werner Koch +- +- * random.c (gcry_random_add_bytes): Add QUALITY argument, let +- function return an error code and disable its core for now. +- +-2003-01-21 Timo Schulz +- +- * random.c (gcry_random_add_bytes): New. Function to add external +- random to the pool. +- +-2003-01-20 Simon Josefsson +- +- * crc.c: New. +- * Makefile.am (EXTRA_PROGRAMS, EXTRA_crc_SOURCES): Add crc.c. +- * md.c (gcry_md_get_algo_dlen): Add values for CRC. +- +-2003-01-20 Werner Koch +- +- * sha256.c: New. +- * bithelp.h (ror): New. +- * Makfile.am: Add sha256.c. +- * md.c (oid_table): Add values for SHA256 et al. +- (gcry_md_get_algo_dlen): Likewise +- +-2003-01-20 Werner Koch +- +- * pubkey.c (gcry_pk_get_keygrip): Implemented keygrips for DSA +- and ElGamal. +- +-2003-01-17 Werner Koch +- +- * cipher.c (gcry_cipher_encrypt): Reworked so that the output will +- never contain the plaintext even if the caller did not checked the +- return value. +- +- * md.c (gcry_md_get_algo): Changed error code to GCRYERR_GENERAL +- because we don't have an invalid md algo but no algorithm enabled. +- +- * pubkey.c (gcry_pk_genkey): Changed error code for bounds check +- of table parameters to GCRYERR_INTERNAL. +- +- * md.c (gcry_md_open): Partly reverted Timo's change from +- 2002-10-10 by removing the check for the algorithm. An algorithm +- of 0 is allowed and anyway we should not double check it or check +- it using a different function. Also fixed the flags check. +- +- * pubkey.c (gcry_pk_encrypt): Make sure that R_CIPH points to NULL +- on error. +- (gcry_pk_decrypt): Ditto for R_PLAIN. +- (gcry_pk_sign): Ditto for R_SIG. +- (gcry_pk_genkey): Ditto for R_KEY. +- +-2003-01-16 Werner Koch +- +- * md.c (gcry_md_write): Changed 2nd argument type to void*. +- (gcry_md_hash_buffer): Changed type of boths buffers to void*. +- (gcry_md_setkey): Changed 2nd argument type to void*. +- +-2003-01-15 Werner Koch +- +- * pubkey.c (sexp_data_to_mpi): New. This handles pkcs1 padding. +- (gcry_pk_sign, gcry_pk_verify): Use it here. +- (gcry_pk_encrypt): And here. +- (pubkey_verify): Add debug code. +- (sexp_to_enc): Handle flags in the input and return the pkcs1 flag +- in a new parameter. +- (gcry_pk_decrypt): Prepare for future pkcs1 handling. +- +-2002-12-19 Werner Koch +- +- * random.c (_gcry_random_initialize): New. +- +-2002-12-16 Werner Koch +- +- * cipher.c: Added a Teletrust specific OID for 3DES. +- +-2002-12-12 Werner Koch +- +- * md.c: Added another oddball OIW OID (sha-1WithRSAEncryption). +- +-2002-11-23 Werner Koch +- +- * md.c (load_digest_module): Enlarged checked_algos bitmap. +- * md4.c (func_table): Fixed entry for md4. +- Both by Simon Josephson. +- (transform): Copy data to get the alignment straight. Tested only +- on i386. +- +-2002-11-10 Simon Josefsson +- +- * cipher.c (gcry_cipher_open): Don't reject CTS flag. +- (do_cbc_encrypt, do_cbc_decrypt, cipher_encrypt) +- (gcry_cipher_encrypt, cipher_decrypt) +- (gcry_cipher_decrypt): Support CTS flag. +- (gcry_cipher_ctl): Toggle CTS flag. +- +-2002-11-10 Werner Koch +- +- * md4.c: New. By Simon Josefsson. +- * Makefile.am (EXTRA_PROGRAMS): Add md4.c. +- * md.c (oid_table,gcry_md_get_algo_dlen): MD4 support. +- +-2002-10-14 Werner Koch +- +- * arcfour.c (do_encrypt_stream): Don't use increment op when +- assigning to the same variable. +- +-2002-10-10 Timo Schulz +- +- * pubkey.c (gcry_pk_genkey): Check boundaries. +- +- * md.c (gcry_md_open): Check that algo is available and only +- valid flag values are used. +- (gcry_md_get_algo): Add error handling. +- +-2002-09-26 Werner Koch +- +- * md.c: Include an OID for TIGER. +- * tiger.c (tiger_get_info): Use a regular OID. +- +-2002-09-17 Werner Koch +- +- * random.c: Replaced mutex.h by the new ath.h. Changed all calls. +- +-2002-09-16 Werner Koch +- +- * arcfour.c (do_encrypt_stream): Use register modifier and modulo. +- According to Nikos Mavroyanopoulos this increases perfromace on +- i386 system noticable. And I always tought gcc is clever enough. +- * md5.c (transform): Use register modifier. +- * rmd160.c (transform): Ditto. +- * sha1.c (transform): Ditto. We hope that there are 6 free registers. +- * random.c (gcry_randomize): Rewrote to avoid malloc calls. +- +- * rndlinux.c (gather_random): Replaced remaining fprintfs by log_*. +- * arcfour.c (do_arcfour_setkey): Ditto. +- * twofish.c (do_twofish_setkey): Ditto. +- * rndegd.c (gather_random): Ditto. +- * rijndael.c (do_setkey): Ditto. +- * random.c (_gcry_random_dump_stats): Ditto. +- * primegen.c (_gcry_generate_elg_prime): Ditto. +- * des.c (_gcry_des_get_info): Ditto. +- * cast5.c (do_cast_setkey): Ditto. +- * blowfish.c (do_bf_setkey): Ditto. +- +-2002-08-26 Werner Koch +- +- * des.c (weak_keys): Fixed one entry in the table and compared +- all entries against the literature. +- (selftest): Checksum the weak key table. +- +-2002-08-21 Werner Koch +- +- * pubkey.c: Enable keygrip calculation for "openpgp-rsa". +- +-2002-08-17 Werner Koch +- +- * cipher.c (setup_cipher_table): Don't overwrite the DES entry +- with the entry for DUMMY. +- +-2002-08-14 Werner Koch +- +- * des.c (do_des_setkey,do_des_encrypt, do_des_decrypt): New. +- (_gcry_des_get_info): Support plain old DES. +- * cipher.c (setup_cipher_table): Put DES into the table. +- +-2002-07-25 Werner Koch +- +- * rndunix.c (_gcry_rndunix_constructor): Prefixed with _gcry_. +- Noted by Stephan Austermuehle. +- +-2002-07-08 Timo Schulz +- +- * rndw32.c: Replaced the m_ memory functions with the real +- gcry_ functions. Renamed all g10_ prefixed functions to log_. +- +-2002-06-12 Werner Koch +- +- * rsa.c (generate): Use e = 65537 for now. +- +-2002-06-11 Werner Koch +- +- * pubkey.c (gcry_pk_get_keygrip): Allow a "protected-private-key". +- +-2002-06-05 Timo Schulz +- +- * cipher.c (gcry_cipher_encrypt, gcry_cipher_decrypt): +- Check that the input size is a multiple of the blocksize. +- +-2002-05-23 Werner Koch +- +- * md.c (oid_table): Add an rsadsi OID for MD5. +- +-2002-05-21 Werner Koch +- +- * primegen.c, elgamal.c, dsa.c (progress): Do not print anything +- by default. Pass an extra identifying string to the callback and +- reserved 2 argumenst for current and total counters. Changed the +- register function prototype. +- +-2002-05-17 Werner Koch +- +- * rndegd.c (rndegd_constructor): Fixed name of register function +- and prefixed the function name with _gcry_. +- * rndw32.c (rndw32_constructor): Ditto. +- * tiger.c (tiger_constructor): Ditto. +- +- * Makefile.am: Removed all dynamic loading stuff. +- * dynload.c: Ditto. Now only used for the constructor system. +- +-2002-05-15 Werner Koch +- +- * random.c (gcry_random_bytes,gcry_random_bytes_secure) +- (gcry_randomize): Make sure we are initialized. +- +-2002-05-14 Werner Koch +- +- Changed license of most files to the LGPL. +- +-2002-05-02 Werner Koch +- +- * random.c (_gcry_fast_random_poll): Initialize the module so the +- mutex can be used. +- +- * primegen.c (small_prime_numbers): Moved table from smallprime.c +- * smallprime.c: File removed. +- +- * des.c (leftkey_swap, rightkey_swap, working_memcmp): Made static. +- +- * cipher.c (gcry_cipher_map_name): Map "RIJNDAEL" to "AES". +- * rijndael.c (rijndael_get_info): We do only support a 128 bit +- blocksize so it makes sense to change the algorithm strings to +- AES. +- +- * tiger.c (tiger_final): Removed superfluous token pasting operators. +- * md5.c (md5_final): Ditto. +- +-2002-04-30 Werner Koch +- +- * cipher.c: Fixed list of copyright years. +- +-2002-03-18 Werner Koch +- +- * random.c (initialize): Initialize the new pool lock mutex. +- (_gcry_fast_random_poll): Add locking and moved main +- code out to... +- (do_fast_random_poll): new function. +- (read_pool): Use the new function here. +- (get_random_bytes): Add locking. +- (_gcry_update_random_seed_file): Ditto. +- +-2002-03-11 Werner Koch +- +- * md.c: Add rsaSignatureWithripemd160 to OID table. +- +-2002-02-20 Werner Koch +- +- * sha1.c: Removed a left over comment note. The code has been +- rewritten from scratch in 1998. Thanks to Niels Möller for +- reporting this misleading comment. +- +-2002-02-18 Werner Koch +- +- * rndunix.c (rndunix_constructor): Use the the new prefixed +- function name. Reported by Jordi Mallach. +- +-2002-02-10 Werner Koch +- +- * random.c (mix_pool): Carry an extra failsafe_digest buffer +- around to make the function more robust. +- +-2002-02-08 Werner Koch +- +- * random.c (add_randomness): Xor new data into the pool and not +- just copy it. This avoids any choosen input attacks which are not +- serious in our setting because an outsider won't be able to mix +- data in and even then we keep going with a PRNG. Thanks to Stefan +- Keller for pointing this out. +- +-2002-01-04 Werner Koch +- +- * pubkey.c (gcry_pk_genkey): Do not release skey - it is static. +- +- * primegen.c (gen_prime): Of course we should use set_bit +- and not set_highbit to set the second high bit. +- +-2001-12-18 Werner Koch +- +- * rsa.c (generate): Loop until we find the exact modulus size. +- Changed the exponent to 41. +- (rsa_get_info): s/usage/r_usage/ to avoid shadow warnings. +- * primegen.c (gen_prime): Set 2 high order bits for secret primes. +- +- * Makefile.am (DISTCLEANFILES): Include construct.c. +- +-2001-12-17 Werner Koch +- +- * pubkey.c (gcry_pk_get_keygrip): New - experimental. +- +-2001-12-11 Werner Koch +- +- * cipher.c: Added OIDs for AES. +- (gcry_cipher_mode_from_oid): New. +- (gcry_cipher_map_name): Moved OID search code to .. +- (search_oid): .. new function. +- +-2001-12-10 Werner Koch +- +- * pubkey.c (gcry_pk_encrypt): Find the signature algorithm by name +- and not by number. +- +- * pubkey.c (gcry_pk_encrypt,gcry_pk_decrypt,gcry_pk_sign) +- (gcry_pk_verify,gcry_pk_testkey, gcry_pk_genkey) +- (gcry_pk_get_nbits): Release the arrays. Noted by Nikos +- Mavroyanopoulos. +- +-2001-12-06 Werner Koch +- +- * cipher.c (gcry_cipher_map_name): Look also for OIDs prefixed +- with "oid." or "OID.". +- +-2001-12-05 Werner Koch +- +- * pubkey.c (algo_info_table): Fixed entry for openpgp-rsa. +- +-2001-11-24 Werner Koch +- +- * pubkey.c: Added the rsaEncryption OID to the tables. +- (sexp_to_key): Add an arg to return the index of the algorithm, +- changed all callers. +- (gcry_pk_sign): Find the signature algorithm by name and not by +- number. +- (gcry_pk_get_nbits): Fixed so that we can now really pass a secret +- key to get the result. +- +- * md.c (gcry_md_map_name): Look also for OIDs prefixed with "oid." +- or "OID." so that an OID string can be used as an S-Exp token. +- +-2001-11-20 Werner Koch +- +- * md.c (gcry_md_map_name): Lookup by OID if the the name begins +- with a digit. +- (oid_table): New. +- +-2001-11-16 Werner Koch +- +- * md.c (gcry_md_info): New operator GCRYCTL_IS_ALGO_ENABLED. +- +-2001-11-07 Werner Koch +- +- * md.c (gcry_md_hash_buffer): Close the handle which was left open +- for algorithms other than rmd160. +- +-2001-08-08 Werner Koch +- +- * rndw32.c (gather_random): Use toolhelp in addition to the NT +- gatherer for Windows2000. Suggested by Sami Tolvanen. +- +- * random.c (read_pool): Fixed length check, this used to be one +- byte to strict. Made an assert out of it because the caller has +- already made sure that only poolsize bytes are requested. +- Reported by Marcus Brinkmann. +- +-2001-08-03 Werner Koch +- +- * cipher.c (cipher_encrypt, cipher_decrypt): Prepare to return +- errors. We have to change the interface to all ciphers to make +- this really work but we should do so to prepare for hardware +- encryption modules. +- (gcry_cipher_encrypt, gcry_cipher_decrypt): Return the error and +- set lasterr. +- (gcry_cipher_ctl): Make sure that errors from setkey are returned. +- +-2001-08-02 Werner Koch +- +- * rndlinux.c (gather_random): casted a size_t arg to int so that +- the format string is correct. Casting is okay here and avoids +- translation changes. +- +- * random.c (fast_random_poll): Do not check the return code of +- getrusage. +- +- * rndunix.c: Add a signal.h header to avoid warnings on Solaris 7 +- and 8. +- +- * tiger.c (print_abc,print_data): Removed. +- +- * rijndael.c, des.c, blowfish.c, twofish.c, cast5.c, arcfour.c +- (burn_stack): New. Add wrappers for most functions to be able to +- call burn_stack after the function invocation. This methods seems +- to be the most portable way to zeroise the stack used. It does +- only work on stack frame based machines but it is highly portable +- and has no side effects. Just setting the automatic variables at +- the end of a function to zero does not work well because the +- compiler will optimize them away - marking them as volatile would +- be bad for performance. +- * md5.c, sha1.c, rmd160.c, tiger.c (burn_stack): Likewise. +- * random.c (burn_stack): New. +- (mix_pool): Use it here to burn the stack of the mixblock function. +- +- * primegen.c (_gcry_generate_elg_prime): Freed q at 3 places. +- Thanks to Tommi Komulainen. +- +- * arcfour.c (arcfour_setkey): Check the minimim keylength against +- bytes and not bits. +- (selftest): Must reset the key before decryption. +- +-2001-05-31 Werner Koch +- +- * sha1.c (sha1_init): Made static. +- +- Changed all g10_ prefixed function names as well as some mpi_ +- function names to cope with the introduced naming changes. +- +- * md.c (prepare_macpads): Made key const. +- +-2001-05-28 Werner Koch +- +- * rndegd.c (gather_random): Removed the use of tty_printf. +- +-2001-03-29 Werner Koch +- +- * md5.c (md5_final): Fixed calculation of hashed length. Thanks +- to disastry@saiknes.lv for pointing out that it was horrible wrong +- for more than 512MB of input. +- * sha1.c (sha1_final): Ditto. +- * rmd160.c (rmd160_final): Ditto. +- * tiger.c (tiger_final): Ditto. +- +- * blowfish.c (encrypt,do_encrypt): Changed name to do_encrypt to +- avoid name clashes with an encrypt function in stdlib.h of +- Dynix/PIX. Thanks to Gene Carter. +- * elgamal.c (encrypt,do_encrypt): Ditto. +- +- * twofish.c (gnupgext_enum_func): Use only when when compiled as a +- module. +- * rijndael.c (gnupgext_enum_func): Ditto. +- +- * tiger.c (tiger_get_info): Return "TIGER192" and not just +- "TIGER". By Edwin Woudt. +- +- * random.c: Always include time.h - standard requirement. Thanks +- to James Troup. +- +- * rndw32.c: Fixes to the macros. +- +-2001-01-11 Werner Koch +- +- * cipher.c (cipher_encrypt,gcry_cipher_encrypt): Use blocksize and +- not 8. +- +-2000-12-19 Werner Koch +- +- Major change: +- Removed all GnuPG stuff and renamed this piece of software +- to gcrypt. +- +-2000-11-14 Werner Koch +- +- * dsa.c (test_keys): Replaced mpi_alloc by gcry_mpi_new and +- mpi_free by gcry_mpi_release. +- * elgamal.c (test_keys,generate): Ditto, also for mpi_alloc_secure. +- * rsa.c (test_keys,generate,rsa_verify): Ditto. +- * primegen.c (generate_elg_prime): Ditto. +- (gen_prime): Ditto and removed nlimbs. +- +- * rsa.c (generate): Allocate 2 more vars in secure memory. +- +- * Makefile.am (OMIT_DEPENDENCIES): Hack to work around dependency +- problems. +- +-2000-10-09 Werner Koch +- +- * arcfour.c, arcfour.h: New. +- * cipher.c (cipher_encrypt, cipher_decrypt): Add stream mode. +- (setup_cipher_table): Add Arcfour. +- (gcry_cipher_open): Kludge to allow stream mode. +- +-Wed Oct 4 13:16:18 CEST 2000 Werner Koch +- +- * sha1.c (transform): Use rol() macro. Actually this is not needed +- for a newer gcc but there are still aoter compilers. +- +- * rsa.c (test_keys): Use new random function. +- +- * md.c (gcry_md_setkey): New function to overcome problems with +- const conflics. +- (gcry_md_ctl): Pass set key to the new functions. +- +- * rijndael.c: New. +- * cipher.c: Add Rijndael support. +- +-Mon Sep 18 16:35:45 CEST 2000 Werner Koch +- +- * rndlinux.c (open_device): Loose random device checking. +- By Nils Ellmenreich. +- +- * random.c (fast_random_poll): Check ENOSYS for getrusage. +- * rndunix.c: Add 2 sources for QNX. By Sam Roberts. +- +- * pubkey.c (gcry_pk_algo_info): Add GCRYCTL_GET_ALGO_USAGE. +- +- * rsa.c: Changed the comment about the patent. +- (secret): Speed up by using the CRT. For a 2k keys this +- is about 3 times faster. +- (stronger_key_check): New but unused code to check the secret key. +- * Makefile.am: Included rsa.[ch]. +- * pubkey.c: Enabled RSA support. +- (pubkey_get_npkey): Removed RSA workaround. +- +-Mon Jul 31 10:04:47 CEST 2000 Werner Koch +- +- * pubkey.c: Replaced all gcry_sexp_{car,cdr}_{data,mpi} by the new +- gcry_sexp_nth_{data,mpi} functions. +- +-Tue Jul 25 17:44:15 CEST 2000 Werner Koch +- +- * pubkey.c (exp_to_key,sexp_to_sig,sexp_to_enc,gcry_pk_encrypt, +- gcry_pk_decrypt,gcry_pk_sign,gcry_pk_genkey): Changed to work with +- the new S-Exp interface. +- +-Mon Jul 17 16:35:47 CEST 2000 Werner Koch +- +- * random.c (gather_faked): Replaced make_timestamp by time(2) again. +- +-Fri Jul 14 19:38:23 CEST 2000 Werner Koch +- +- * md.c (gcry_md_ctl): Support GCRYCTL_{START,STOP}_DUMP. +- +- * Makefile.am: Never compile mingw32 as module. +- +- * Makefile.am: Tweaked module build and removed libtool +- +- * Makefile.am: Replaced -O1 by -O. Suggested by Alec Habig. +- +- * elgamal.c (sign): Removed inactive code. +- +- * rsa.c, rsa.h: New based on the old module version (only in CVS for now). +- * pubkey.c (setup_pubkey_table): Added commented support for RSA. +- +- * rndunix.c (waitpid): New. For UTS 2.1. All by Dave Dykstra. +- (my_popen): Do the FD_CLOEXEC only if it is available +- (start_gatherer): Cope with missing _SC_OPEN_MAX +- +- * rndunix.c: Add some more headers for QNX. By Sam Roberts. +- +- * rndegd.c (gather_random): Shortcut level 0. +- * rndunix.c (gather_random): Ditto. +- * rndw32.c (gather_random): Ditto. +- +- * rndw32.c: Replaced with code from Cryptlib and commented the old stuff. +- * rndw32.c: Add some debuging code enabled by an environment variable. +- +- * random.c (read_seed_file): Binary open for DOSish system +- (update_random_seed_file): Ditto. +- * random.c [MINGW32]: Include process.h for getpid. +- * random.c (fast_random_poll): Add clock_gettime() as fallback for +- system which support this POSIX.4 fucntion. By Sam Roberts. +- +- * random.c (read_seed_file): Removed the S_ISLNK test becuase it +- is already covered by !S_ISREG and is not defined in Unixware. +- Reported by Dave Dykstra. +- (update_random_seed_file): Silently ignore update request when pool +- is not filled. +- +- * random.c (read_seed_file): New. +- (set_random_seed_file): New. +- (read_pool): Try to read the seeding file. +- (update_random_seed_file): New. +- +- (read_pool): Do an initial extra seeding when level 2 quality random +- is requested the first time. This requestes at least POOLSIZE/2 bytes +- of entropy. Compined with the seeding file this should make normal +- random bytes cheaper and increase the quality of the random bytes +- used for key generation. +- +- * random.c (read_pool): Print a more friendly error message in +- cases when too much random is requested in one call. +- +- * random.c (fast_random_poll): Check whether RUSAGE_SELF is defined; +- this is not the case for some ESIX and Unixware, although they have +- getrusage(). +- +- * primegen.c (generate_elg_prime): All primes are now generated with +- the lowest random quality level. Because they are public anyway we +- don't need stronger random and by this we do not drain the systems +- entropy so much. +- +- * primegen.c (register_primegen_progress): New. +- * dsa.c (register_pk_dsa_progress): New. +- * elgamal.c (register_pk_elg_progress): New. +- +- * elgamal.c (wiener_map): New. +- (gen_k): Use a much smaller k. +- (generate): Calculate the qbits using the wiener map and +- choose an x at a size comparable to the one choosen in gen_k +- +- * rmd160.c (rmd160_get_info): Moved casting to the left side due to a +- problem with UTS4.3. Suggested by Dave Dykstra. +- * sha1.c (sha1_get_info): Ditto. +- * tiger.c (tiger_get_info): Ditto. +- * md5.c (md5_get_info): Ditto +- * des.c (des_get_info): Ditto. +- * blowfish.c (blowfish_get_info): Ditto. +- * cast5.c (cast5_get_info): Ditto. +- * twofish.c (twofish_get_info): Ditto. +- +-Fri Mar 24 11:25:45 CET 2000 Werner Koch +- +- * md.c (md_open): Add hmac arg and allocate space for the pads. +- (md_finalize): Add HMAC support. +- (md_copy): Ditto. +- (md_close): Ditto. +- (gcry_md_reset): Ditto. +- (gcry_md_ctl): Ditto. +- (prepare_macpdas): New. +- +-Mon Mar 13 19:22:46 CET 2000 Werner Koch +- +- * md.c (gcry_md_hash_buffer): Add support for the other algorithms. +- +-Mon Jan 31 16:37:34 CET 2000 Werner Koch +- +- * genprime.c (generate_elg_prime): Fixed returned factors which never +- worked for non-DSA keys. +- +-Thu Jan 27 18:00:44 CET 2000 Werner Koch +- +- * pubkey.c (sexp_to_key): Fixed mem leaks in case of errors. +- +-Mon Jan 24 22:24:38 CET 2000 Werner Koch +- +- * pubkey.c (gcry_pk_decrypt): Implemented. +- (gcry_pk_encrypt): Implemented. +- (gcry_pk_testkey): New. +- (gcry_pk_genkey): New. +- (pubkey_decrypt): Made static. +- (pubkey_encrypt): Ditto. +- (pubkey_check_secret_key): Ditto. +- (pubkey_generate): Ditto. +- +-Mon Jan 24 13:04:28 CET 2000 Werner Koch +- +- * pubkey.c (pubkey_nbits): Removed and replaced by ... +- (gcry_pk_get_nbits): this new one. +- +-Wed Dec 8 21:58:32 CET 1999 Werner Koch +- +- * dsa.c: s/mpi_powm/gcry_mpi_powm/g +- * elgamal.c: Ditto. +- * primegen.c: Ditto. +- +- * : Replaced g10_opt_verbose by g10_log_verbosity(). +- +- * Makefile.am (INCLUDES): removed intl, add ../gcrypt +- +-Fri Nov 19 17:15:20 CET 1999 Werner Koch +- +- * dynload.c (cmp_filenames): New to replaced compare_filename() in +- module. +- (register_cipher_extension): Removed the tilde expansion stuff. +- * rndeg.c (my_make_filename): New. +- +- * : Replaced header util.h by g10lib.h +- +- * random.c (gather_faked): Replaced make_timestamp by time(2). +- Disabled wrning printed with tty_printf. +- * rndlinux.c (gather_random): Always use fprintf instead of tty_xxx; +- this should be replaced by a callback function. +- +- * primegen.c (gen_prime): Use gcry_mpi_randomize. +- (is_prime): Ditto. +- * elgamal.c (test_keys): Ditto. +- * dsa.c (test_keys): Ditto. +- +- * cipher.c (gcry_cipher_close): Die on invalid handle. +- +-Mon Nov 15 21:36:02 CET 1999 Werner Koch +- +- * elgamal.c (gen_k): Use the new random API. +- (generate): Ditto. +- * dsa.c (gen_k): Ditto. +- (generate): Ditto. +- +-Sat Nov 13 17:44:23 CET 1999 Werner Koch +- +- * pubkey.c (disable_pubkey_algo): Made static. +- (gcry_pk_ctl): New. +- +- * random.c (get_random_bits): Renamed to ... +- (get_random_bytes): ... this and made static. +- (gcry_random_bytes): New. +- (gcry_random_bytes_secure): New. +- (randomize_buffer): Renamed to ... +- (gcry_randomize): ...this. +- +- * md.c (gcry_md_hash_buffer): New. +- +- * pubkey.c (gcry_pk_algo_info): 4 new commands. +- (pubkey_get_npkey): Made static. +- (pubkey_get_nskey): Made static. +- (pubkey_get_nsig): Made static. +- (pubkey_get_nenc): Made static. +- +- * pubkey.c: Removed all G10ERR_xxx. +- * cipher.c: Changed all GCRYERR_INV_ALGO to GCRYERR_INV_CIPHER_ALGO. +- * md.c: Changed all GCRYERR_INV_ALGO to GCRYERR_INV_MD_ALGO. +- * cast5.c (cast_setkey): Changed errocodes to GCRYERR_xxx. +- * blowfish.c: Ditto. +- * des.c: Ditto. +- * twofish.c: Ditto. +- * dsa.c: Ditto. +- * elgamal.c: Ditto. +- +- * g10c.c: Removed +- +- * cipher.c (gcry_cipher_open): Replaced alloc functions and return NULL +- if we are out of core. +- * dynload.c: Replaced all memory allocation functions. +- * md.c: Ditto. +- * primegen.c: Ditto. +- * pubkey.c: Ditto. +- * random.c: Ditto. +- * rndw32.c: Ditto. +- * elgamal.c: Ditto. +- * dsa.c: Ditto. +- +-Tue Oct 26 14:10:21 CEST 1999 Werner Koch +- +- * elgamal.c (sign): Hugh found strange code here. Replaced by BUG(). +- +- * cipher.c: Merged with gcrypt/symapi.c. +- +- * pubkey.c (string_to_pubkey_algo): Renamed function to ... +- (gcry_pk_map_name): ... this. +- (pubkey_algo_to_string): Renamed function to ... +- (gcry_pk_algo_name): ... this. +- (gcry_pk_algo_info): New. +- * pubkey.c: Merged with gcrypt/pkapi.c. +- +- * md.c (md_reset): Clear finalized; thanks to Ulf Moeller for +- fixing this bug. +- +- * md.c: Merged with gcrypt/mdapi.c +- +-Wed Sep 15 14:39:59 CEST 1999 Michael Roth +- +- * des.c: Various speed improvements: One bit pre rotation +- trick after initial permutation (Richard Outerbridge). +- Finished test of SSLeay Tripple-DES patterns. +- +-Wed Sep 15 16:22:17 CEST 1999 Werner Koch +- +- * rndw32.c: New. +- +-Mon Sep 13 10:51:29 CEST 1999 Werner Koch +- +- * bithelp.h: New. +- * rmd160.h, sha1.h, md5.h: Use the rol macro from bithelp.h +- +-Tue Sep 7 16:23:36 CEST 1999 Werner Koch +- +- * Makefile.am: Fixed seds for latest egcc. By Ollivier Robert. +- +-Mon Sep 6 19:59:08 CEST 1999 Werner Koch +- +- * des.c (selftest): Add some testpattern +- +-Mon Aug 30 20:38:33 CEST 1999 Werner Koch +- +- * cipher.c (do_cbc_encrypt): Fixed serious bug occuring when not using +- in place encryption. Pointed out by Frank Stajano. +- +-Mon Jul 26 09:34:46 CEST 1999 Werner Koch +- +- * md5.c (md5_final): Fix for a SCO cpp bug. +- +-Thu Jul 15 10:15:35 CEST 1999 Werner Koch +- +- * elgamal.c (elg_check_secret_key,elg_encrypt +- elg_decrypt,elg_sign,elg_verify): Sanity check on the args. +- * dsa.c (dsa_check_secret_key,dsa_sign,dsa_verify): Ditto. +- +- * pubkey.c (disable_pubkey_algo): New. +- (check_pubkey_algo2): Look at disabled algo table. +- * cipher.c (disable_cipher_algo): New. +- (check_cipher_algo): Look at disabled algo table. +- +-Wed Jul 7 13:08:40 CEST 1999 Werner Koch +- +- * Makefile.am: Support for libtool. +- +-Fri Jul 2 11:45:54 CEST 1999 Werner Koch +- +- * dsa.c (gen_k): Changed algorithm to consume less random bytes +- * elgamal.c (gen_k): Ditto. +- +- * random.c (random_dump_stats): New. +- +-Thu Jul 1 12:47:31 CEST 1999 Werner Koch +- +- * primegen.c, elgamal.c, dsa.c (progess): New and replaced all +- fputc with a call to this function. +- +-Sat Jun 26 12:15:59 CEST 1999 Werner Koch +- +- * rndegd.c (do_write): s/ssize_t/int/ due to SunOS 4.1 probs. +- +- * cipher.c (do_cbc_encrypt, do_cbc_decrypt): New. +- +- * dynload.c (HAVE_DL_SHL_LOAD): Map hpux API to dlopen (Dave Dykstra). +- * Makefile.am (install-exec-hook): Removed. +- +-Sun May 23 14:20:22 CEST 1999 Werner Koch +- +- * cipher.c (setup_cipher_table): Enable Twofish +- +- * random.c (fast_random_poll): Disable use of times() for mingw32. +- +-Mon May 17 21:54:43 CEST 1999 Werner Koch +- +- * dynload.c (register_internal_cipher_extension): Minor init fix. +- +-Tue May 4 15:47:53 CEST 1999 Werner Koch +- +- * primegen.c (gen_prime): Readded the Fermat test. Fixed the bug +- that we didn't correct for step when passing the prime to the +- Rabin-Miller test which led to bad performance (Stefan Keller). +- (check_prime): Add a first Fermat test. +- +-Sun Apr 18 10:11:28 CEST 1999 Werner Koch +- +- * cipher.c (cipher_setiv): Add ivlen arg, changed all callers. +- +- * random.c (randomize_buffer): alway use secure memory because +- we can't use m_is_secure() on a statically allocated buffer. +- +- * twofish.c: Replaced some macros by a loop to reduce text size. +- * Makefile.am (twofish): No more need for sed editing. +- +-Fri Apr 9 12:26:25 CEST 1999 Werner Koch +- +- * cipher.c (cipher_open): Reversed the changes for AUTO_CFB. +- +- * blowfish.c: Dropped the Blowfish 160 mode. +- * cipher.c (cipher_open): Ditto. +- (setup_cipher_table): Ditto. And removed support of twofish128 +- +-Wed Apr 7 20:51:39 CEST 1999 Werner Koch +- +- * random.c (get_random_bits): Can now handle requests > POOLSIZE +- +- * cipher.c (cipher_open): Now uses standard CFB for automode if +- the blocksize is gt 8 (according to rfc2440). +- +- * twofish.c: Applied Matthew Skala's patches for 256 bit key. +- +-Tue Apr 6 19:58:12 CEST 1999 Werner Koch +- +- * random.c (get_random_bits): Can now handle requests > POOLSIZE +- +- * cipher.c (cipher_open): Now uses standard CFB for automode if +- the blocksize is gt 8 (according to rfc2440). +- +-Sat Mar 20 11:44:21 CET 1999 Werner Koch +- +- * rndlinux.c (tty_printf) [IS_MODULE]: Removed. +- +- * rndegd.c (gather_random): Some fixes. +- +-Wed Mar 17 13:09:03 CET 1999 Werner Koch +- +- * rndegd.c (do_read): New. +- (gather_random): Changed the implementation. +- +-Mon Mar 8 20:47:17 CET 1999 Werner Koch +- +- * dynload.c (DLSYM_NEEDS_UNDERSCORE): Renamed. +- +-Fri Feb 26 17:55:41 CET 1999 Werner Koch +- +- * md.c: Nearly a total rewrote. +- +-Wed Feb 24 11:07:27 CET 1999 Werner Koch +- +- * cipher.c (context): Fixed alignment +- * md.c: Ditto. +- +- * rndegd.c: New +- +-Mon Feb 22 20:04:00 CET 1999 Werner Koch +- +- * rndegd.c: New. +- +-Wed Feb 10 17:15:39 CET 1999 Werner Koch +- +- * Makefile.am: Modules are now figured out by configure +- * construct.c: New. Generated by configure. Changed all modules +- to work with that. +- * sha1.h: Removed. +- * md5.h: Removed. +- +- * twofish.c: Changed interface to allow Twofish/256 +- +- * rndunix.c (start_gatherer): Die on SIGPIPE. +- +-Wed Jan 20 18:59:49 CET 1999 Werner Koch +- +- * rndunix.c (gather_random): Fix to avoid infinite loop. +- +-Sun Jan 17 11:04:33 CET 1999 Werner Koch +- +- * des.c (is_weak_key): Replace system memcmp due to bugs +- in SunOS's memcmp. +- (des_get_info): Return error on failed selftest. +- * twofish.c (twofish_setkey): Return error on failed selftest or +- invalid keylength. +- * cast5.c (cast_setkey): Ditto. +- * blowfish.c (bf_setkey): Return error on failed selftest. +- +-Tue Jan 12 11:17:18 CET 1999 Werner Koch +- +- * random.c (random_is_faked): New. +- +- * tiger.c: Only compile if we have the u64 type +- +-Sat Jan 9 16:02:23 CET 1999 Werner Koch +- +- * rndunix.c (gather_random): check for setuid. +- +- * Makefile.am: Add a way to staically link random modules +- +-Thu Jan 7 18:00:58 CET 1999 Werner Koch +- +- * md.c (md_stop_debug): Do a flush first. +- (md_open): size of buffer now depends on the secure parameter +- +-Sun Jan 3 15:28:44 CET 1999 Werner Koch +- +- * rndunix.c (start_gatherer): Fixed stupid ==/= bug +- +-1998-12-31 Geoff Keating +- +- * des.c (is_weak_key): Rewrite loop end condition. +- +-Tue Dec 29 14:41:47 CET 1998 Werner Koch +- +- * random.c: add unistd.h for getpid(). +- (RAND_MAX): Fallback value for Sun. +- +-Wed Dec 23 17:12:24 CET 1998 Werner Koch +- +- * md.c (md_copy): Reset debug. +- +-Mon Dec 14 21:18:49 CET 1998 Werner Koch +- +- * random.c (read_random_source): Changed the interface to the +- random gathering function. +- (gather_faked): Use new interface. +- * dynload.c (dynload_getfnc_fast_random_poll): Ditto. +- (dynload_getfnc_gather_random): Ditto. +- * rndlinux.c (gather_random): Ditto. +- * rndunix.c (gather_random): Ditto. +- +-Sat Dec 12 18:40:32 CET 1998 Werner Koch +- +- * dynload.c (SYMBOL_VERSION): New to cope with system which needs +- underscores. +- +- * rndunix.c: Rewrote large parts +- +-Thu Dec 10 20:15:36 CET 1998 Werner Koch +- +- * dynload.c (load_extension): increased needed verbosity level. +- +- * random.c (fast_random_poll): Fallback to a default fast random +- poll function. +- (read_random_source): Always use the faked entroy gatherer if no +- gather module is available. +- * rndlinux.c (fast_poll): Removed. +- * rndunix.c (fast_poll): Removed. +- +- +-Wed Nov 25 12:33:41 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * rand-*.c: Removed. +- * rndlinux.c : New. +- * rndunix.c : New. +- * random.c : Restructured the interface to the gather modules. +- (intialize): Call constructor functions +- (read_radnom_source): Moved to here. +- * dynload.c (dynload_getfnc_gather_random): New. +- (dynload_getfnc_fast_random_poll): New. +- (register_internal_cipher_extension): New. +- (register_cipher_extension): Support of internal modules. +- +-Sun Nov 8 17:44:36 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * rand-unix.c (read_random_source): Removed the assert. +- +-Mon Oct 19 18:34:30 1998 me,,, (wk@tobold) +- +- * pubkey.c: Hack to allow us to give some info about RSA keys back. +- +-Thu Oct 15 11:47:57 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * dynload.c: Support for DLD +- +-Wed Oct 14 12:13:07 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * rand-unix.c: Now uses names from configure for /dev/random. +- +-1998-10-10 SL Baur +- +- * Makefile.am: fix sed -O substitutions to catch -O6, etc. +- +-Tue Oct 6 10:06:32 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * rand-unix.c (HAVE_GETTIMEOFDAY): Fixed (was ..GETTIMEOFTIME :-) +- * rand-dummy.c (HAVE_GETTIMEOFDAY): Ditto. +- +-Mon Sep 28 13:23:09 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * md.c (md_digest): New. +- (md_reset): New. +- +-Wed Sep 23 12:27:02 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * tiger.c (TIGER_CONTEXT): moved "buf", so that it is 64 bit aligned. +- +-Mon Sep 21 06:22:53 1998 Werner Koch (wk@(none)) +- +- * des.c: Some patches from Michael. +- +-Thu Sep 17 19:00:06 1998 Werner Koch (wk@(none)) +- +- * des.c : New file from Michael Roth +- +-Mon Sep 14 11:10:55 1998 Werner Koch (wk@(none)) +- +- * blowfish.c (bf_setkey): Niklas Hernaeus patch to detect weak keys. +- +-Mon Sep 14 09:19:25 1998 Werner Koch (wk@(none)) +- +- * dynload.c (RTLD_NOW): Now defined to 1 if it is undefined. +- +-Mon Sep 7 17:04:33 1998 Werner Koch (wk@(none)) +- +- * Makefile.am: Fixes to allow a different build directory +- +-Thu Aug 6 17:25:38 1998 Werner Koch,mobil,,, (wk@tobold) +- +- * random.c (get_random_byte): Removed and changed all callers +- to use get_random_bits() +- +-Mon Jul 27 10:30:22 1998 Werner Koch (wk@(none)) +- +- * cipher.c : Support for other blocksizes +- (cipher_get_blocksize): New. +- * twofish.c: New. +- * Makefile.am: Add twofish module. +- +-Mon Jul 13 21:30:52 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * random.c (read_pool): Simple alloc if secure_alloc is not set. +- (get_random_bits): Ditto. +- +-Thu Jul 9 13:01:14 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * dynload.c (load_extension): Function now nbails out if +- the program is run setuid. +- +-Wed Jul 8 18:58:23 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * rmd160.c (rmd160_hash_buffer): New. +- +-Thu Jul 2 10:50:30 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * cipher.c (cipher_open): algos >=100 use standard CFB +- +-Thu Jun 25 11:18:25 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * Makefile.am: Support for extensions +- +-Thu Jun 18 12:09:38 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * random.c (mix_pool): simpler handling for level 0 +- +-Mon Jun 15 14:40:48 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * tiger.c: Removed from dist, will reappear as dynload module +- +-Sat Jun 13 14:16:57 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * pubkey.c: Major changes to allow extensions. Changed the inteface +- of all public key ciphers and added the ability to load extensions +- on demand. +- +- * misc.c: Removed. +- +-Wed Jun 10 07:52:08 1998 Werner Koch,mobil,,, (wk@tobold) +- +- * dynload.c: New. +- * cipher.c: Major changes to allow extensions. +- +-Mon Jun 8 22:43:00 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * cipher.c: Major internal chnages to support extensions. +- * blowfish.c (blowfish_get_info): New and made all internal +- functions static, changed heder. +- * cast5.c (cast5_get_info): Likewise. +- +-Mon Jun 8 12:27:52 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * tiger.c (transform): Fix for big endian +- +- * cipher.c (do_cfb_decrypt): Big endian fix. +- +-Fri May 22 07:30:39 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * md.c (md_get_oid): Add a new one for TIGER. +- +-Thu May 21 13:24:52 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * cipher.c: Add support for a dummy cipher +- +-Thu May 14 15:40:36 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * rmd160.c (transform): fixed sigbus - I should better +- add Christian von Roques's new implemenation of rmd160_write. +- +-Fri May 8 18:07:44 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * rand-internal.h, rand-unix.c, rand-w32.c, rand_dummy.c: New +- * random.c: Moved system specific functions to rand-****.c +- +-Fri May 8 14:01:17 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * random.c (fast_random_poll): add call to gethrtime. +- +-Tue May 5 21:28:55 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * elgamal.c (elg_generate): choosing x was not correct, could +- yield 6 bytes which are not from the random pool, tsss, tsss.. +- +-Tue May 5 14:09:06 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * primegen.c (generate_elg_prime): Add arg mode, changed all +- callers and implemented mode 1. +- +-Mon Apr 27 14:41:58 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * cipher.c (cipher_get_keylen): New. +- +-Sun Apr 26 14:44:52 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * tiger.c, tiger.h: New. +- +-Wed Apr 8 14:57:11 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * misc.c (check_pubkey_algo2): New. +- +-Tue Apr 7 18:46:49 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * cipher.c: New +- * misc.c (check_cipher_algo): Moved to cipher.c +- * cast5.c: Moved many functions to cipher.c +- * blowfish.c: Likewise. +- +-Sat Apr 4 19:52:08 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * cast5.c: Implemented and tested. +- +-Wed Apr 1 16:38:27 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * elgamal.c (elg_generate): Faster generation of x in some cases. +- +-Thu Mar 19 13:54:48 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * blowfish.c (blowfish_decode_cfb): changed XOR operation +- (blowfish_encode_cfb): Ditto. +- +-Thu Mar 12 14:04:05 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * sha1.c (transform): Rewrote +- +- * blowfish.c (encrypt): Unrolled for rounds == 16 +- (decrypt): Ditto. +- +-Tue Mar 10 16:32:08 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * rmd160.c (transform): Unrolled the loop. +- +-Tue Mar 10 13:05:14 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * random.c (read_pool): Add pool_balance stuff. +- (get_random_bits): New. +- +- * elgamal.c (elg_generate): Now uses get_random_bits to generate x. +- +- +-Tue Mar 10 11:33:51 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * md.c (md_digest_length): New. +- +-Tue Mar 10 11:27:41 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * dsa.c (dsa_verify): Works. +- +-Mon Mar 9 12:59:08 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * dsa.c, dsa.h: Removed some unused code. +- +-Wed Mar 4 10:39:22 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * md.c (md_open): Add call to fast_random_poll. +- blowfish.c (blowfish_setkey): Ditto. +- +-Tue Mar 3 13:32:54 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * rmd160.c (rmd160_mixblock): New. +- * random.c: Restructured to start with a new RNG implementation. +- * random.h: New. +- +-Mon Mar 2 19:21:46 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * gost.c, gost.h: Removed because they did only contain trash. +- +-Sun Mar 1 16:42:29 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * random.c (fill_buffer): removed error message if n == -1. +- +-Fri Feb 27 16:39:34 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * md.c (md_enable): No init if called twice. +- +-Thu Feb 26 07:57:02 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * primegen.c (generate_elg_prime): Changed the progress printing. +- (gen_prime): Ditto. +- +-Tue Feb 24 12:28:42 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * md5.c, md.5 : Replaced by a modified version of md5.c from +- GNU textutils 1.22. +- +-Wed Feb 18 14:08:30 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * md.c, md.h : New debugging support +- +-Mon Feb 16 10:08:47 1998 Werner Koch (wk@isil.d.shuttle.de) +- +- * misc.c (cipher_algo_to_string): New +- (pubkey_algo_to_string): New. +- (digest_algo_to_string): New. +- +- +- Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +- 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +- +- This file is free software; as a special exception the author gives +- unlimited permission to copy and/or distribute it, with or without +- modifications, as long as this notice is preserved. +- +- This file is distributed in the hope that it will be useful, but +- WITHOUT ANY WARRANTY, to the extent permitted by law; without even the +- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +diff --git a/grub-core/lib/libgcrypt/cipher/ChangeLog-2011 b/grub-core/lib/libgcrypt/cipher/ChangeLog-2011 +index 05516c9..1ce6bd1 100644 +--- a/grub-core/lib/libgcrypt/cipher/ChangeLog-2011 ++++ b/grub-core/lib/libgcrypt/cipher/ChangeLog-2011 +@@ -1,9 +1,37 @@ + 2011-12-01 Werner Koch + +- NB: ChangeLog files are no longer manually maintained. Starting +- on December 1st, 2011 we put change information only in the GIT +- commit log, and generate a top-level ChangeLog file from logs at +- "make dist". See doc/HACKING for details. ++ NB: ChangeLog files are no longer manually maintained. Starting ++ on December 1st, 2011 we put change information only in the GIT ++ commit log, and generate a top-level ChangeLog file from logs at ++ "make dist". See doc/HACKING for details. ++ ++2011-09-16 Werner Koch ++ ++ * primegen.c (_gcry_primegen_init): New. ++ ++2011-09-15 Werner Koch ++ ++ * cipher-cbc.c, cipher-cfb.c, cipher-ofb.c, cipher-ctr.c: New. ++ * cipher-aeswrap.c: New. ++ * cipher-internal.h: New. ++ * cipher.c (cipher_context_alignment_t, struct gcry_cipher_handle) ++ (CTX_MAGIC_NORMAL, CTX_MAGIC_SECURE, NEED_16BYTE_ALIGNED_CONTEXT) ++ (MAX_BLOCKSIZE): Move to cipher-internal.h. ++ (do_aeswrap_encrypt, do_aeswrap_encrypt) ++ (do_cbc_encrypt, do_cbc_decrypt, do_ctr_encrypt, do_ctr_decrypt) ++ (do_ofb_encrypt, do_ofb_decrypt, do_ctr_encrypt): Move to the ++ respective new cipher-foo.c files. ++ (do_ctr_decrypt): Remove. ++ ++2011-09-15 Werner Koch ++ ++ * pubkey.c (gcry_pk_list): Remove. ++ (gcry_pk_unregister): Remove. ++ * md.c (gcry_md_list): Remove. ++ (gcry_md_unregister): Remove. ++ * cipher.c (gcry_cipher_list): Remove. ++ (gcry_cipher_unregister): Remove. ++ * ac.c: Remove. + + 2011-06-29 Werner Koch + +@@ -4245,3 +4273,7 @@ Mon Feb 16 10:08:47 1998 Werner Koch (wk@isil.d.shuttle.de) + This file is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY, to the extent permitted by law; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ ++Local Variables: ++buffer-read-only: t ++End: +diff --git a/grub-core/lib/libgcrypt/cipher/Makefile.am b/grub-core/lib/libgcrypt/cipher/Makefile.am +index 76cdc96..ea9014c 100644 +--- a/grub-core/lib/libgcrypt/cipher/Makefile.am ++++ b/grub-core/lib/libgcrypt/cipher/Makefile.am +@@ -19,65 +19,317 @@ + + # Process this file with automake to produce Makefile.in + +-EXTRA_DIST = Manifest +- + # Need to include ../src in addition to top_srcdir because gcrypt.h is + # a built header. +-AM_CPPFLAGS = -I../src -I$(top_srcdir)/src ++AM_CPPFLAGS = -I../src -I$(top_srcdir)/src -I../mpi -I$(top_srcdir)/mpi + AM_CFLAGS = $(GPG_ERROR_CFLAGS) + ++AM_CCASFLAGS = $(NOEXECSTACK_FLAGS) ++ ++EXTRA_DIST = gost-s-box.c kyber-common.c kyber-kdep.c ++ ++CLEANFILES = gost-s-box$(EXEEXT_FOR_BUILD) ++DISTCLEANFILES = gost-sb.h + + noinst_LTLIBRARIES = libcipher.la + +-GCRYPT_MODULES = @GCRYPT_CIPHERS@ @GCRYPT_PUBKEY_CIPHERS@ @GCRYPT_DIGESTS@ ++GCRYPT_MODULES = @GCRYPT_CIPHERS@ @GCRYPT_PUBKEY_CIPHERS@ \ ++ @GCRYPT_DIGESTS@ @GCRYPT_KDFS@ + + libcipher_la_DEPENDENCIES = $(GCRYPT_MODULES) + libcipher_la_LIBADD = $(GCRYPT_MODULES) + + libcipher_la_SOURCES = \ +-cipher.c pubkey.c ac.c md.c kdf.c \ +-hmac-tests.c \ +-bithelp.h \ +-primegen.c \ +-hash-common.c hash-common.h \ +-rmd.h ++ cipher.c cipher-internal.h \ ++ cipher-cbc.c \ ++ cipher-cfb.c \ ++ cipher-ofb.c \ ++ cipher-ctr.c \ ++ cipher-aeswrap.c \ ++ cipher-ccm.c \ ++ cipher-cmac.c \ ++ cipher-gcm.c \ ++ cipher-poly1305.c \ ++ cipher-ocb.c \ ++ cipher-xts.c \ ++ cipher-eax.c \ ++ cipher-siv.c \ ++ cipher-gcm-siv.c \ ++ pubkey.c pubkey-internal.h pubkey-util.c \ ++ md.c \ ++ mac.c mac-internal.h \ ++ mac-hmac.c mac-cmac.c mac-gmac.c mac-poly1305.c \ ++ poly1305.c poly1305-internal.h \ ++ kem.c sntrup761.c sntrup761.h kyber.c kyber.h kem-ecc.c kem-ecc.h \ ++ mceliece6688128f.c mceliece6688128f.h \ ++ kdf.c kdf-internal.h \ ++ bithelp.h \ ++ bufhelp.h \ ++ bulkhelp.h \ ++ primegen.c \ ++ hash-common.c hash-common.h \ ++ dsa-common.c rsa-common.c \ ++ sha1.h + + EXTRA_libcipher_la_SOURCES = \ +-arcfour.c \ +-blowfish.c \ +-cast5.c \ +-crc.c \ +-des.c \ +-dsa.c \ +-elgamal.c \ +-ecc.c \ +-idea.c \ +-md4.c \ +-md5.c \ +-rijndael.c rijndael-tables.h \ +-rmd160.c \ +-rsa.c \ +-seed.c \ +-serpent.c \ +-sha1.c \ +-sha256.c \ +-sha512.c \ +-tiger.c \ +-whirlpool.c \ +-twofish.c \ +-rfc2268.c \ +-camellia.c camellia.h camellia-glue.c ++ asm-common-aarch64.h \ ++ asm-common-amd64.h \ ++ asm-common-i386.h \ ++ asm-common-s390x.h \ ++ asm-inline-s390x.h \ ++ asm-poly1305-aarch64.h \ ++ asm-poly1305-amd64.h \ ++ asm-poly1305-s390x.h \ ++ aria.c aria-aesni-avx-amd64.S aria-aesni-avx2-amd64.S \ ++ aria-gfni-avx512-amd64.S \ ++ arcfour.c arcfour-amd64.S \ ++ blowfish.c blowfish-amd64.S blowfish-arm.S \ ++ cast5.c cast5-amd64.S cast5-arm.S \ ++ chacha20.c chacha20-amd64-ssse3.S chacha20-amd64-avx2.S \ ++ chacha20-amd64-avx512.S chacha20-armv7-neon.S chacha20-aarch64.S \ ++ chacha20-ppc.c chacha20-s390x.S \ ++ chacha20-p10le-8x.s \ ++ cipher-gcm-ppc.c cipher-gcm-intel-pclmul.c cipher-gcm-armv7-neon.S \ ++ cipher-gcm-armv8-aarch32-ce.S cipher-gcm-armv8-aarch64-ce.S \ ++ crc.c crc-intel-pclmul.c crc-armv8-ce.c \ ++ crc-armv8-aarch64-ce.S \ ++ crc-ppc.c \ ++ des.c des-amd64.S \ ++ dsa.c \ ++ elgamal.c \ ++ ecc.c ecc-curves.c ecc-misc.c ecc-common.h \ ++ ecc-ecdh.c ecc-ecdsa.c ecc-eddsa.c ecc-gost.c ecc-sm2.c \ ++ idea.c \ ++ gost28147.c gost.h \ ++ gostr3411-94.c \ ++ md4.c \ ++ md5.c \ ++ poly1305-s390x.S poly1305-amd64-avx512.S \ ++ poly1305-p10le.s \ ++ rijndael.c rijndael-internal.h rijndael-tables.h \ ++ rijndael-aesni.c rijndael-padlock.c \ ++ rijndael-amd64.S rijndael-arm.S \ ++ rijndael-ssse3-amd64.c rijndael-ssse3-amd64-asm.S \ ++ rijndael-vaes.c rijndael-vaes-avx2-amd64.S \ ++ rijndael-vaes-i386.c rijndael-vaes-avx2-i386.S \ ++ rijndael-armv8-ce.c rijndael-armv8-aarch32-ce.S \ ++ rijndael-armv8-aarch64-ce.S rijndael-aarch64.S \ ++ rijndael-ppc.c rijndael-ppc9le.c \ ++ rijndael-p10le.c rijndael-gcm-p10le.s \ ++ rijndael-ppc-common.h rijndael-ppc-functions.h \ ++ rijndael-s390x.c \ ++ rmd160.c \ ++ rsa.c \ ++ salsa20.c salsa20-amd64.S salsa20-armv7-neon.S \ ++ scrypt.c \ ++ seed.c \ ++ serpent.c serpent-sse2-amd64.S serpent-avx2-amd64.S \ ++ serpent-avx512-x86.c serpent-armv7-neon.S \ ++ sm4.c sm4-aesni-avx-amd64.S sm4-aesni-avx2-amd64.S \ ++ sm4-gfni-avx2-amd64.S sm4-gfni-avx512-amd64.S \ ++ sm4-aarch64.S sm4-armv8-aarch64-ce.S sm4-armv9-aarch64-sve-ce.S \ ++ sm4-ppc.c \ ++ sha1.c sha1-ssse3-amd64.S sha1-avx-amd64.S sha1-avx-bmi2-amd64.S \ ++ sha1-avx2-bmi2-amd64.S sha1-armv7-neon.S sha1-armv8-aarch32-ce.S \ ++ sha1-armv8-aarch64-ce.S sha1-intel-shaext.c \ ++ sha256.c sha256-ssse3-amd64.S sha256-avx-amd64.S \ ++ sha256-avx2-bmi2-amd64.S \ ++ sha256-armv8-aarch32-ce.S sha256-armv8-aarch64-ce.S \ ++ sha256-intel-shaext.c sha256-ppc.c \ ++ sha512.c sha512-ssse3-amd64.S sha512-avx-amd64.S \ ++ sha512-avx2-bmi2-amd64.S sha512-avx512-amd64.S \ ++ sha512-armv7-neon.S sha512-armv8-aarch64-ce.S sha512-arm.S \ ++ sha512-ppc.c sha512-ssse3-i386.c \ ++ sm3.c sm3-avx-bmi2-amd64.S sm3-aarch64.S sm3-armv8-aarch64-ce.S \ ++ keccak.c keccak_permute_32.h keccak_permute_64.h \ ++ keccak-armv7-neon.S keccak-amd64-avx512.S \ ++ stribog.c \ ++ tiger.c \ ++ whirlpool.c whirlpool-sse2-amd64.S \ ++ twofish.c twofish-amd64.S twofish-arm.S twofish-aarch64.S \ ++ twofish-avx2-amd64.S \ ++ rfc2268.c \ ++ camellia.c camellia.h camellia-glue.c camellia-aesni-avx-amd64.S \ ++ camellia-aesni-avx2-amd64.h \ ++ camellia-gfni-avx2-amd64.S camellia-gfni-avx512-amd64.S \ ++ camellia-vaes-avx2-amd64.S camellia-aesni-avx2-amd64.S \ ++ camellia-arm.S camellia-aarch64.S camellia-aarch64-ce.c \ ++ camellia-simd128.h camellia-ppc8le.c camellia-ppc9le.c \ ++ blake2.c \ ++ blake2b-amd64-avx2.S blake2b-amd64-avx512.S \ ++ blake2s-amd64-avx.S blake2s-amd64-avx512.S ++ ++gost28147.lo: gost-sb.h ++gost-sb.h: gost-s-box$(EXEEXT_FOR_BUILD) ++ ./gost-s-box$(EXEEXT_FOR_BUILD) $@ ++ ++gost-s-box$(EXEEXT_FOR_BUILD): gost-s-box.c ++ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) \ ++ $(CPPFLAGS_FOR_BUILD) -o $@ $(srcdir)/gost-s-box.c ++ + + if ENABLE_O_FLAG_MUNGING +-o_flag_munging = sed -e 's/-O\([2-9s][2-9s]*\)/-O1/' -e 's/-Ofast/-O1/g' ++o_flag_munging = sed -e 's/[[:blank:]]-O\([2-9sgz][2-9sgz]*\)/ -O1 /' -e 's/[[:blank:]]-Ofast/ -O1 /g' + else + o_flag_munging = cat + endif + + + # We need to lower the optimization for this module. +-tiger.o: $(srcdir)/tiger.c +- `echo $(COMPILE) -c $(srcdir)/tiger.c | $(o_flag_munging) ` ++tiger.o: $(srcdir)/tiger.c Makefile ++ `echo $(COMPILE) -c $< | $(o_flag_munging) ` + +-tiger.lo: $(srcdir)/tiger.c +- `echo $(LTCOMPILE) -c $(srcdir)/tiger.c | $(o_flag_munging) ` ++tiger.lo: $(srcdir)/tiger.c Makefile ++ `echo $(LTCOMPILE) -c $< | $(o_flag_munging) ` ++ ++ ++# We need to disable instrumentation for these modules as they use cc as ++# thin assembly front-end and do not tolerate in-between function calls ++# inserted by compiler as those functions may clobber the XMM registers. ++if ENABLE_INSTRUMENTATION_MUNGING ++instrumentation_munging = sed \ ++ -e 's/-fsanitize[=,\-][=,a-z,A-Z,0-9,\,,\-]*//g' \ ++ -e 's/-fprofile[=,\-][=,a-z,A-Z,0-9,\,,\-]*//g' \ ++ -e 's/-fcoverage[=,\-][=,a-z,A-Z,0-9,\,,\-]*//g' ++else ++instrumentation_munging = cat ++endif ++ ++rijndael-aesni.o: $(srcdir)/rijndael-aesni.c Makefile ++ `echo $(COMPILE) -c $< | $(instrumentation_munging) ` ++ ++rijndael-aesni.lo: $(srcdir)/rijndael-aesni.c Makefile ++ `echo $(LTCOMPILE) -c $< | $(instrumentation_munging) ` ++ ++rijndael-ssse3-amd64.o: $(srcdir)/rijndael-ssse3-amd64.c Makefile ++ `echo $(COMPILE) -c $< | $(instrumentation_munging) ` ++ ++rijndael-ssse3-amd64.lo: $(srcdir)/rijndael-ssse3-amd64.c Makefile ++ `echo $(LTCOMPILE) -c $< | $(instrumentation_munging) ` ++ ++cipher-gcm-intel-pclmul.o: $(srcdir)/cipher-gcm-intel-pclmul.c Makefile ++ `echo $(COMPILE) -c $< | $(instrumentation_munging) ` ++ ++cipher-gcm-intel-pclmul.lo: $(srcdir)/cipher-gcm-intel-pclmul.c Makefile ++ `echo $(LTCOMPILE) -c $< | $(instrumentation_munging) ` ++ ++sha1-intel-shaext.o: $(srcdir)/sha1-intel-shaext.c Makefile ++ `echo $(COMPILE) -c $< | $(instrumentation_munging) ` ++ ++sha1-intel-shaext.lo: $(srcdir)/sha1-intel-shaext.c Makefile ++ `echo $(LTCOMPILE) -c $< | $(instrumentation_munging) ` ++ ++sha256-intel-shaext.o: $(srcdir)/sha256-intel-shaext.c Makefile ++ `echo $(COMPILE) -c $< | $(instrumentation_munging) ` ++ ++sha256-intel-shaext.lo: $(srcdir)/sha256-intel-shaext.c Makefile ++ `echo $(LTCOMPILE) -c $< | $(instrumentation_munging) ` ++ ++sha256-ssse3-i386.o: $(srcdir)/sha256-ssse3-i386.c Makefile ++ `echo $(COMPILE) -c $< | $(instrumentation_munging) ` ++ ++sha256-ssse3-i386.lo: $(srcdir)/sha256-ssse3-i386.c Makefile ++ `echo $(LTCOMPILE) -c $< | $(instrumentation_munging) ` ++ ++crc-intel-pclmul.o: $(srcdir)/crc-intel-pclmul.c Makefile ++ `echo $(COMPILE) -c $< | $(instrumentation_munging) ` ++ ++crc-intel-pclmul.lo: $(srcdir)/crc-intel-pclmul.c Makefile ++ `echo $(LTCOMPILE) -c $< | $(instrumentation_munging) ` ++ ++if ENABLE_PPC_VCRYPTO_EXTRA_CFLAGS ++ppc_vcrypto_cflags = -O2 -maltivec -mvsx -mcrypto ++else ++ppc_vcrypto_cflags = ++endif ++ ++if ENABLE_AARCH64_NEON_INTRINSICS_EXTRA_CFLAGS ++aarch64_neon_cflags = -O2 -march=armv8-a+crypto ++else ++aarch64_neon_cflags = ++endif ++ ++rijndael-ppc.o: $(srcdir)/rijndael-ppc.c Makefile ++ `echo $(COMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++rijndael-ppc.lo: $(srcdir)/rijndael-ppc.c Makefile ++ `echo $(LTCOMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++rijndael-ppc9le.o: $(srcdir)/rijndael-ppc9le.c Makefile ++ `echo $(COMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++rijndael-ppc9le.lo: $(srcdir)/rijndael-ppc9le.c Makefile ++ `echo $(LTCOMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++rijndael-p10le.o: $(srcdir)/rijndael-p10le.c Makefile ++ `echo $(COMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++rijndael-p10le.lo: $(srcdir)/rijndael-p10le.c Makefile ++ `echo $(LTCOMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++sha256-ppc.o: $(srcdir)/sha256-ppc.c Makefile ++ `echo $(COMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++sha256-ppc.lo: $(srcdir)/sha256-ppc.c Makefile ++ `echo $(LTCOMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++sha512-ppc.o: $(srcdir)/sha512-ppc.c Makefile ++ `echo $(COMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++sha512-ppc.lo: $(srcdir)/sha512-ppc.c Makefile ++ `echo $(LTCOMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++chacha20-ppc.o: $(srcdir)/chacha20-ppc.c Makefile ++ `echo $(COMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++chacha20-ppc.lo: $(srcdir)/chacha20-ppc.c Makefile ++ `echo $(LTCOMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++crc-ppc.o: $(srcdir)/crc-ppc.c Makefile ++ `echo $(COMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++crc-ppc.lo: $(srcdir)/crc-ppc.c Makefile ++ `echo $(LTCOMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++cipher-gcm-ppc.o: $(srcdir)/cipher-gcm-ppc.c Makefile ++ `echo $(COMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++cipher-gcm-ppc.lo: $(srcdir)/cipher-gcm-ppc.c Makefile ++ `echo $(LTCOMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++camellia-ppc8le.o: $(srcdir)/camellia-ppc8le.c Makefile ++ `echo $(COMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++camellia-ppc8le.lo: $(srcdir)/camellia-ppc8le.c Makefile ++ `echo $(LTCOMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++camellia-ppc9le.o: $(srcdir)/camellia-ppc9le.c Makefile ++ `echo $(COMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++camellia-ppc9le.lo: $(srcdir)/camellia-ppc9le.c Makefile ++ `echo $(LTCOMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++camellia-aarch64-ce.o: $(srcdir)/camellia-aarch64-ce.c Makefile ++ `echo $(COMPILE) $(aarch64_neon_cflags) -c $< | $(instrumentation_munging) ` ++ ++camellia-aarch64-ce.lo: $(srcdir)/camellia-aarch64-ce.c Makefile ++ `echo $(LTCOMPILE) $(aarch64_neon_cflags) -c $< | $(instrumentation_munging) ` ++ ++sm4-ppc.o: $(srcdir)/sm4-ppc.c Makefile ++ `echo $(COMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++sm4-ppc.lo: $(srcdir)/sm4-ppc.c Makefile ++ `echo $(LTCOMPILE) $(ppc_vcrypto_cflags) -c $< | $(instrumentation_munging) ` ++ ++ ++if ENABLE_X86_AVX512_INTRINSICS_EXTRA_CFLAGS ++avx512f_cflags = -mavx512f ++else ++avx512f_cflags = ++endif ++ ++serpent-avx512-x86.o: $(srcdir)/serpent-avx512-x86.c Makefile ++ `echo $(COMPILE) $(avx512f_cflags) -c $< | $(instrumentation_munging) ` ++ ++serpent-avx512-x86.lo: $(srcdir)/serpent-avx512-x86.c Makefile ++ `echo $(LTCOMPILE) $(avx512f_cflags) -c $< | $(instrumentation_munging) ` +diff --git a/grub-core/lib/libgcrypt/cipher/Manifest b/grub-core/lib/libgcrypt/cipher/Manifest +deleted file mode 100644 +index 0cd64f7..0000000 +--- a/grub-core/lib/libgcrypt/cipher/Manifest ++++ /dev/null +@@ -1,73 +0,0 @@ +-# Manifest - checksums of the cipher directory +-# Copyright 2003 Free Software Foundation, Inc. +-# +-# This file is part of Libgcrypt. +-# +-# Libgcrypt is free software; you can redistribute it and/or modify +-# it under the terms of the GNU Lesser general Public License as +-# published by the Free Software Foundation; either version 2.1 of +-# the License, or (at your option) any later version. +-# +-# Libgcrypt is distributed in the hope that it will be useful, +-# but WITHOUT ANY WARRANTY; without even the implied warranty of +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-# GNU Lesser General Public License for more details. +-# +-# You should have received a copy of the GNU Lesser General Public +-# License along with this program; if not, write to the Free Software +-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA +- +-# Checksums for all source files in this directory. Format is +-# filename, blanks, base-64 part of an OpenPGP detached signature +-# without the header lines. Blank lines and lines beginning with a +-# hash mark are ignored. A tool to process this file is available by +-# cvs -d :pserver:anoncvs@cvs.gnupg.org:/cvs/wk co misc-scripts/manifest-tool +-# +-# The special entry "$names$" holds a signature over all sorted +-# filenames excluding itself. +- +- +-# Algorithm API +-cipher.c iQCVAwUAQDzrVjEAnp832S/7AQIPDgP+OVJ/YNWY5m7c09EBbPAzL/WsGoj6wrBNMmkRlMOqTHeh+OOtjuFHt1f9uhfM2Nzl7sJ5+h4ryZKLEZmQPRMTZTnAqkvGdsrJWJnigUA9QwYdV0ONqC9C63gpuG465gO9TZVOqlQu/FTxSRuTQYUulkaBNG71n8nZEOusBVwV2YA==58xH +-pubkey.c iQCVAwUAP9XQ3jEAnp832S/7AQJ5UgQAyHfEBvPVJ8wTRg8c7ixS2GiVmIgwIo5tvQaiQJTPWASevvYrB+2Z2qa9cATyu50ACjLzbaquGBgPzjJV3dU/qttT1gCqRuN/LCNvXFe5qnIZezejc3RAadFNTw/pOTHq0wxD1Keg66ruei9R36Nba59pEQIWIBXTfubRft2hMYk==E09t +-ac.c iQCVAwUAQDzsOzEAnp832S/7AQJCBQP/WI6EV/dsR4rmha6RVhvkjZo17kQ8z6pIl5J3cXOvqEkIFeD2HYu3HHrWST5l7yXlffhpDkVHkfMih4ruK76q6Fm0dxZ98pO4C/dVtgimlvvcy/wOQjpzsE0fYAe1BYdg81LJ09X33vW5x6C29lunfKROO2tPlV5i8ffeoFvmMF8==j26g +-md.c iQCVAwUAP+NFGjEAnp832S/7AQJs8wP/Qdk0EAKsyr3O1/pmOSN8AG4rPKbd6KDTzvoBPAN4upFwKYY4hWwvy12Q3YU9DmECrzZkRCXHR7mljVQKs6B7CRZJKjFKmOELpcJDtKvu40vTs1bOH4k9iJYZpGgRA83nkQ+ELAcphAbCA+KIpVr2K4mCJAB0FhpC2uOQ50JHAko==BeF6 +-primegen.c iQCVAwUAQDzsoDEAnp832S/7AQKYRwP/TqAQBm1rHTnF0HYE05PqXfWlOqa6EosqVpaOcs/OIW6PaqX0xH1UlrukK7jNOjK3xC4o1qNQ1UKzz2dvQaq1bMvNNizeavxAh10SJZc0hIc/ofc83IbjLh8SZVWQ67JxjsUd3DOXmSmhPZ+Pqd7cUIiw8fDoF+I9EZqy3COu1wY==1ebT +- +-# Algorithm implementations +-arcfour.c iQCVAwUAP9XR/TEAnp832S/7AQJcRwP6AlvYEx++fpT4mIYo0xRDqKEQeqMQvbaRhIg2eV74JxItpHa3q5YsYIl+n1yUz5g35JRWWXSWmAZBwO5wLKsHii4kRUhgrKWnSoQZoPpl49L5+N3R58ON3S0ru5lsBiEJEze3xplf2vqwrH9v1QHVD+gU7UTlfNqrIJoOUXN+1O4==Tq+x +-blowfish.c iQCVAwUAP9XTETEAnp832S/7AQJaEgQAgiqqfuO+zQtscgTB0rvOzVymIKjRKjYhFuLjVuc79G4z1RCAffvIn/YM2d7kt+Z/QF7zjcTAOgETCQL1XokpX2zz9HPAMi2tlDY5zsDufTNqj0n4WBL9nM7w6XAvsiwP1B3bqCTv9SjJV4KbxJ58vw1yQE+sqW74R/QIHFvC7mU==wZnX +-cast5.c iQCVAwUAP9XT6DEAnp832S/7AQJ3xgP/ehLjEN3GELGudbqeo91Xd+PqitHrkuBbtRIYX7Udd/fyXLN+h8rMJVyIQX2m+mpxbBxudVU3x8/DNT8B0ZHAwK6qqJmEBLLhEYPgIuF76i9LMrP1KqUPhAwRZ2OppjIIugBQ+rP74aD4eLyd/aKQHNuXML8QGWR6KwQShohXM5I==/BRh +-crc.c iQCVAwUAP7ouejEAnp832S/7AQIgwQQApg5Nm63tH5DQkbN+zPzMO9Ygoj3ukxfFTyTBPYSXYKMiTjEbESegaU40uN8jnz2vprcIQWcgZfzO4+opEJMcI35aPwzEk0vKOp0S/PrBLUY2rJfnDVkX5XgJFZa2Q7LLe826UEBzTVYW924utiCCe8oOaOEWVNpg1mqdknu3M9o==kz5D +-des.c iQCVAwUAQCN2oDEAnp832S/7AQL/jwP6Auoq6nZCDBjpgc9tDzuIRwa9DqyuM3gX94uvgEpUwdHszb2bG43dz03kVmcYxtj1MzXbyCeCZOwox0b2SKmLgxIbrNP6yGbzVdTj6592gDYuf/ZXmc1ZNJ1DDldcPQ0n9fXUipUPwyPaNWo3mSZaNcMKSWWzdK0J6ciG6nk7SWI==9k/t +-dsa.c iQCVAwUAP9XZHDEAnp832S/7AQLBRgP/XrBzTEYx5ccMj1MMb6sg37liEHdIyyy49zjvt6jUqxj4RuwVEN8S6v3u4q/QyJkHAi1E0EkREgENlyHW6PKWhYbcrd0vPIAN15yjnl2yqtrCrJImexUCoqJJewK0E4JOicGbabTil8MZjk+mbhEPnjJBqOkyP1w0i31pEDgE/8M==pC8s +-elgamal.c iQCVAwUAP9XbYzEAnp832S/7AQLXagQA3HrvspZfbTGgmUH0IqLQTJ0exUPxJv5DET2TvoIy62trDmMN6lTAj5P+a7jQ8udcu0w+mR2vXUHcxUpNA2PxLaMwGzNSY4zRDNe9r3SFTDrFm6m4y9Ko2e8XtEA+WF6P/XLpck4Jn7vMEDmVGPwkNd22kXFFE8dBGwG6i5Hk1Mk==oBUs +-md4.c iQCVAwUAP9h50DEAnp832S/7AQJhHgQAzNA/B6MWFDlCtPkIVaW8RpP1Eg0ZNMsy0s7SJkopOCBlu6CwXUOKe+8ppcSxhjYKh4i4uQr/QtfipYlBjzKJGnrafoF/NugXNCOHSTGT11TvK7mCiBuUMVgvZGAlOJImk6eTTfUjRrMfaXM/SWl8bdJ4ZpzdjEyVh89r7I5JrGk==x2UD +-md5.c iQCVAwUAP9h7LzEAnp832S/7AQJUGQP/c0cbf6WZXCzmjufHxiE9FAQBzTsA0WtaNqdFcHl7fhmikGtknlaED8n5a7eYd/C481UQW6Wgq/oZdsvgoPWPhG3fOCy2CFP9cZVXITuMSf0ucyZTFUJNO15fnZ+nDfsUv+JPdv1aSeRinAUtfAcSKfkSyR9BCPZvkx+tgU6cphU==Zv+h +-rijndael.c iQCVAwUAP9h9cTEAnp832S/7AQKF1AP+P2L/tPqDJRDg+/fwbOk8Ts0MNxnvvYEm3gE73TKuLt1S+B2+jkrZcKNvM5VGPnVMJbnS0lmIK04nmedHCOftGTOwhGulZAHHIaKGystT3Jql4iPws/JMgAjE7Fyxh5WZMtB9yEljKBpJ5XNqhrMvvxcHpnyP3+YzIXNwzk34V+c==dJ5k +-rmd160.c iQCVAwUAP9h+bTEAnp832S/7AQK1OgP+PNKF6Nzi6X93easVlksdLqKEsArCAw2QjGWDGyxTnbiJM55qAl9JxR1mn3V+oOL7izLLwTt6EYK9evhzfcxY5N5Mni85RAcsLPsuAfQDEzjI6GUWHtQUKPbM+BaorzfhQjYFSZyvum/dZYJ/WfiwwwhqqIKyVU2ZFSqA38YGC/c==9jdA +-rsa.c iQCVAwUAP9iHIzEAnp832S/7AQKAYwQAuWtnMte54QHN+Hij9t4sGuypXogajOb1vQQwGgS0fKsaBZsuSP2amze4o5diIvsQTsFQ4CzjvqoCVuBDoHM3xkSD8wGDizgvtCamAxkdbF7wmzldKFn8SpJqlVwWQMP6kk1IjXHEuYb4IDWGTbVMhfEu+eOlU8+PSK4IhZqNvt4==/3hp +-serpent.c iQCVAwUAP9h/VzEAnp832S/7AQLyCwP/d1zbmb7l/PriZNa9/Z7mo01XFe5MnAqCfIwhl9GjeaMszcoS37jECNq5nLvrTTFIIJpm3rvBePwiCG4Wwx1I18HCxaP198pcSaR+BLOJ3Aj52EZPrxtqlDKuFr38ZOP5giyUqUYVYGVdrz4kRMNWAZQK53GeJnGhXCnhxojLEgA==ck46 +-sha1.c iQCVAwUAP9iATTEAnp832S/7AQKcSwQAwAs/HnNqho3lU1ZUgCPNt5P2/Brm6W21+wWWGKJkSrra/c4NYVKJGDDwlsFE0b9ln1uZt7bHReFkKXK3JnrKTmNVcx/Cy64iCMRNMhaM72Mqy7wWx5yHBAmMBxzFGnNQKbmeY52zeGih5HsNLSibc2pPuOViWo2JPJ5Ci/wIwl8==/wtO +-sha256.c iQCVAwUAP9iAtzEAnp832S/7AQJD2QP/UqvL0hhjG1wEFbGrdkV9tba1sMDXdnnK6X7HdLuRpVAgNiQiFf8JDmntd/dZ2Q71p4Uae2ctqve4WoEijPUZPjACnpuZfx0SEQL0lQBkwxzJp7lz9ujVtwQ2cM/aYexJkXcWgGcloJNLM3JbWPGIJnuYbr/IwJ6RQF9vgj0357o==UWO1 +-sha512.c iQCVAwUAP9iBTDEAnp832S/7AQIPBAQA28CJSUQLiW0s2x9u8/OH2eKnxPjA4sZmb50WP7920Lem66P31C3BrOqwfBot4RLhjL+zh/+Uc4s3HPwApZuj9E4BxNMlqLv+Tqk++DAbdaOeYT4jeUt+mlhQQ6mH/RDsy32rZsNsGQ2bUGxazZmfG++PL3JyhawqCy00SUDr/o0==H+0X +-tiger.c iQCVAwUAP9iCfjEAnp832S/7AQKufwP/fryv3MqSOYY+90325DH7X3/CtekxeooN0scGsHX0fxBakWSMecTNrj33KPddLS46gU/S89zIc2N/Bw/7EVIAXVFA3/3Ip+OrFOuIMO4Py1sCdB8o2Y+5ygv8iXLcsXIq1O0av79i9g774V3uaXa2qN9ZnXe0AEhcy8FHJ2i/wro==5XVB +-twofish.c iQCVAwUAP9iD6TEAnp832S/7AQKUnQP/Rq8FaYeHTG7HbZuqAs9pbPitzjDbkdZddmInWR7NmevBkKvhsJALjVooc0KGQfo2lAAmy3Xi/4QQN8VPn51DVjDIgf7x+DQh/9TFJHMccxI9asUgi4+TNnmMqLU1k3N8S2PjyZ1sjeC8B79fKPpwCzj72WkqPkzZw3l2jArr+dU==NdJT +-rfc2268.c iQCVAwUAQCN+3jEAnp832S/7AQLv1gQA1hJh29hAjKi4uLSGxXvJ6cyYmPdmevdKrbLnuHZWtHe4xvCgy/nTdEojEpxgLp/hL/ogasuWRC1W16Wiz9ryxf7YR0uhZWayO/bQNagpfU5MIkJTLuKqqgpwYumCSQfOugXVAqcgEzj+13eeyJaFVrzwrNa67sh84nmbjOjNjvE==0zBq +- +-# Random number related +-random.c iQCVAwUAP7nsITEAnp832S/7AQK4SAQAtvfUgrtGOQ2PlxGMla0qJLPHjJacMwgq0ecusiI79elPdDsFfCCk6dK1Ug2kFbNm22nCGHNcUquqbX7noi7ZVQnmPBQXzyLNZd7GmrawRZfdlRerTUDBpSnR8V8ui/5+YYp627E7kKGC0hPSgqXFql6oBMIfno0LZwFJTjIevRY==L419 +-random.h iQCVAwUAP7ovKDEAnp832S/7AQJ3bQQAjnPebnyTC7sphAv2I7uIz+yPgw1ZfbVhLv+OiWDlO9ish+fRyyMpy+HELBOgZjJdgRegqhlZC6qyns5arM/VglYi+PzvdLO3hIqHE/YFfpIFPz8wBrcmlqrYyd3CsGqcYsfjocXNttCBLeSWmoJ09ltKQH8yzJf3oAgN6X1yuc4==eNoU +-rand-internal.h iQCVAwUAP7ouvDEAnp832S/7AQLYnAQAhdI7ERoJVCkV8GiV7MjaUxv1WIL7iZ+jIOvVhv4fNyhCGCGoEtTjkyput/lj7Nsh3FXEqRhypGGrCLf47x/gua5n+BwffogxVyUDqiOyyGhNTPpe3fQcNBvbPCtco8yMK4GJO5G3BqzlPyN+BMeogLymyV6Sm1mvh5LZDyAFbfQ==tZSE +-rndlinux.c iQCVAwUAP9iPYTEAnp832S/7AQL6/AP/ZDrbOkVuB9qJ7sKeX1MImZEsz3mi0xPovJzaBtBU7a0idcUKrWYOvQFWRlLUeq0iCT6+h2l5bniP7q7hepzlKa+VPY9VWaQthqeJm2l5LN6QQ5PyMfBq04QuBncw9BJnCGmEyTLt3RxIXBAPdxmiVxtcRIFUqCBtQvoUXGLvemw==t37k +-rndegd.c iQCVAwUAP9iPRDEAnp832S/7AQImBQP/WHKg+hKXcm1pQvilzML0jZpwK5PAMM4uBnnPJNIXWOYBO6I/Xg9d/tPLg8NlmmtyQCo2Eu0ybDSt+8mu+dWveAys+0LTi0MIqeP9BMzCKz8dnWH6+S8huLXwTF3m0IrqM0JLb6b71GK9SOq6sWQ22yW5vf61hXP8kH9dhIaoMZs==FaHV +-rndunix.c iQCVAwUAP9iQlzEAnp832S/7AQL/KgQA29GnvcD4Xb5qjDMBgW9THEE4+4lfex/6k+Fh0IT61OLJsWVLJ7bJpRntburw4uQm4Tf7CO8vaiDFDYhKKrzXeOF1fmdpcL8hA+fNp9I/MUOc4e9kN9+YJ9wikVa0SZj1OBfhzgcFLd1xOtulkr3ii52HLF9vhrxzkgVwvD10Bi8==2cML +-rndw32.c iQCVAwUAP9iRKDEAnp832S/7AQIuaAQA3AJr3WqnxNDsWCIdvehf8Suotthj+laX8nJsvDfFhXPKcXDpsg0wTTXSnnKgyED53+uYiMDnVRsxeWAyhKwvx1MjjlaSMMjzbH6isWTH8FaWpLgrxEkXoPeNqYf5FXpdUkcUxGX2RkQeuX/cIfiHLNE9CV0usaF2jysjBX2iERY==EEnO +- +-# Helper +-bithelp.h iQCVAwUAP7ouPTEAnp832S/7AQKXggQAqjcgvihIF3WclOgw1JV2rbARw4ISIDRMFqdaNCqBRx6BwEz3UGsEIlz6+iR1sS/reqN61WvtjLb+D0+tujAkGrgQJhFLG85WtG2tB5UVoI3am1fpkwiRm+bR4rv0rGk0BYk81bC7+l4KrK9o5lVp4lCsrorlUKsd48lNmBHyAXM==mDDN +-rmd.h iQCVAwUAP7oumjEAnp832S/7AQJiJQP/V4bJwjZaYndJzV+KRnIDbl1koHuw+ZK5heMYVu8Qk4ylqv//BGyeRa3jZCcfPHI35q6HilCs2VBm8hiBMjHSqY/VPn2ZQ0yg/lt6qEvl7YjsLmyMICvjG+ncszHoq9pRvnF3vTnM18sPIioXLk8fskuM0XOCNBs0ARBAQjY9UGI==olUN +- +-# Configuration +-Makefile.am iQCVAwUAQCN33TEAnp832S/7AQKFJAQAz7BDkC814q+QiuE/jnutJHR5qlgbrm3ikGbQwdRzYUscst4bCCWy3uKL/sIPGLg+JQXtF5FnsQy3s4D9BOYhp72cA9ktYK65hhi4pNm/JQ0lXkZMNfk8Go5lNzKezlWwHvkMwRXR0Fep0wPdyeaKW5BfaW2ABvgep6Bp+hHEbyg==zSyi +-$names$ iQCVAwUAQCN3EDEAnp832S/7AQJXLAP8DvHTpm5DkTF35EmzeKpi9ie59AZcZanD19ir/e/7+PaQxr2riuLHDGwFKTju+dcvvBsqrygXOC378GXVWzIF2OZwS4EdDcJ+pgojo9UpsqpKsJHouY4Ugx5cQialxba462kUn8hcihSBnMyc4LzbJ5WQ4puQuqy544d2x94+2ms==G4Ls +diff --git a/grub-core/lib/libgcrypt/cipher/ac.c b/grub-core/lib/libgcrypt/cipher/ac.c +deleted file mode 100644 +index 63f6fcd..0000000 +--- a/grub-core/lib/libgcrypt/cipher/ac.c ++++ /dev/null +@@ -1,3301 +0,0 @@ +-/* ac.c - Alternative interface for asymmetric cryptography. +- Copyright (C) 2003, 2004, 2005, 2006 +- 2007, 2008 Free Software Foundation, Inc. +- +- This file is part of Libgcrypt. +- +- Libgcrypt is free software; you can redistribute it and/or modify +- it under the terms of the GNU Lesser general Public License as +- published by the Free Software Foundation; either version 2.1 of +- the License, or (at your option) any later version. +- +- Libgcrypt is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with this program; if not, see . +- */ +- +-#include +-#include +-#include +-#include +-#include +-#include +- +-#include "g10lib.h" +-#include "cipher.h" +-#include "mpi.h" +- +- +- +-/* At the moment the ac interface is a wrapper around the pk +- interface, but this might change somewhen in the future, depending +- on how many people prefer the ac interface. */ +- +-/* Mapping of flag numbers to the according strings as it is expected +- for S-expressions. */ +-static struct number_string +-{ +- int number; +- const char *string; +-} ac_flags[] = +- { +- { GCRY_AC_FLAG_NO_BLINDING, "no-blinding" }, +- }; +- +-/* The positions in this list correspond to the values contained in +- the gcry_ac_key_type_t enumeration list. */ +-static const char *ac_key_identifiers[] = +- { +- "private-key", +- "public-key" +- }; +- +-/* These specifications are needed for key-pair generation; the caller +- is allowed to pass additional, algorithm-specific `specs' to +- gcry_ac_key_pair_generate. This list is used for decoding the +- provided values according to the selected algorithm. */ +-struct gcry_ac_key_generate_spec +-{ +- int algorithm; /* Algorithm for which this flag is +- relevant. */ +- const char *name; /* Name of this flag. */ +- size_t offset; /* Offset in the cipher-specific spec +- structure at which the MPI value +- associated with this flag is to be +- found. */ +-} ac_key_generate_specs[] = +- { +- { GCRY_AC_RSA, "rsa-use-e", offsetof (gcry_ac_key_spec_rsa_t, e) }, +- { 0 } +- }; +- +-/* Handle structure. */ +-struct gcry_ac_handle +-{ +- int algorithm; /* Algorithm ID associated with this +- handle. */ +- const char *algorithm_name; /* Name of the algorithm. */ +- unsigned int flags; /* Flags, not used yet. */ +- gcry_module_t module; /* Reference to the algorithm +- module. */ +-}; +- +-/* A named MPI value. */ +-typedef struct gcry_ac_mpi +-{ +- char *name; /* Self-maintained copy of name. */ +- gcry_mpi_t mpi; /* MPI value. */ +- unsigned int flags; /* Flags. */ +-} gcry_ac_mpi_t; +- +-/* A data set, that is simply a list of named MPI values. */ +-struct gcry_ac_data +-{ +- gcry_ac_mpi_t *data; /* List of named values. */ +- unsigned int data_n; /* Number of values in DATA. */ +-}; +- +-/* A single key. */ +-struct gcry_ac_key +-{ +- gcry_ac_data_t data; /* Data in native ac structure. */ +- gcry_ac_key_type_t type; /* Type of the key. */ +-}; +- +-/* A key pair. */ +-struct gcry_ac_key_pair +-{ +- gcry_ac_key_t public; +- gcry_ac_key_t secret; +-}; +- +- +- +-/* +- * Functions for working with data sets. +- */ +- +-/* Creates a new, empty data set and store it in DATA. */ +-gcry_error_t +-_gcry_ac_data_new (gcry_ac_data_t *data) +-{ +- gcry_ac_data_t data_new; +- gcry_error_t err; +- +- if (fips_mode ()) +- return gpg_error (GPG_ERR_NOT_SUPPORTED); +- +- data_new = gcry_malloc (sizeof (*data_new)); +- if (! data_new) +- { +- err = gcry_error_from_errno (errno); +- goto out; +- } +- +- data_new->data = NULL; +- data_new->data_n = 0; +- *data = data_new; +- err = 0; +- +- out: +- +- return err; +-} +- +-/* Destroys all the entries in DATA, but not DATA itself. */ +-static void +-ac_data_values_destroy (gcry_ac_data_t data) +-{ +- unsigned int i; +- +- for (i = 0; i < data->data_n; i++) +- if (data->data[i].flags & GCRY_AC_FLAG_DEALLOC) +- { +- gcry_mpi_release (data->data[i].mpi); +- gcry_free (data->data[i].name); +- } +-} +- +-/* Destroys the data set DATA. */ +-void +-_gcry_ac_data_destroy (gcry_ac_data_t data) +-{ +- if (data) +- { +- ac_data_values_destroy (data); +- gcry_free (data->data); +- gcry_free (data); +- } +-} +- +-/* This function creates a copy of the array of named MPIs DATA_MPIS, +- which is of length DATA_MPIS_N; the copy is stored in +- DATA_MPIS_CP. */ +-static gcry_error_t +-ac_data_mpi_copy (gcry_ac_mpi_t *data_mpis, unsigned int data_mpis_n, +- gcry_ac_mpi_t **data_mpis_cp) +-{ +- gcry_ac_mpi_t *data_mpis_new; +- gcry_error_t err; +- unsigned int i; +- gcry_mpi_t mpi; +- char *label; +- +- data_mpis_new = gcry_calloc (data_mpis_n, sizeof (*data_mpis_new)); +- if (! data_mpis_new) +- { +- err = gcry_error_from_errno (errno); +- goto out; +- } +- memset (data_mpis_new, 0, sizeof (*data_mpis_new) * data_mpis_n); +- +- err = 0; +- for (i = 0; i < data_mpis_n; i++) +- { +- /* Copy values. */ +- +- label = gcry_strdup (data_mpis[i].name); +- mpi = gcry_mpi_copy (data_mpis[i].mpi); +- if (! (label && mpi)) +- { +- err = gcry_error_from_errno (errno); +- gcry_mpi_release (mpi); +- gcry_free (label); +- break; +- } +- +- data_mpis_new[i].flags = GCRY_AC_FLAG_DEALLOC; +- data_mpis_new[i].name = label; +- data_mpis_new[i].mpi = mpi; +- } +- if (err) +- goto out; +- +- *data_mpis_cp = data_mpis_new; +- err = 0; +- +- out: +- +- if (err) +- if (data_mpis_new) +- { +- for (i = 0; i < data_mpis_n; i++) +- { +- gcry_mpi_release (data_mpis_new[i].mpi); +- gcry_free (data_mpis_new[i].name); +- } +- gcry_free (data_mpis_new); +- } +- +- return err; +-} +- +-/* Create a copy of the data set DATA and store it in DATA_CP. */ +-gcry_error_t +-_gcry_ac_data_copy (gcry_ac_data_t *data_cp, gcry_ac_data_t data) +-{ +- gcry_ac_mpi_t *data_mpis = NULL; +- gcry_ac_data_t data_new; +- gcry_error_t err; +- +- if (fips_mode ()) +- return gpg_error (GPG_ERR_NOT_SUPPORTED); +- +- /* Allocate data set. */ +- data_new = gcry_malloc (sizeof (*data_new)); +- if (! data_new) +- { +- err = gcry_error_from_errno (errno); +- goto out; +- } +- +- err = ac_data_mpi_copy (data->data, data->data_n, &data_mpis); +- if (err) +- goto out; +- +- data_new->data_n = data->data_n; +- data_new->data = data_mpis; +- *data_cp = data_new; +- +- out: +- +- if (err) +- gcry_free (data_new); +- +- return err; +-} +- +-/* Returns the number of named MPI values inside of the data set +- DATA. */ +-unsigned int +-_gcry_ac_data_length (gcry_ac_data_t data) +-{ +- return data->data_n; +-} +- +- +-/* Add the value MPI to DATA with the label NAME. If FLAGS contains +- GCRY_AC_FLAG_COPY, the data set will contain copies of NAME +- and MPI. If FLAGS contains GCRY_AC_FLAG_DEALLOC or +- GCRY_AC_FLAG_COPY, the values contained in the data set will +- be deallocated when they are to be removed from the data set. */ +-gcry_error_t +-_gcry_ac_data_set (gcry_ac_data_t data, unsigned int flags, +- const char *name, gcry_mpi_t mpi) +-{ +- gcry_error_t err; +- gcry_mpi_t mpi_cp; +- char *name_cp; +- unsigned int i; +- +- name_cp = NULL; +- mpi_cp = NULL; +- +- if (fips_mode ()) +- return gpg_error (GPG_ERR_NOT_SUPPORTED); +- +- if (flags & ~(GCRY_AC_FLAG_DEALLOC | GCRY_AC_FLAG_COPY)) +- { +- err = gcry_error (GPG_ERR_INV_ARG); +- goto out; +- } +- +- if (flags & GCRY_AC_FLAG_COPY) +- { +- /* Create copies. */ +- +- flags |= GCRY_AC_FLAG_DEALLOC; +- name_cp = gcry_strdup (name); +- mpi_cp = gcry_mpi_copy (mpi); +- if (! (name_cp && mpi_cp)) +- { +- err = gcry_error_from_errno (errno); +- goto out; +- } +- } +- +- /* Search for existing entry. */ +- for (i = 0; i < data->data_n; i++) +- if (! strcmp (name, data->data[i].name)) +- break; +- if (i < data->data_n) +- { +- /* An entry for NAME does already exist. */ +- if (data->data[i].flags & GCRY_AC_FLAG_DEALLOC) +- { +- gcry_mpi_release (data->data[i].mpi); +- gcry_free (data->data[i].name); +- } +- } +- else +- { +- /* Create a new entry. */ +- +- gcry_ac_mpi_t *ac_mpis; +- +- ac_mpis = gcry_realloc (data->data, +- sizeof (*data->data) * (data->data_n + 1)); +- if (! ac_mpis) +- { +- err = gcry_error_from_errno (errno); +- goto out; +- } +- +- if (data->data != ac_mpis) +- data->data = ac_mpis; +- data->data_n++; +- } +- +- data->data[i].name = name_cp ? name_cp : ((char *) name); +- data->data[i].mpi = mpi_cp ? mpi_cp : mpi; +- data->data[i].flags = flags; +- err = 0; +- +- out: +- +- if (err) +- { +- gcry_mpi_release (mpi_cp); +- gcry_free (name_cp); +- } +- +- return err; +-} +- +-/* Stores the value labelled with NAME found in the data set DATA in +- MPI. The returned MPI value will be released in case +- gcry_ac_data_set is used to associate the label NAME with a +- different MPI value. */ +-gcry_error_t +-_gcry_ac_data_get_name (gcry_ac_data_t data, unsigned int flags, +- const char *name, gcry_mpi_t *mpi) +-{ +- gcry_mpi_t mpi_return; +- gcry_error_t err; +- unsigned int i; +- +- if (fips_mode ()) +- return gpg_error (GPG_ERR_NOT_SUPPORTED); +- +- if (flags & ~(GCRY_AC_FLAG_COPY)) +- { +- err = gcry_error (GPG_ERR_INV_ARG); +- goto out; +- } +- +- for (i = 0; i < data->data_n; i++) +- if (! strcmp (name, data->data[i].name)) +- break; +- if (i == data->data_n) +- { +- err = gcry_error (GPG_ERR_NOT_FOUND); +- goto out; +- } +- +- if (flags & GCRY_AC_FLAG_COPY) +- { +- mpi_return = gcry_mpi_copy (data->data[i].mpi); +- if (! mpi_return) +- { +- err = gcry_error_from_errno (errno); /* FIXME? */ +- goto out; +- } +- } +- else +- mpi_return = data->data[i].mpi; +- +- *mpi = mpi_return; +- err = 0; +- +- out: +- +- return err; +-} +- +-/* Stores in NAME and MPI the named MPI value contained in the data +- set DATA with the index IDX. NAME or MPI may be NULL. The +- returned MPI value will be released in case gcry_ac_data_set is +- used to associate the label NAME with a different MPI value. */ +-gcry_error_t +-_gcry_ac_data_get_index (gcry_ac_data_t data, unsigned int flags, +- unsigned int idx, +- const char **name, gcry_mpi_t *mpi) +-{ +- gcry_error_t err; +- gcry_mpi_t mpi_cp; +- char *name_cp; +- +- name_cp = NULL; +- mpi_cp = NULL; +- +- if (fips_mode ()) +- return gpg_error (GPG_ERR_NOT_SUPPORTED); +- +- if (flags & ~(GCRY_AC_FLAG_COPY)) +- { +- err = gcry_error (GPG_ERR_INV_ARG); +- goto out; +- } +- +- if (idx >= data->data_n) +- { +- err = gcry_error (GPG_ERR_INV_ARG); +- goto out; +- } +- +- if (flags & GCRY_AC_FLAG_COPY) +- { +- /* Return copies to the user. */ +- if (name) +- { +- name_cp = gcry_strdup (data->data[idx].name); +- if (! name_cp) +- { +- err = gcry_error_from_errno (errno); +- goto out; +- } +- } +- if (mpi) +- { +- mpi_cp = gcry_mpi_copy (data->data[idx].mpi); +- if (! mpi_cp) +- { +- err = gcry_error_from_errno (errno); +- goto out; +- } +- } +- } +- +- if (name) +- *name = name_cp ? name_cp : data->data[idx].name; +- if (mpi) +- *mpi = mpi_cp ? mpi_cp : data->data[idx].mpi; +- err = 0; +- +- out: +- +- if (err) +- { +- gcry_mpi_release (mpi_cp); +- gcry_free (name_cp); +- } +- +- return err; +-} +- +-/* Convert the data set DATA into a new S-Expression, which is to be +- stored in SEXP, according to the identifiers contained in +- IDENTIFIERS. */ +-gcry_error_t +-_gcry_ac_data_to_sexp (gcry_ac_data_t data, gcry_sexp_t *sexp, +- const char **identifiers) +-{ +- gcry_sexp_t sexp_new; +- gcry_error_t err; +- char *sexp_buffer; +- size_t sexp_buffer_n; +- size_t identifiers_n; +- const char *label; +- gcry_mpi_t mpi; +- void **arg_list; +- size_t data_n; +- unsigned int i; +- +- sexp_buffer_n = 1; +- sexp_buffer = NULL; +- arg_list = NULL; +- err = 0; +- +- if (fips_mode ()) +- return gpg_error (GPG_ERR_NOT_SUPPORTED); +- +- /* Calculate size of S-expression representation. */ +- +- i = 0; +- if (identifiers) +- while (identifiers[i]) +- { +- /* For each identifier, we add "()". */ +- sexp_buffer_n += 1 + strlen (identifiers[i]) + 1; +- i++; +- } +- identifiers_n = i; +- +- if (! identifiers_n) +- /* If there are NO identifiers, we still add surrounding braces so +- that we have a list of named MPI value lists. Otherwise it +- wouldn't be too much fun to process these lists. */ +- sexp_buffer_n += 2; +- +- data_n = _gcry_ac_data_length (data); +- for (i = 0; i < data_n; i++) +- { +- err = gcry_ac_data_get_index (data, 0, i, &label, NULL); +- if (err) +- break; +- /* For each MPI we add "(