Bug 1577646 - Fix encoding corruptions in imported libgcrypt library. r=me
DONTBUILD
This commit is contained in:
Родитель
f17f8dbc20
Коммит
aedfde9bb2
|
@ -31,13 +31,13 @@ List of Copyright holders
|
||||||
Copyright (C) 2003 Nikos Mavroyanopoulos
|
Copyright (C) 2003 Nikos Mavroyanopoulos
|
||||||
Copyright (C) 2006-2007 NTT (Nippon Telegraph and Telephone Corporation)
|
Copyright (C) 2006-2007 NTT (Nippon Telegraph and Telephone Corporation)
|
||||||
Copyright (C) 2012-2018 g10 Code GmbH
|
Copyright (C) 2012-2018 g10 Code GmbH
|
||||||
Copyright (C) 2012 Simon Josefsson, Niels Möller
|
Copyright (C) 2012 Simon Josefsson, Niels Möller
|
||||||
Copyright (c) 2012 Intel Corporation
|
Copyright (c) 2012 Intel Corporation
|
||||||
Copyright (C) 2013 Christian Grothoff
|
Copyright (C) 2013 Christian Grothoff
|
||||||
Copyright (C) 2013-2017 Jussi Kivilinna
|
Copyright (C) 2013-2017 Jussi Kivilinna
|
||||||
Copyright (C) 2013-2014 Dmitry Eremin-Solenikov
|
Copyright (C) 2013-2014 Dmitry Eremin-Solenikov
|
||||||
Copyright (C) 2014 Stephan Mueller
|
Copyright (C) 2014 Stephan Mueller
|
||||||
Copyright (C) 2017 Bundesamt für Sicherheit in der Informationstechnik
|
Copyright (C) 2017 Bundesamt für Sicherheit in der Informationstechnik
|
||||||
|
|
||||||
|
|
||||||
Authors with a FSF copyright assignment
|
Authors with a FSF copyright assignment
|
||||||
|
@ -68,7 +68,7 @@ Disclaims changes.
|
||||||
nh@df.lth.se
|
nh@df.lth.se
|
||||||
Weak key patches.
|
Weak key patches.
|
||||||
|
|
||||||
GNUPG Rémi Guyomarch 1999-05-25
|
GNUPG Rémi Guyomarch 1999-05-25
|
||||||
Assigns past and future changes. (g10/compress.c, g10/encr-data.c,
|
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)
|
g10/free-packet.c, g10/mdfilter.c, g10/plaintext.c, util/iobuf.c)
|
||||||
rguyom@mail.dotcom.fr
|
rguyom@mail.dotcom.fr
|
||||||
|
@ -128,7 +128,7 @@ Assigns Past and Future Changes
|
||||||
openpgp@brainhub.org
|
openpgp@brainhub.org
|
||||||
(cipher/ecc.c and related files)
|
(cipher/ecc.c and related files)
|
||||||
|
|
||||||
LIBGCRYPT Ulrich Müller 2012-02-15
|
LIBGCRYPT Ulrich Müller 2012-02-15
|
||||||
Assigns Past and Future Changes
|
Assigns Past and Future Changes
|
||||||
ulm@gentoo.org
|
ulm@gentoo.org
|
||||||
(Changes to cipher/idea.c and related files)
|
(Changes to cipher/idea.c and related files)
|
||||||
|
@ -157,7 +157,7 @@ Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
|
||||||
Dmitry Kasatkin <dmitry.kasatkin@intel.com>
|
Dmitry Kasatkin <dmitry.kasatkin@intel.com>
|
||||||
2012-12-14:50CAE2DB.80302@intel.com:
|
2012-12-14:50CAE2DB.80302@intel.com:
|
||||||
|
|
||||||
Jérémie Courrèges-Anglas <jca@wxcvbn.org>
|
Jérémie Courrèges-Anglas <jca@wxcvbn.org>
|
||||||
2016-05-26:87bn3ssqg0.fsf@ritchie.wxcvbn.org:
|
2016-05-26:87bn3ssqg0.fsf@ritchie.wxcvbn.org:
|
||||||
|
|
||||||
Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
|
Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
|
||||||
|
@ -178,7 +178,7 @@ Milan Broz <gmazyland@gmail.com>
|
||||||
Peter Wu <peter@lekensteyn.nl>
|
Peter Wu <peter@lekensteyn.nl>
|
||||||
2015-07-22:20150722191325.GA8113@al:
|
2015-07-22:20150722191325.GA8113@al:
|
||||||
|
|
||||||
Rafaël Carré <funman@videolan.org>
|
Rafaël Carré <funman@videolan.org>
|
||||||
2012-04-20:4F91988B.1080502@videolan.org:
|
2012-04-20:4F91988B.1080502@videolan.org:
|
||||||
|
|
||||||
Sergey V. <sftp.mtuci@gmail.com>
|
Sergey V. <sftp.mtuci@gmail.com>
|
||||||
|
@ -187,7 +187,7 @@ Sergey V. <sftp.mtuci@gmail.com>
|
||||||
Stephan Mueller <smueller@chronox.de>
|
Stephan Mueller <smueller@chronox.de>
|
||||||
2014-08-22:2008899.25OeoelVVA@myon.chronox.de:
|
2014-08-22:2008899.25OeoelVVA@myon.chronox.de:
|
||||||
|
|
||||||
Tomáš Mráz <tm@t8m.info>
|
Tomáš Mráz <tm@t8m.info>
|
||||||
2012-04-16:1334571250.5056.52.camel@vespa.frost.loc:
|
2012-04-16:1334571250.5056.52.camel@vespa.frost.loc:
|
||||||
|
|
||||||
Vitezslav Cizek <vcizek@suse.com>
|
Vitezslav Cizek <vcizek@suse.com>
|
||||||
|
@ -222,7 +222,7 @@ It has a permissive license and is copyrighted by atsec information
|
||||||
security corporation. See the file for details.
|
security corporation. See the file for details.
|
||||||
|
|
||||||
The file salsa20.c is based on D.J. Bernstein's public domain code and
|
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.
|
taken from Nettle. Copyright 2012 Simon Josefsson and Niels Möller.
|
||||||
|
|
||||||
|
|
||||||
This file is free software; as a special exception the author gives
|
This file is free software; as a special exception the author gives
|
||||||
|
|
|
@ -132,7 +132,7 @@
|
||||||
|
|
||||||
(cherry picked from commit 0de2a22fcf6607d0aecb550feefa414cee3731b2)
|
(cherry picked from commit 0de2a22fcf6607d0aecb550feefa414cee3731b2)
|
||||||
|
|
||||||
2018-04-17 Martin Storsjö <martin@martin.st>
|
2018-04-17 Martin Storsjö <martin@martin.st>
|
||||||
|
|
||||||
random: Don't assume that _WIN64 implies x86_64.
|
random: Don't assume that _WIN64 implies x86_64.
|
||||||
+ commit e1695a8f6ca1135d777450cf9ce64628b0778ccb
|
+ commit e1695a8f6ca1135d777450cf9ce64628b0778ccb
|
||||||
|
@ -422,7 +422,7 @@
|
||||||
(JENT_USES_GETTIME): New.
|
(JENT_USES_GETTIME): New.
|
||||||
(JENT_USES_READ_REAL_TIME): New.
|
(JENT_USES_READ_REAL_TIME): New.
|
||||||
(jent_get_nstime): Support clock_gettime and AIX specific
|
(jent_get_nstime): Support clock_gettime and AIX specific
|
||||||
function. Taken from Stephan Müller's code.
|
function. Taken from Stephan Müller's code.
|
||||||
(is_rng_available): New.
|
(is_rng_available): New.
|
||||||
(_gcry_rndjent_dump_stats): Use that function.
|
(_gcry_rndjent_dump_stats): Use that function.
|
||||||
(_gcry_rndjent_poll): Use that fucntion. Allow an ADD of NULL for an
|
(_gcry_rndjent_poll): Use that fucntion. Allow an ADD of NULL for an
|
||||||
|
@ -1559,7 +1559,7 @@
|
||||||
+ commit b766ea14ad1c27d6160531b200cc70aaa479c6dc
|
+ commit b766ea14ad1c27d6160531b200cc70aaa479c6dc
|
||||||
* mpi/longlong.h: Use __sparcv8 as alias for __sparc_v8__.
|
* mpi/longlong.h: Use __sparcv8 as alias for __sparc_v8__.
|
||||||
|
|
||||||
2016-06-08 Jérémie Courrèges-Anglas <jca@wxcvbn.org>
|
2016-06-08 Jérémie Courrèges-Anglas <jca@wxcvbn.org>
|
||||||
|
|
||||||
Check for compiler SSE4.1 support in PCLMUL CRC code.
|
Check for compiler SSE4.1 support in PCLMUL CRC code.
|
||||||
+ commit dc76313308c184c92eb78452b503405b90fc7ebd
|
+ commit dc76313308c184c92eb78452b503405b90fc7ebd
|
||||||
|
@ -1601,7 +1601,7 @@
|
||||||
+ commit 4121f15122501d8946f1589b303d1f7949c15e30
|
+ commit 4121f15122501d8946f1589b303d1f7949c15e30
|
||||||
* mpi/longlong.h: Use __sparcv8 as alias for __sparc_v8__.
|
* mpi/longlong.h: Use __sparcv8 as alias for __sparc_v8__.
|
||||||
|
|
||||||
2016-05-28 Jérémie Courrèges-Anglas <jca@wxcvbn.org>
|
2016-05-28 Jérémie Courrèges-Anglas <jca@wxcvbn.org>
|
||||||
|
|
||||||
Check for compiler SSE4.1 support in PCLMUL CRC code.
|
Check for compiler SSE4.1 support in PCLMUL CRC code.
|
||||||
+ commit 3e8074ecd3a534e8bd7f11cf17f0b22d252584c8
|
+ commit 3e8074ecd3a534e8bd7f11cf17f0b22d252584c8
|
||||||
|
@ -1865,7 +1865,7 @@
|
||||||
(check_ecc_keys): Check that key generation fails for Ed25519 keys in
|
(check_ecc_keys): Check that key generation fails for Ed25519 keys in
|
||||||
FIPS mode.
|
FIPS mode.
|
||||||
|
|
||||||
2016-03-22 Tomáš Mráz <tmraz@redhat.com>
|
2016-03-22 Tomáš Mráz <tmraz@redhat.com>
|
||||||
|
|
||||||
rsa: Add FIPS 186-4 compliant RSA probable prime key generator.
|
rsa: Add FIPS 186-4 compliant RSA probable prime key generator.
|
||||||
+ commit 5f9b3c2e220ca6d0eaff32324a973ef67933a844
|
+ commit 5f9b3c2e220ca6d0eaff32324a973ef67933a844
|
||||||
|
@ -2782,7 +2782,7 @@
|
||||||
|
|
||||||
2015-08-12 Jussi Kivilinna <jussi.kivilinna@iki.fi>
|
2015-08-12 Jussi Kivilinna <jussi.kivilinna@iki.fi>
|
||||||
|
|
||||||
Keccak: Fix array indexes in ? step.
|
Keccak: Fix array indexes in θ step.
|
||||||
+ commit 48822ae0b436bcea0fe92dbf0d88475ba3179320
|
+ commit 48822ae0b436bcea0fe92dbf0d88475ba3179320
|
||||||
* cipher/keccak.c (keccak_f1600_state_permute): Fix indexes for D[5].
|
* cipher/keccak.c (keccak_f1600_state_permute): Fix indexes for D[5].
|
||||||
|
|
||||||
|
@ -3257,7 +3257,7 @@
|
||||||
(ELF): New macro to mask lines with ELF specific commands.
|
(ELF): New macro to mask lines with ELF specific commands.
|
||||||
* cipher/camellia-glue.c (USE_AESNI_AVX, USE_AESNI_AVX2): Enable when
|
* cipher/camellia-glue.c (USE_AESNI_AVX, USE_AESNI_AVX2): Enable when
|
||||||
HAVE_COMPATIBLE_GCC_WIN64_PLATFORM_AS defined.
|
HAVE_COMPATIBLE_GCC_WIN64_PLATFORM_AS defined.
|
||||||
[USE_AESNI_AVX || USE_AESNI_AVX2] (ASM_FUNC_ABI, ASM_EXTRA_STACK): New.
|
[USE_AESNI_AVX || USE_AESNI_AVX2] (ASM_FUNC_ABI, ASM_EXTRA_STACK): New.
|
||||||
(_gcry_camellia_aesni_avx_ctr_enc, _gcry_camellia_aesni_avx_cbc_dec)
|
(_gcry_camellia_aesni_avx_ctr_enc, _gcry_camellia_aesni_avx_cbc_dec)
|
||||||
(_gcry_camellia_aesni_avx_cfb_dec, _gcry_camellia_aesni_avx_keygen)
|
(_gcry_camellia_aesni_avx_cfb_dec, _gcry_camellia_aesni_avx_keygen)
|
||||||
(_gcry_camellia_aesni_avx2_ctr_enc, _gcry_camellia_aesni_avx2_cbc_dec)
|
(_gcry_camellia_aesni_avx2_ctr_enc, _gcry_camellia_aesni_avx2_cbc_dec)
|
||||||
|
@ -3380,7 +3380,7 @@
|
||||||
* cipher/sha512-ssse3-amd64.S: Ditto.
|
* cipher/sha512-ssse3-amd64.S: Ditto.
|
||||||
* cipher/sha512.c (USE_SSSE3, USE_AVX, USE_AVX2): Enable when
|
* cipher/sha512.c (USE_SSSE3, USE_AVX, USE_AVX2): Enable when
|
||||||
HAVE_COMPATIBLE_GCC_WIN64_PLATFORM_AS defined.
|
HAVE_COMPATIBLE_GCC_WIN64_PLATFORM_AS defined.
|
||||||
[USE_SSSE3 || USE_AVX || USE_AVX2] (ASM_FUNC_ABI)
|
[USE_SSSE3 || USE_AVX || USE_AVX2] (ASM_FUNC_ABI)
|
||||||
(ASM_EXTRA_STACK): New.
|
(ASM_EXTRA_STACK): New.
|
||||||
(_gcry_sha512_transform_amd64_ssse3, _gcry_sha512_transform_amd64_avx)
|
(_gcry_sha512_transform_amd64_ssse3, _gcry_sha512_transform_amd64_avx)
|
||||||
(_gcry_sha512_transform_amd64_avx_bmi2): Add ASM_FUNC_ABI to
|
(_gcry_sha512_transform_amd64_avx_bmi2): Add ASM_FUNC_ABI to
|
||||||
|
@ -3396,7 +3396,7 @@
|
||||||
* cipher/sha256-ssse3-amd64.S: Ditto.
|
* cipher/sha256-ssse3-amd64.S: Ditto.
|
||||||
* cipher/sha256.c (USE_SSSE3, USE_AVX, USE_AVX2): Enable when
|
* cipher/sha256.c (USE_SSSE3, USE_AVX, USE_AVX2): Enable when
|
||||||
HAVE_COMPATIBLE_GCC_WIN64_PLATFORM_AS defined.
|
HAVE_COMPATIBLE_GCC_WIN64_PLATFORM_AS defined.
|
||||||
[USE_SSSE3 || USE_AVX || USE_AVX2] (ASM_FUNC_ABI)
|
[USE_SSSE3 || USE_AVX || USE_AVX2] (ASM_FUNC_ABI)
|
||||||
(ASM_EXTRA_STACK): New.
|
(ASM_EXTRA_STACK): New.
|
||||||
(_gcry_sha256_transform_amd64_ssse3, _gcry_sha256_transform_amd64_avx)
|
(_gcry_sha256_transform_amd64_ssse3, _gcry_sha256_transform_amd64_avx)
|
||||||
(_gcry_sha256_transform_amd64_avx2): Add ASM_FUNC_ABI to prototypes.
|
(_gcry_sha256_transform_amd64_avx2): Add ASM_FUNC_ABI to prototypes.
|
||||||
|
@ -3411,7 +3411,7 @@
|
||||||
* cipher/sha1-ssse3-amd64.S: Ditto.
|
* cipher/sha1-ssse3-amd64.S: Ditto.
|
||||||
* cipher/sha1.c (USE_SSSE3, USE_AVX, USE_BMI2): Enable
|
* cipher/sha1.c (USE_SSSE3, USE_AVX, USE_BMI2): Enable
|
||||||
when HAVE_COMPATIBLE_GCC_WIN64_PLATFORM_AS defined.
|
when HAVE_COMPATIBLE_GCC_WIN64_PLATFORM_AS defined.
|
||||||
[USE_SSSE3 || USE_AVX || USE_BMI2] (ASM_FUNC_ABI)
|
[USE_SSSE3 || USE_AVX || USE_BMI2] (ASM_FUNC_ABI)
|
||||||
(ASM_EXTRA_STACK): New.
|
(ASM_EXTRA_STACK): New.
|
||||||
(_gcry_sha1_transform_amd64_ssse3, _gcry_sha1_transform_amd64_avx)
|
(_gcry_sha1_transform_amd64_ssse3, _gcry_sha1_transform_amd64_avx)
|
||||||
(_gcry_sha1_transform_amd64_avx_bmi2): Add ASM_FUNC_ABI to
|
(_gcry_sha1_transform_amd64_avx_bmi2): Add ASM_FUNC_ABI to
|
||||||
|
@ -5625,7 +5625,7 @@
|
||||||
(gcry_mpi_get_flag, _gcry_mpi_free): Implement them.
|
(gcry_mpi_get_flag, _gcry_mpi_free): Implement them.
|
||||||
(gcry_mpi_set_opaque): Keep user flags.
|
(gcry_mpi_set_opaque): Keep user flags.
|
||||||
|
|
||||||
2013-11-29 Vladimir '?-coder/phcoder' Serbinenko <phcoder@gmail.com>
|
2013-11-29 Vladimir 'φ-coder/phcoder' Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
Fix armv3 compile error.
|
Fix armv3 compile error.
|
||||||
+ commit 3b1cc9e6c357574f54160298d731c18f3d717b6c
|
+ commit 3b1cc9e6c357574f54160298d731c18f3d717b6c
|
||||||
|
@ -5998,7 +5998,7 @@
|
||||||
+ commit c8ad83fb605fdbf6dc0b0dbcc8aedfbd477640da
|
+ commit c8ad83fb605fdbf6dc0b0dbcc8aedfbd477640da
|
||||||
* cipher/rijndael.c (RIJNDAEL_context): Make 'decryption_prepared',
|
* cipher/rijndael.c (RIJNDAEL_context): Make 'decryption_prepared',
|
||||||
'use_padlock' and 'use_aesni' 1-bit members in bitfield.
|
'use_padlock' and 'use_aesni' 1-bit members in bitfield.
|
||||||
(do_setkey): Move 'hwfeatures' inside [USE_AESNI || USE_PADLOCK].
|
(do_setkey): Move 'hwfeatures' inside [USE_AESNI || USE_PADLOCK].
|
||||||
(do_aesni_enc_aligned): Rename to...
|
(do_aesni_enc_aligned): Rename to...
|
||||||
(do_aesni_enc): ...this, as function does not require aligned input.
|
(do_aesni_enc): ...this, as function does not require aligned input.
|
||||||
(do_aesni_dec_aligned): Rename to...
|
(do_aesni_dec_aligned): Rename to...
|
||||||
|
@ -7862,7 +7862,7 @@
|
||||||
* cipher/Makefile.am: Add 'sha512-armv7-neon.S'.
|
* cipher/Makefile.am: Add 'sha512-armv7-neon.S'.
|
||||||
* cipher/sha512-armv7-neon.S: New file.
|
* cipher/sha512-armv7-neon.S: New file.
|
||||||
* cipher/sha512.c (USE_ARM_NEON_ASM): New macro.
|
* cipher/sha512.c (USE_ARM_NEON_ASM): New macro.
|
||||||
(SHA512_CONTEXT) [USE_ARM_NEON_ASM]: Add 'use_neon'.
|
(SHA512_CONTEXT) [USE_ARM_NEON_ASM]: Add 'use_neon'.
|
||||||
(sha512_init, sha384_init) [USE_ARM_NEON_ASM]: Enable 'use_neon' if
|
(sha512_init, sha384_init) [USE_ARM_NEON_ASM]: Enable 'use_neon' if
|
||||||
CPU support NEON instructions.
|
CPU support NEON instructions.
|
||||||
(k): Round constant array moved outside of 'transform' function.
|
(k): Round constant array moved outside of 'transform' function.
|
||||||
|
@ -9471,7 +9471,7 @@
|
||||||
* src/hwfeatures.c (_gcry_detect_hw_features): Make cpp def chain
|
* src/hwfeatures.c (_gcry_detect_hw_features): Make cpp def chain
|
||||||
better readable.
|
better readable.
|
||||||
|
|
||||||
2012-06-21 Rafaël Carré <funman@videolan.org>
|
2012-06-21 Rafaël Carré <funman@videolan.org>
|
||||||
|
|
||||||
Enable VIA Padlock on x86_64 platforms.
|
Enable VIA Padlock on x86_64 platforms.
|
||||||
+ commit baf0dc7e9c26167ab43ba2adebcf2f1abc9d9b3b
|
+ commit baf0dc7e9c26167ab43ba2adebcf2f1abc9d9b3b
|
||||||
|
@ -9504,7 +9504,7 @@
|
||||||
* src/gcrypt.h.in: Add the GCRYCTL_SET_ENFORCED_FIPS_FLAG.
|
* src/gcrypt.h.in: Add the GCRYCTL_SET_ENFORCED_FIPS_FLAG.
|
||||||
* src/global.c (_gcry_vcontrol): Handle the new command.
|
* src/global.c (_gcry_vcontrol): Handle the new command.
|
||||||
|
|
||||||
2012-02-17 Ulrich Müller <ulm@gentoo.org>
|
2012-02-17 Ulrich Müller <ulm@gentoo.org>
|
||||||
|
|
||||||
Rework selftest in idea.c.
|
Rework selftest in idea.c.
|
||||||
+ commit 70cca617ed75ea292e1fed769114dda5cc1d76f1
|
+ commit 70cca617ed75ea292e1fed769114dda5cc1d76f1
|
||||||
|
@ -9519,7 +9519,7 @@
|
||||||
+ commit 46035d28c9b413851d43a4008fdc8e4cdf5d686b
|
+ commit 46035d28c9b413851d43a4008fdc8e4cdf5d686b
|
||||||
* src/g10lib.h (_gcry_secmem_module_init): Make it a real prototype.
|
* src/g10lib.h (_gcry_secmem_module_init): Make it a real prototype.
|
||||||
|
|
||||||
2012-02-16 Ulrich Müller <ulm@gentoo.org>
|
2012-02-16 Ulrich Müller <ulm@gentoo.org>
|
||||||
|
|
||||||
Add support for the IDEA cipher.
|
Add support for the IDEA cipher.
|
||||||
+ commit 318fd85f377c060908d371f792d41e599b3b7483
|
+ commit 318fd85f377c060908d371f792d41e599b3b7483
|
||||||
|
|
|
@ -153,7 +153,7 @@ with any binary distributions derived from the GNU C Library.
|
||||||
http://web.cs.ucdavis.edu/~rogaway/ocb/license1.pdf for the full
|
http://web.cs.ucdavis.edu/~rogaway/ocb/license1.pdf for the full
|
||||||
license document; it basically says:
|
license document; it basically says:
|
||||||
|
|
||||||
License 1 — License for Open-Source Software Implementations of OCB
|
License 1 — License for Open-Source Software Implementations of OCB
|
||||||
(Jan 9, 2013)
|
(Jan 9, 2013)
|
||||||
|
|
||||||
Under this license, you are authorized to make, use, and
|
Under this license, you are authorized to make, use, and
|
||||||
|
@ -169,11 +169,11 @@ with any binary distributions derived from the GNU C Library.
|
||||||
|
|
||||||
1 Definitions
|
1 Definitions
|
||||||
|
|
||||||
1.1 “Licensor” means Phillip Rogaway.
|
1.1 “Licensor” means Phillip Rogaway.
|
||||||
|
|
||||||
1.2 “Licensed Patents” means any patent that claims priority to United
|
1.2 “Licensed Patents” means any patent that claims priority to United
|
||||||
States Patent Application No. 09/918,615 entitled “Method and Apparatus
|
States Patent Application No. 09/918,615 entitled “Method and Apparatus
|
||||||
for Facilitating Efficient Authenticated Encryption,” and any utility,
|
for Facilitating Efficient Authenticated Encryption,” and any utility,
|
||||||
divisional, provisional, continuation, continuations-in-part, reexamination,
|
divisional, provisional, continuation, continuations-in-part, reexamination,
|
||||||
reissue, or foreign counterpart patents that may issue with respect to the
|
reissue, or foreign counterpart patents that may issue with respect to the
|
||||||
aforesaid patent application. This includes, but is not limited to, United
|
aforesaid patent application. This includes, but is not limited to, United
|
||||||
|
@ -181,16 +181,16 @@ with any binary distributions derived from the GNU C Library.
|
||||||
States Patent No. 7,949,129; United States Patent No. 8,321,675 ; and any
|
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.
|
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.3 “Use” means any practice of any invention claimed in the Licensed Patents.
|
||||||
|
|
||||||
1.4 “Software Implementation” means any practice of any invention
|
1.4 “Software Implementation” means any practice of any invention
|
||||||
claimed in the Licensed Patents that takes the form of software executing on
|
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
|
a user-programmable, general-purpose computer or that takes the form of a
|
||||||
computer-readable medium storing such software. Software Implementation does
|
computer-readable medium storing such software. Software Implementation does
|
||||||
not include, for example, application-specific integrated circuits (ASICs),
|
not include, for example, application-specific integrated circuits (ASICs),
|
||||||
field-programmable gate arrays (FPGAs), embedded systems, or IP cores.
|
field-programmable gate arrays (FPGAs), embedded systems, or IP cores.
|
||||||
|
|
||||||
1.5 “Open Source Software” means software whose source code is published
|
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
|
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,
|
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
|
and distribute the source code without payment of fees or royalties, or
|
||||||
|
@ -201,7 +201,7 @@ with any binary distributions derived from the GNU C Library.
|
||||||
2013, including the Public License Fallback of the CC0 waiver, satisfy these
|
2013, including the Public License Fallback of the CC0 waiver, satisfy these
|
||||||
requirements for the purposes of this license.
|
requirements for the purposes of this license.
|
||||||
|
|
||||||
1.6 “Open Source Software Implementation” means a Software
|
1.6 “Open Source Software Implementation” means a Software
|
||||||
Implementation in which the software implicating the Licensed Patents is
|
Implementation in which the software implicating the Licensed Patents is
|
||||||
Open Source Software. Open Source Software Implementation does not include
|
Open Source Software. Open Source Software Implementation does not include
|
||||||
any Software Implementation in which the software implicating the Licensed
|
any Software Implementation in which the software implicating the Licensed
|
||||||
|
|
|
@ -198,7 +198,7 @@ Noteworthy changes in version 1.7.3 (2016-08-17) [C21/A1/R3]
|
||||||
- Fix critical security bug in the RNG [CVE-2016-6313]. An
|
- Fix critical security bug in the RNG [CVE-2016-6313]. An
|
||||||
attacker who obtains 580 bytes from the standard RNG can
|
attacker who obtains 580 bytes from the standard RNG can
|
||||||
trivially predict the next 20 bytes of output. Problem
|
trivially predict the next 20 bytes of output. Problem
|
||||||
detected by Felix Dörre and Vladimir Klebanov, KIT.
|
detected by Felix Dörre and Vladimir Klebanov, KIT.
|
||||||
|
|
||||||
- Fix building of some asm modules with older compilers and CPUs.
|
- Fix building of some asm modules with older compilers and CPUs.
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@ Felix von Leitner leitner@amdiv.de
|
||||||
Frank Heckenbach heckenb@mi.uni-erlangen.de
|
Frank Heckenbach heckenb@mi.uni-erlangen.de
|
||||||
Frank Stajano frank.stajano@cl.cam.ac.uk
|
Frank Stajano frank.stajano@cl.cam.ac.uk
|
||||||
Gabriele Monti psicus78 gmail com
|
Gabriele Monti psicus78 gmail com
|
||||||
Gaël Quéri gqueri@mail.dotcom.fr
|
Gaël Quéri gqueri@mail.dotcom.fr
|
||||||
Gregor Riepl seto-kun@freesurf.ch
|
Gregor Riepl seto-kun@freesurf.ch
|
||||||
Gerlinde Klaes gk@u64.de
|
Gerlinde Klaes gk@u64.de
|
||||||
Greg Louis glouis@dynamicro.on.ca
|
Greg Louis glouis@dynamicro.on.ca
|
||||||
|
@ -63,8 +63,8 @@ J Horacio MG homega@ciberia.es
|
||||||
Joachim Backes backes@rhrk.uni-kl.de
|
Joachim Backes backes@rhrk.uni-kl.de
|
||||||
Jordi Mallach jordi@sindominio.net
|
Jordi Mallach jordi@sindominio.net
|
||||||
John A. Martin jam@jamux.com
|
John A. Martin jam@jamux.com
|
||||||
Johnny Teveßen j.tevessen@gmx.de
|
Johnny Teveßen j.tevessen@gmx.de
|
||||||
Jörg Schilling schilling@fokus.gmd.de
|
Jörg Schilling schilling@fokus.gmd.de
|
||||||
Jun Kuriyama kuriyama@sky.rim.or.jp
|
Jun Kuriyama kuriyama@sky.rim.or.jp
|
||||||
Karl Fogel kfogel@guanabana.onshore.com
|
Karl Fogel kfogel@guanabana.onshore.com
|
||||||
Karsten Thygesen karthy@kom.auc.dk
|
Karsten Thygesen karthy@kom.auc.dk
|
||||||
|
@ -99,13 +99,13 @@ Nikos Mavroyanopoulos nmav@hellug.gr
|
||||||
Nimrod Zimerman zimerman@forfree.at
|
Nimrod Zimerman zimerman@forfree.at
|
||||||
N J Doye nic@niss.ac.uk
|
N J Doye nic@niss.ac.uk
|
||||||
Oliver Haakert haakert@hsp.de
|
Oliver Haakert haakert@hsp.de
|
||||||
Oskari Jääskeläinen f33003a@cc.hut.fi
|
Oskari Jääskeläinen f33003a@cc.hut.fi
|
||||||
Paul D. Smith psmith@baynetworks.com
|
Paul D. Smith psmith@baynetworks.com
|
||||||
Philippe Laliberte arsphl@oeil.qc.ca
|
Philippe Laliberte arsphl@oeil.qc.ca
|
||||||
Peter Gutmann pgut001@cs.auckland.ac.nz
|
Peter Gutmann pgut001@cs.auckland.ac.nz
|
||||||
QingLong qinglong@bolizm.ihep.su
|
QingLong qinglong@bolizm.ihep.su
|
||||||
Rafael Ávila de Espíndola rafael.espindola@gmail.com
|
Rafael Ávila de Espíndola rafael.espindola@gmail.com
|
||||||
Rafaël Carré funman@videolan.org
|
Rafaël Carré funman@videolan.org
|
||||||
Ralf Fassel ralf@akutech.de
|
Ralf Fassel ralf@akutech.de
|
||||||
Ralf Hildebrandt Ralf.Hildebrandt@innominate.com
|
Ralf Hildebrandt Ralf.Hildebrandt@innominate.com
|
||||||
Ralf Schneider ralf@tapfere-schneiderleins.de
|
Ralf Schneider ralf@tapfere-schneiderleins.de
|
||||||
|
@ -115,22 +115,22 @@ Randolph Chung tausq@debian.org
|
||||||
Randy mcclellr@oit.edu
|
Randy mcclellr@oit.edu
|
||||||
Rat ratinox@peorth.gweep.net
|
Rat ratinox@peorth.gweep.net
|
||||||
Reinhard Wobst R.Wobst@ifw-dresden.de
|
Reinhard Wobst R.Wobst@ifw-dresden.de
|
||||||
Rémi Guyomarch rguyom@mail.dotcom.fr
|
Rémi Guyomarch rguyom@mail.dotcom.fr
|
||||||
Reuben Sumner rasumner@wisdom.weizmann.ac.il
|
Reuben Sumner rasumner@wisdom.weizmann.ac.il
|
||||||
Richard Outerbridge outer@interlog.com
|
Richard Outerbridge outer@interlog.com
|
||||||
Roddy Strachan roddy@satlink.com.au
|
Roddy Strachan roddy@satlink.com.au
|
||||||
Roland Rosenfeld roland@spinnaker.rhein.de
|
Roland Rosenfeld roland@spinnaker.rhein.de
|
||||||
Ross Golder rossigee@bigfoot.com
|
Ross Golder rossigee@bigfoot.com
|
||||||
Serge Munhoven munhoven@mema.ucl.ac.be
|
Serge Munhoven munhoven@mema.ucl.ac.be
|
||||||
Sergi Blanch i Torné sergi at calcurco cat
|
Sergi Blanch i Torné sergi at calcurco cat
|
||||||
Simon Josefsson jas@extundo.com
|
Simon Josefsson jas@extundo.com
|
||||||
SL Baur steve@xemacs.org
|
SL Baur steve@xemacs.org
|
||||||
Stephan Austermuehle au@hcsd.de
|
Stephan Austermuehle au@hcsd.de
|
||||||
Stephan Müller smueller at atsec com
|
Stephan Müller smueller at atsec com
|
||||||
Stephane Corthesy stephane@sente.ch
|
Stephane Corthesy stephane@sente.ch
|
||||||
Stefan Karrmann S.Karrmann@gmx.net
|
Stefan Karrmann S.Karrmann@gmx.net
|
||||||
Stefan Keller dres@cs.tu-berlin.de
|
Stefan Keller dres@cs.tu-berlin.de
|
||||||
Stefan Krüger stadtkind2 at gmx de
|
Stefan Krüger stadtkind2 at gmx de
|
||||||
Steffen Ullrich ccrlphr@xensei.com
|
Steffen Ullrich ccrlphr@xensei.com
|
||||||
Steffen Zahn zahn@berlin.snafu.de
|
Steffen Zahn zahn@berlin.snafu.de
|
||||||
Steven Bakker steven@icoe.att.com
|
Steven Bakker steven@icoe.att.com
|
||||||
|
@ -145,7 +145,7 @@ Tom Zerucha tzeruch@ceddec.com
|
||||||
Tomas Fasth tomas.fasth@twinspot.net
|
Tomas Fasth tomas.fasth@twinspot.net
|
||||||
Tommi Komulainen Tommi.Komulainen@iki.fi
|
Tommi Komulainen Tommi.Komulainen@iki.fi
|
||||||
Thomas Mikkelsen tbm@image.dk
|
Thomas Mikkelsen tbm@image.dk
|
||||||
Ulf Möller 3umoelle@informatik.uni-hamburg.de
|
Ulf Möller 3umoelle@informatik.uni-hamburg.de
|
||||||
Umberto Salsi salsi@icosaedro.it
|
Umberto Salsi salsi@icosaedro.it
|
||||||
Uoti Urpala
|
Uoti Urpala
|
||||||
Urko Lusa ulusa@euskalnet.net
|
Urko Lusa ulusa@euskalnet.net
|
||||||
|
|
|
@ -1155,7 +1155,7 @@
|
||||||
2006-11-03 Werner Koch <wk@g10code.com>
|
2006-11-03 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* random.c [HAVE_GETTIMEOFDAY]: Included sys/time.h and not
|
* random.c [HAVE_GETTIMEOFDAY]: Included sys/time.h and not
|
||||||
sys/times.h. Reported by Rafaël Carré.
|
sys/times.h. Reported by Rafaël Carré.
|
||||||
|
|
||||||
2006-11-05 Moritz Schulte <moritz@g10code.com>
|
2006-11-05 Moritz Schulte <moritz@g10code.com>
|
||||||
|
|
||||||
|
@ -3264,7 +3264,7 @@
|
||||||
2002-02-20 Werner Koch <wk@gnupg.org>
|
2002-02-20 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
* sha1.c: Removed a left over comment note. The code has been
|
* sha1.c: Removed a left over comment note. The code has been
|
||||||
rewritten from scratch in 1998. Thanks to Niels Möller for
|
rewritten from scratch in 1998. Thanks to Niels Möller for
|
||||||
reporting this misleading comment.
|
reporting this misleading comment.
|
||||||
|
|
||||||
2002-02-18 Werner Koch <wk@gnupg.org>
|
2002-02-18 Werner Koch <wk@gnupg.org>
|
||||||
|
|
|
@ -158,7 +158,7 @@
|
||||||
roundsm(XL, XR, ((n) + 3) * 2 + 0, ((n) + 3) * 2 + 1, YL, YR); \
|
roundsm(XL, XR, ((n) + 3) * 2 + 0, ((n) + 3) * 2 + 1, YL, YR); \
|
||||||
roundsm(YL, YR, ((n) + 2) * 2 + 0, ((n) + 2) * 2 + 1, XL, XR);
|
roundsm(YL, YR, ((n) + 2) * 2 + 0, ((n) + 2) * 2 + 1, XL, XR);
|
||||||
|
|
||||||
/* perform FL and FL?¹ */
|
/* perform FL and FL⁻¹ */
|
||||||
#define fls(ll, lr, rl, rr, kll, klr, krl, krr) \
|
#define fls(ll, lr, rl, rr, kll, klr, krl, krr) \
|
||||||
ldr RT0, [CTX, #(key_table + ((kll) * 4))]; \
|
ldr RT0, [CTX, #(key_table + ((kll) * 4))]; \
|
||||||
ldr RT2, [CTX, #(key_table + ((krr) * 4))]; \
|
ldr RT2, [CTX, #(key_table + ((krr) * 4))]; \
|
||||||
|
|
|
@ -660,7 +660,7 @@
|
||||||
* )
|
* )
|
||||||
* )
|
* )
|
||||||
*
|
*
|
||||||
* (note: '? 0xc5' inside camellia_f())
|
* (note: '⊕ 0xc5' inside camellia_f())
|
||||||
*/
|
*/
|
||||||
.Lpre_tf_lo_s1:
|
.Lpre_tf_lo_s1:
|
||||||
.byte 0x45, 0xe8, 0x40, 0xed, 0x2e, 0x83, 0x2b, 0x86
|
.byte 0x45, 0xe8, 0x40, 0xed, 0x2e, 0x83, 0x2b, 0x86
|
||||||
|
@ -681,7 +681,7 @@
|
||||||
* )
|
* )
|
||||||
* )
|
* )
|
||||||
*
|
*
|
||||||
* (note: '? 0xc5' inside camellia_f())
|
* (note: '⊕ 0xc5' inside camellia_f())
|
||||||
*/
|
*/
|
||||||
.Lpre_tf_lo_s4:
|
.Lpre_tf_lo_s4:
|
||||||
.byte 0x45, 0x40, 0x2e, 0x2b, 0x4b, 0x4e, 0x20, 0x25
|
.byte 0x45, 0x40, 0x2e, 0x2b, 0x4b, 0x4e, 0x20, 0x25
|
||||||
|
@ -704,7 +704,7 @@
|
||||||
* )
|
* )
|
||||||
* )
|
* )
|
||||||
*
|
*
|
||||||
* (note: '? 0x6e' inside camellia_h())
|
* (note: '⊕ 0x6e' inside camellia_h())
|
||||||
*/
|
*/
|
||||||
.Lpost_tf_lo_s1:
|
.Lpost_tf_lo_s1:
|
||||||
.byte 0x3c, 0xcc, 0xcf, 0x3f, 0x32, 0xc2, 0xc1, 0x31
|
.byte 0x3c, 0xcc, 0xcf, 0x3f, 0x32, 0xc2, 0xc1, 0x31
|
||||||
|
@ -727,7 +727,7 @@
|
||||||
* )
|
* )
|
||||||
* ) <<< 1
|
* ) <<< 1
|
||||||
*
|
*
|
||||||
* (note: '? 0x6e' inside camellia_h())
|
* (note: '⊕ 0x6e' inside camellia_h())
|
||||||
*/
|
*/
|
||||||
.Lpost_tf_lo_s2:
|
.Lpost_tf_lo_s2:
|
||||||
.byte 0x78, 0x99, 0x9f, 0x7e, 0x64, 0x85, 0x83, 0x62
|
.byte 0x78, 0x99, 0x9f, 0x7e, 0x64, 0x85, 0x83, 0x62
|
||||||
|
@ -750,7 +750,7 @@
|
||||||
* )
|
* )
|
||||||
* ) >>> 1
|
* ) >>> 1
|
||||||
*
|
*
|
||||||
* (note: '? 0x6e' inside camellia_h())
|
* (note: '⊕ 0x6e' inside camellia_h())
|
||||||
*/
|
*/
|
||||||
.Lpost_tf_lo_s3:
|
.Lpost_tf_lo_s3:
|
||||||
.byte 0x1e, 0x66, 0xe7, 0x9f, 0x19, 0x61, 0xe0, 0x98
|
.byte 0x1e, 0x66, 0xe7, 0x9f, 0x19, 0x61, 0xe0, 0x98
|
||||||
|
|
|
@ -643,7 +643,7 @@
|
||||||
* )
|
* )
|
||||||
* )
|
* )
|
||||||
*
|
*
|
||||||
* (note: '? 0xc5' inside camellia_f())
|
* (note: '⊕ 0xc5' inside camellia_f())
|
||||||
*/
|
*/
|
||||||
.Lpre_tf_lo_s1:
|
.Lpre_tf_lo_s1:
|
||||||
.byte 0x45, 0xe8, 0x40, 0xed, 0x2e, 0x83, 0x2b, 0x86
|
.byte 0x45, 0xe8, 0x40, 0xed, 0x2e, 0x83, 0x2b, 0x86
|
||||||
|
@ -664,7 +664,7 @@
|
||||||
* )
|
* )
|
||||||
* )
|
* )
|
||||||
*
|
*
|
||||||
* (note: '? 0xc5' inside camellia_f())
|
* (note: '⊕ 0xc5' inside camellia_f())
|
||||||
*/
|
*/
|
||||||
.Lpre_tf_lo_s4:
|
.Lpre_tf_lo_s4:
|
||||||
.byte 0x45, 0x40, 0x2e, 0x2b, 0x4b, 0x4e, 0x20, 0x25
|
.byte 0x45, 0x40, 0x2e, 0x2b, 0x4b, 0x4e, 0x20, 0x25
|
||||||
|
@ -687,7 +687,7 @@
|
||||||
* )
|
* )
|
||||||
* )
|
* )
|
||||||
*
|
*
|
||||||
* (note: '? 0x6e' inside camellia_h())
|
* (note: '⊕ 0x6e' inside camellia_h())
|
||||||
*/
|
*/
|
||||||
.Lpost_tf_lo_s1:
|
.Lpost_tf_lo_s1:
|
||||||
.byte 0x3c, 0xcc, 0xcf, 0x3f, 0x32, 0xc2, 0xc1, 0x31
|
.byte 0x3c, 0xcc, 0xcf, 0x3f, 0x32, 0xc2, 0xc1, 0x31
|
||||||
|
@ -710,7 +710,7 @@
|
||||||
* )
|
* )
|
||||||
* ) <<< 1
|
* ) <<< 1
|
||||||
*
|
*
|
||||||
* (note: '? 0x6e' inside camellia_h())
|
* (note: '⊕ 0x6e' inside camellia_h())
|
||||||
*/
|
*/
|
||||||
.Lpost_tf_lo_s2:
|
.Lpost_tf_lo_s2:
|
||||||
.byte 0x78, 0x99, 0x9f, 0x7e, 0x64, 0x85, 0x83, 0x62
|
.byte 0x78, 0x99, 0x9f, 0x7e, 0x64, 0x85, 0x83, 0x62
|
||||||
|
@ -733,7 +733,7 @@
|
||||||
* )
|
* )
|
||||||
* ) >>> 1
|
* ) >>> 1
|
||||||
*
|
*
|
||||||
* (note: '? 0x6e' inside camellia_h())
|
* (note: '⊕ 0x6e' inside camellia_h())
|
||||||
*/
|
*/
|
||||||
.Lpost_tf_lo_s3:
|
.Lpost_tf_lo_s3:
|
||||||
.byte 0x1e, 0x66, 0xe7, 0x9f, 0x19, 0x61, 0xe0, 0x98
|
.byte 0x1e, 0x66, 0xe7, 0x9f, 0x19, 0x61, 0xe0, 0x98
|
||||||
|
|
|
@ -222,7 +222,7 @@
|
||||||
roundsm(XL, XR, ((n) + 3) * 2 + 0, ((n) + 3) * 2 + 1, YL, YR); \
|
roundsm(XL, XR, ((n) + 3) * 2 + 0, ((n) + 3) * 2 + 1, YL, YR); \
|
||||||
roundsm(YL, YR, ((n) + 2) * 2 + 0, ((n) + 2) * 2 + 1, XL, XR);
|
roundsm(YL, YR, ((n) + 2) * 2 + 0, ((n) + 2) * 2 + 1, XL, XR);
|
||||||
|
|
||||||
/* perform FL and FL?¹ */
|
/* perform FL and FL⁻¹ */
|
||||||
#define fls(ll, lr, rl, rr, kll, klr, krl, krr) \
|
#define fls(ll, lr, rl, rr, kll, klr, krl, krr) \
|
||||||
ldr RT0, [CTX, #(key_table + ((kll) * 4))]; \
|
ldr RT0, [CTX, #(key_table + ((kll) * 4))]; \
|
||||||
ldr RT2, [CTX, #(key_table + ((krr) * 4))]; \
|
ldr RT2, [CTX, #(key_table + ((krr) * 4))]; \
|
||||||
|
|
|
@ -120,8 +120,8 @@ gcry_gcm_reduction_constant:
|
||||||
|
|
||||||
/* GHASH macros */
|
/* GHASH macros */
|
||||||
|
|
||||||
/* See "Gouvêa, C. P. L. & López, J. Implementing GCM on ARMv8. Topics in
|
/* See "Gouvêa, C. P. L. & López, J. Implementing GCM on ARMv8. Topics in
|
||||||
* Cryptology — CT-RSA 2015" for details.
|
* Cryptology — CT-RSA 2015" for details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Input: 'a' and 'b', Output: 'r0:r1' (low 128-bits in r0, high in r1)
|
/* Input: 'a' and 'b', Output: 'r0:r1' (low 128-bits in r0, high in r1)
|
||||||
|
@ -245,8 +245,8 @@ _gcry_ghash_armv8_ce_pmull:
|
||||||
blo .Lend_4
|
blo .Lend_4
|
||||||
|
|
||||||
.Loop_4:
|
.Loop_4:
|
||||||
/* (in0 ^ hash) * H? => rr2:rr3 */
|
/* (in0 ^ hash) * H⁴ => rr2:rr3 */
|
||||||
/* (in1) * H³ => rr0:rr1 */
|
/* (in1) * H³ => rr0:rr1 */
|
||||||
PMUL_128x128_2(rr0, rr1, rbuf1, rh3, rr2, rr3, rhash, rh4, rt1, rt0, __)
|
PMUL_128x128_2(rr0, rr1, rbuf1, rh3, rr2, rr3, rhash, rh4, rt1, rt0, __)
|
||||||
|
|
||||||
vld1.64 {rbuf-rbuf1}, [r2]!
|
vld1.64 {rbuf-rbuf1}, [r2]!
|
||||||
|
@ -254,8 +254,8 @@ _gcry_ghash_armv8_ce_pmull:
|
||||||
veor rr0, rr0, rr2
|
veor rr0, rr0, rr2
|
||||||
veor rr1, rr1, rr3
|
veor rr1, rr1, rr3
|
||||||
|
|
||||||
/* (in2) * H² => rr2:rr3 */
|
/* (in2) * H² => rr2:rr3 */
|
||||||
/* (in3) * H¹ => rhash:rbuf3 */
|
/* (in3) * H¹ => rhash:rbuf3 */
|
||||||
PMUL_128x128_2(rr2, rr3, rbuf2, rh2, rhash, rbuf3, rbuf3, rh1, rt0, rt1,
|
PMUL_128x128_2(rr2, rr3, rbuf2, rh2, rhash, rbuf3, rbuf3, rh1, rt0, rt1,
|
||||||
_(vrev64.8 rbuf, rbuf))
|
_(vrev64.8 rbuf, rbuf))
|
||||||
|
|
||||||
|
@ -285,12 +285,12 @@ _gcry_ghash_armv8_ce_pmull:
|
||||||
bhs .Loop_4
|
bhs .Loop_4
|
||||||
|
|
||||||
.Lend_4:
|
.Lend_4:
|
||||||
/* (in0 ^ hash) * H? => rr2:rr3 */
|
/* (in0 ^ hash) * H⁴ => rr2:rr3 */
|
||||||
/* (in1) * H³ => rr0:rr1 */
|
/* (in1) * H³ => rr0:rr1 */
|
||||||
PMUL_128x128_2(rr0, rr1, rbuf1, rh3, rr2, rr3, rhash, rh4, rt1, rt0, __)
|
PMUL_128x128_2(rr0, rr1, rbuf1, rh3, rr2, rr3, rhash, rh4, rt1, rt0, __)
|
||||||
|
|
||||||
/* (in2) * H² => rhash:rbuf */
|
/* (in2) * H² => rhash:rbuf */
|
||||||
/* (in3) * H¹ => rbuf1:rbuf2 */
|
/* (in3) * H¹ => rbuf1:rbuf2 */
|
||||||
PMUL_128x128_2(rhash, rbuf, rbuf2, rh2, rbuf1, rbuf2, rbuf3, rh1, rt0, rt1,
|
PMUL_128x128_2(rhash, rbuf, rbuf2, rh2, rbuf1, rbuf2, rbuf3, rh1, rt0, rt1,
|
||||||
_(veor rr0, rr0, rr2;
|
_(veor rr0, rr0, rr2;
|
||||||
veor rr1, rr1, rr3))
|
veor rr1, rr1, rr3))
|
||||||
|
@ -396,24 +396,24 @@ _gcry_ghash_setup_armv8_ce_pmull:
|
||||||
vmov rbuf1, rhash
|
vmov rbuf1, rhash
|
||||||
GCM_LSH_1(r0, rhash_l, rhash_h, rrconst_h, rh1_l, rh1_h, rt1_l) /* H<<<1 */
|
GCM_LSH_1(r0, rhash_l, rhash_h, rrconst_h, rh1_l, rh1_h, rt1_l) /* H<<<1 */
|
||||||
|
|
||||||
/* H² */
|
/* H² */
|
||||||
PMUL_128x128(rr0, rr1, rbuf1, rh1, rt0, __)
|
PMUL_128x128(rr0, rr1, rbuf1, rh1, rt0, __)
|
||||||
REDUCTION(rh2, rr0, rr1, rrconst_h, rt0, __)
|
REDUCTION(rh2, rr0, rr1, rrconst_h, rt0, __)
|
||||||
vmov rhash, rh2
|
vmov rhash, rh2
|
||||||
GCM_LSH_1(r1, rh2_l, rh2_h, rrconst_h, rbuf1_l, rbuf1_h, rt1_l) /* H²<<<1 */
|
GCM_LSH_1(r1, rh2_l, rh2_h, rrconst_h, rbuf1_l, rbuf1_h, rt1_l) /* H²<<<1 */
|
||||||
add r1, r1, #16
|
add r1, r1, #16
|
||||||
|
|
||||||
/* H³ */
|
/* H³ */
|
||||||
PMUL_128x128(rr0, rr1, rhash, rh1, rt1, __)
|
PMUL_128x128(rr0, rr1, rhash, rh1, rt1, __)
|
||||||
REDUCTION(rh3, rr0, rr1, rrconst_h, rt1, __)
|
REDUCTION(rh3, rr0, rr1, rrconst_h, rt1, __)
|
||||||
|
|
||||||
/* H? */
|
/* H⁴ */
|
||||||
PMUL_128x128(rr0, rr1, rhash, rbuf1, rt0, __)
|
PMUL_128x128(rr0, rr1, rhash, rbuf1, rt0, __)
|
||||||
REDUCTION(rh4, rr0, rr1, rrconst_h, rt0, __)
|
REDUCTION(rh4, rr0, rr1, rrconst_h, rt0, __)
|
||||||
|
|
||||||
GCM_LSH_1(r1, rh3_l, rh3_h, rrconst_h, rt0_l, rt0_h, rt1_l) /* H³<<<1 */
|
GCM_LSH_1(r1, rh3_l, rh3_h, rrconst_h, rt0_l, rt0_h, rt1_l) /* H³<<<1 */
|
||||||
add r1, r1, #16
|
add r1, r1, #16
|
||||||
GCM_LSH_1(r1, rh4_l, rh4_h, rrconst_h, rt0_l, rt0_h, rt1_l) /* H?<<<1 */
|
GCM_LSH_1(r1, rh4_l, rh4_h, rrconst_h, rt0_l, rt0_h, rt1_l) /* H⁴<<<1 */
|
||||||
|
|
||||||
CLEAR_REG(rt0)
|
CLEAR_REG(rt0)
|
||||||
CLEAR_REG(rt1)
|
CLEAR_REG(rt1)
|
||||||
|
|
|
@ -77,8 +77,8 @@ gcry_gcm_reduction_constant:
|
||||||
|
|
||||||
/* GHASH macros */
|
/* GHASH macros */
|
||||||
|
|
||||||
/* See "Gouvêa, C. P. L. & López, J. Implementing GCM on ARMv8. Topics in
|
/* See "Gouvêa, C. P. L. & López, J. Implementing GCM on ARMv8. Topics in
|
||||||
* Cryptology — CT-RSA 2015" for details.
|
* Cryptology — CT-RSA 2015" for details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Input: 'a' and 'b', Output: 'r0:r1' (low 128-bits in r0, high in r1) */
|
/* Input: 'a' and 'b', Output: 'r0:r1' (low 128-bits in r0, high in r1) */
|
||||||
|
@ -221,9 +221,9 @@ _gcry_ghash_armv8_ce_pmull:
|
||||||
|
|
||||||
.Loop_6:
|
.Loop_6:
|
||||||
|
|
||||||
/* (in1) * H? => rr0:rr1 */
|
/* (in1) * H⁵ => rr0:rr1 */
|
||||||
/* (in2) * H? => rr2:rr3 */
|
/* (in2) * H⁴ => rr2:rr3 */
|
||||||
/* (in0 ^ hash) * H? => rr4:rr5 */
|
/* (in0 ^ hash) * H⁶ => rr4:rr5 */
|
||||||
PMUL_128x128_3(rr0, rr1, rbuf1, rh5, t0, t1,
|
PMUL_128x128_3(rr0, rr1, rbuf1, rh5, t0, t1,
|
||||||
rr2, rr3, rbuf2, rh4, t2, t3,
|
rr2, rr3, rbuf2, rh4, t2, t3,
|
||||||
rr4, rr5, rhash, rh6, t4, t5,
|
rr4, rr5, rhash, rh6, t4, t5,
|
||||||
|
@ -235,9 +235,9 @@ _gcry_ghash_armv8_ce_pmull:
|
||||||
eor rr0.16b, rr0.16b, rr2.16b
|
eor rr0.16b, rr0.16b, rr2.16b
|
||||||
eor rr1.16b, rr1.16b, rr3.16b
|
eor rr1.16b, rr1.16b, rr3.16b
|
||||||
|
|
||||||
/* (in3) * H³ => rr2:rr3 */
|
/* (in3) * H³ => rr2:rr3 */
|
||||||
/* (in4) * H² => rr6:rr7 */
|
/* (in4) * H² => rr6:rr7 */
|
||||||
/* (in5) * H¹ => rr8:rr9 */
|
/* (in5) * H¹ => rr8:rr9 */
|
||||||
PMUL_128x128_3(rr2, rr3, rbuf3, rh3, t0, t1,
|
PMUL_128x128_3(rr2, rr3, rbuf3, rh3, t0, t1,
|
||||||
rr6, rr7, rbuf4, rh2, t2, t3,
|
rr6, rr7, rbuf4, rh2, t2, t3,
|
||||||
rr8, rr9, rbuf5, rh1, t4, t5,
|
rr8, rr9, rbuf5, rh1, t4, t5,
|
||||||
|
@ -266,9 +266,9 @@ _gcry_ghash_armv8_ce_pmull:
|
||||||
|
|
||||||
.Lend_6:
|
.Lend_6:
|
||||||
|
|
||||||
/* (in1) * H? => rr0:rr1 */
|
/* (in1) * H⁵ => rr0:rr1 */
|
||||||
/* (in0 ^ hash) * H? => rr2:rr3 */
|
/* (in0 ^ hash) * H⁶ => rr2:rr3 */
|
||||||
/* (in2) * H? => rr4:rr5 */
|
/* (in2) * H⁴ => rr4:rr5 */
|
||||||
PMUL_128x128_3(rr0, rr1, rbuf1, rh5, t0, t1,
|
PMUL_128x128_3(rr0, rr1, rbuf1, rh5, t0, t1,
|
||||||
rr2, rr3, rhash, rh6, t2, t3,
|
rr2, rr3, rhash, rh6, t2, t3,
|
||||||
rr4, rr5, rbuf2, rh4, t4, t5,
|
rr4, rr5, rbuf2, rh4, t4, t5,
|
||||||
|
@ -278,9 +278,9 @@ _gcry_ghash_armv8_ce_pmull:
|
||||||
eor rr0.16b, rr0.16b, rr4.16b
|
eor rr0.16b, rr0.16b, rr4.16b
|
||||||
eor rr1.16b, rr1.16b, rr5.16b
|
eor rr1.16b, rr1.16b, rr5.16b
|
||||||
|
|
||||||
/* (in3) * H³ => rhash:rbuf */
|
/* (in3) * H³ => rhash:rbuf */
|
||||||
/* (in4) * H² => rr6:rr7 */
|
/* (in4) * H² => rr6:rr7 */
|
||||||
/* (in5) * H¹ => rr8:rr9 */
|
/* (in5) * H¹ => rr8:rr9 */
|
||||||
PMUL_128x128_3(rhash, rbuf, rbuf3, rh3, t0, t1,
|
PMUL_128x128_3(rhash, rbuf, rbuf3, rh3, t0, t1,
|
||||||
rr6, rr7, rbuf4, rh2, t2, t3,
|
rr6, rr7, rbuf4, rh2, t2, t3,
|
||||||
rr8, rr9, rbuf5, rh1, t4, t5,
|
rr8, rr9, rbuf5, rh1, t4, t5,
|
||||||
|
@ -377,30 +377,30 @@ _gcry_ghash_setup_armv8_ce_pmull:
|
||||||
|
|
||||||
GET_DATA_POINTER(x2, .Lrconst)
|
GET_DATA_POINTER(x2, .Lrconst)
|
||||||
|
|
||||||
/* H¹ */
|
/* H¹ */
|
||||||
ld1 {rh1.16b}, [x0]
|
ld1 {rh1.16b}, [x0]
|
||||||
rbit rh1.16b, rh1.16b
|
rbit rh1.16b, rh1.16b
|
||||||
st1 {rh1.16b}, [x0]
|
st1 {rh1.16b}, [x0]
|
||||||
|
|
||||||
ld1r {rrconst.2d}, [x2]
|
ld1r {rrconst.2d}, [x2]
|
||||||
|
|
||||||
/* H² */
|
/* H² */
|
||||||
PMUL_128x128(rr0, rr1, rh1, rh1, t0, t1, __)
|
PMUL_128x128(rr0, rr1, rh1, rh1, t0, t1, __)
|
||||||
REDUCTION(rh2, rr0, rr1, rrconst, t0, t1, __, __, __)
|
REDUCTION(rh2, rr0, rr1, rrconst, t0, t1, __, __, __)
|
||||||
|
|
||||||
/* H³ */
|
/* H³ */
|
||||||
PMUL_128x128(rr0, rr1, rh2, rh1, t0, t1, __)
|
PMUL_128x128(rr0, rr1, rh2, rh1, t0, t1, __)
|
||||||
REDUCTION(rh3, rr0, rr1, rrconst, t0, t1, __, __, __)
|
REDUCTION(rh3, rr0, rr1, rrconst, t0, t1, __, __, __)
|
||||||
|
|
||||||
/* H? */
|
/* H⁴ */
|
||||||
PMUL_128x128(rr0, rr1, rh2, rh2, t0, t1, __)
|
PMUL_128x128(rr0, rr1, rh2, rh2, t0, t1, __)
|
||||||
REDUCTION(rh4, rr0, rr1, rrconst, t0, t1, __, __, __)
|
REDUCTION(rh4, rr0, rr1, rrconst, t0, t1, __, __, __)
|
||||||
|
|
||||||
/* H? */
|
/* H⁵ */
|
||||||
PMUL_128x128(rr0, rr1, rh2, rh3, t0, t1, __)
|
PMUL_128x128(rr0, rr1, rh2, rh3, t0, t1, __)
|
||||||
REDUCTION(rh5, rr0, rr1, rrconst, t0, t1, __, __, __)
|
REDUCTION(rh5, rr0, rr1, rrconst, t0, t1, __, __, __)
|
||||||
|
|
||||||
/* H? */
|
/* H⁶ */
|
||||||
PMUL_128x128(rr0, rr1, rh3, rh3, t0, t1, __)
|
PMUL_128x128(rr0, rr1, rh3, rh3, t0, t1, __)
|
||||||
REDUCTION(rh6, rr0, rr1, rrconst, t0, t1, __, __, __)
|
REDUCTION(rh6, rr0, rr1, rrconst, t0, t1, __, __, __)
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Intel PCLMUL ghash based on white paper:
|
Intel PCLMUL ghash based on white paper:
|
||||||
"Intel® Carry-Less Multiplication Instruction and its Usage for Computing the
|
"Intel® Carry-Less Multiplication Instruction and its Usage for Computing the
|
||||||
GCM Mode - Rev 2.01"; Shay Gueron, Michael E. Kounavis.
|
GCM Mode - Rev 2.01"; Shay Gueron, Michael E. Kounavis.
|
||||||
*/
|
*/
|
||||||
static inline void gfmul_pclmul(void)
|
static inline void gfmul_pclmul(void)
|
||||||
|
@ -123,10 +123,10 @@ static inline void gfmul_pclmul(void)
|
||||||
static inline void gfmul_pclmul_aggr4(void)
|
static inline void gfmul_pclmul_aggr4(void)
|
||||||
{
|
{
|
||||||
/* Input:
|
/* Input:
|
||||||
H¹: XMM0 X_i : XMM6
|
H¹: XMM0 X_i : XMM6
|
||||||
H²: XMM8 X_(i-1) : XMM3
|
H²: XMM8 X_(i-1) : XMM3
|
||||||
H³: XMM9 X_(i-2) : XMM2
|
H³: XMM9 X_(i-2) : XMM2
|
||||||
H?: XMM10 X_(i-3)?Y_(i-4): XMM1
|
H⁴: XMM10 X_(i-3)⊕Y_(i-4): XMM1
|
||||||
Output:
|
Output:
|
||||||
Y_i: XMM1
|
Y_i: XMM1
|
||||||
Inputs XMM0 stays unmodified.
|
Inputs XMM0 stays unmodified.
|
||||||
|
@ -272,7 +272,7 @@ _gcry_ghash_setup_intel_pclmul (gcry_cipher_hd_t c)
|
||||||
:
|
:
|
||||||
: [h_1] "m" (*tmp));
|
: [h_1] "m" (*tmp));
|
||||||
|
|
||||||
gfmul_pclmul (); /* H•H => H² */
|
gfmul_pclmul (); /* H•H => H² */
|
||||||
|
|
||||||
asm volatile ("movdqu %%xmm1, 0*16(%[h_234])\n\t"
|
asm volatile ("movdqu %%xmm1, 0*16(%[h_234])\n\t"
|
||||||
"movdqa %%xmm1, %%xmm8\n\t"
|
"movdqa %%xmm1, %%xmm8\n\t"
|
||||||
|
@ -280,7 +280,7 @@ _gcry_ghash_setup_intel_pclmul (gcry_cipher_hd_t c)
|
||||||
: [h_234] "r" (c->u_mode.gcm.gcm_table)
|
: [h_234] "r" (c->u_mode.gcm.gcm_table)
|
||||||
: "memory");
|
: "memory");
|
||||||
|
|
||||||
gfmul_pclmul (); /* H•H² => H³ */
|
gfmul_pclmul (); /* H•H² => H³ */
|
||||||
|
|
||||||
asm volatile ("movdqa %%xmm8, %%xmm0\n\t"
|
asm volatile ("movdqa %%xmm8, %%xmm0\n\t"
|
||||||
"movdqu %%xmm1, 1*16(%[h_234])\n\t"
|
"movdqu %%xmm1, 1*16(%[h_234])\n\t"
|
||||||
|
@ -289,7 +289,7 @@ _gcry_ghash_setup_intel_pclmul (gcry_cipher_hd_t c)
|
||||||
: [h_234] "r" (c->u_mode.gcm.gcm_table)
|
: [h_234] "r" (c->u_mode.gcm.gcm_table)
|
||||||
: "memory");
|
: "memory");
|
||||||
|
|
||||||
gfmul_pclmul (); /* H²•H² => H? */
|
gfmul_pclmul (); /* H²•H² => H⁴ */
|
||||||
|
|
||||||
asm volatile ("movdqu %%xmm1, 2*16(%[h_234])\n\t"
|
asm volatile ("movdqu %%xmm1, 2*16(%[h_234])\n\t"
|
||||||
:
|
:
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
* http://web.cs.ucdavis.edu/~rogaway/ocb/license1.pdf for the full
|
* http://web.cs.ucdavis.edu/~rogaway/ocb/license1.pdf for the full
|
||||||
* license document; it basically says:
|
* license document; it basically says:
|
||||||
*
|
*
|
||||||
* License 1 — License for Open-Source Software Implementations of OCB
|
* License 1 — License for Open-Source Software Implementations of OCB
|
||||||
* (Jan 9, 2013)
|
* (Jan 9, 2013)
|
||||||
*
|
*
|
||||||
* Under this license, you are authorized to make, use, and
|
* Under this license, you are authorized to make, use, and
|
||||||
|
|
|
@ -74,7 +74,7 @@ static const struct crc32_consts_s crc32_consts ALIGNED_16 =
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* CLMUL constants for CRC24RFC2440 (polynomial multiplied with x?). */
|
/* CLMUL constants for CRC24RFC2440 (polynomial multiplied with x⁸). */
|
||||||
static const struct crc32_consts_s crc24rfc2440_consts ALIGNED_16 =
|
static const struct crc32_consts_s crc24rfc2440_consts ALIGNED_16 =
|
||||||
{
|
{
|
||||||
{ /* k[6] = x^(32*y) mod P(x) << 32*/
|
{ /* k[6] = x^(32*y) mod P(x) << 32*/
|
||||||
|
|
|
@ -735,7 +735,7 @@ static const u32 crc24_table[1024] =
|
||||||
static inline
|
static inline
|
||||||
u32 crc24_init (void)
|
u32 crc24_init (void)
|
||||||
{
|
{
|
||||||
/* Transformed to 32-bit CRC by multiplied by x? and then byte swapped. */
|
/* Transformed to 32-bit CRC by multiplied by x⁸ and then byte swapped. */
|
||||||
return 0xce04b7; /* _gcry_bswap(0xb704ce << 8) */
|
return 0xce04b7; /* _gcry_bswap(0xb704ce << 8) */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -816,7 +816,7 @@ _gcry_ecc_eddsa_verify (gcry_mpi_t input, ECC_public_key *pkey,
|
||||||
_gcry_mpi_set_buffer (h, digest, 64, 0);
|
_gcry_mpi_set_buffer (h, digest, 64, 0);
|
||||||
|
|
||||||
/* According to the paper the best way for verification is:
|
/* According to the paper the best way for verification is:
|
||||||
encodepoint(sG - h·Q) = encodepoint(r)
|
encodepoint(sG - h·Q) = encodepoint(r)
|
||||||
because we don't need to decode R. */
|
because we don't need to decode R. */
|
||||||
{
|
{
|
||||||
void *sbuf;
|
void *sbuf;
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ The Keccak sponge function, designed by Guido Bertoni, Joan Daemen,
|
@ The Keccak sponge function, designed by Guido Bertoni, Joan Daemen,
|
||||||
@ Michaël Peeters and Gilles Van Assche. For more information, feedback or
|
@ Michaël Peeters and Gilles Van Assche. For more information, feedback or
|
||||||
@ questions, please refer to our website: http://keccak.noekeon.org/
|
@ questions, please refer to our website: http://keccak.noekeon.org/
|
||||||
@
|
@
|
||||||
@ Implementation by Ronny Van Keer, hereby denoted as "the implementer".
|
@ Implementation by Ronny Van Keer, hereby denoted as "the implementer".
|
||||||
|
|
|
@ -1524,8 +1524,8 @@ _gcry_aes_ocb_auth_armv8_ce:
|
||||||
.globl _gcry_aes_sbox4_armv8_ce
|
.globl _gcry_aes_sbox4_armv8_ce
|
||||||
.type _gcry_aes_sbox4_armv8_ce,%function;
|
.type _gcry_aes_sbox4_armv8_ce,%function;
|
||||||
_gcry_aes_sbox4_armv8_ce:
|
_gcry_aes_sbox4_armv8_ce:
|
||||||
/* See "Gouvêa, C. P. L. & López, J. Implementing GCM on ARMv8. Topics in
|
/* See "Gouvêa, C. P. L. & López, J. Implementing GCM on ARMv8. Topics in
|
||||||
* Cryptology — CT-RSA 2015" for details.
|
* Cryptology — CT-RSA 2015" for details.
|
||||||
*/
|
*/
|
||||||
vmov.i8 q0, #0x52
|
vmov.i8 q0, #0x52
|
||||||
vmov.i8 q1, #0
|
vmov.i8 q1, #0
|
||||||
|
|
|
@ -1283,8 +1283,8 @@ _gcry_aes_ocb_auth_armv8_ce:
|
||||||
.globl _gcry_aes_sbox4_armv8_ce
|
.globl _gcry_aes_sbox4_armv8_ce
|
||||||
.type _gcry_aes_sbox4_armv8_ce,%function;
|
.type _gcry_aes_sbox4_armv8_ce,%function;
|
||||||
_gcry_aes_sbox4_armv8_ce:
|
_gcry_aes_sbox4_armv8_ce:
|
||||||
/* See "Gouvêa, C. P. L. & López, J. Implementing GCM on ARMv8. Topics in
|
/* See "Gouvêa, C. P. L. & López, J. Implementing GCM on ARMv8. Topics in
|
||||||
* Cryptology — CT-RSA 2015" for details.
|
* Cryptology — CT-RSA 2015" for details.
|
||||||
*/
|
*/
|
||||||
movi v0.16b, #0x52
|
movi v0.16b, #0x52
|
||||||
movi v1.16b, #0
|
movi v1.16b, #0
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* salsa20.c - Bernstein's Salsa20 cipher
|
/* salsa20.c - Bernstein's Salsa20 cipher
|
||||||
* Copyright (C) 2012 Simon Josefsson, Niels Möller
|
* Copyright (C) 2012 Simon Josefsson, Niels Möller
|
||||||
* Copyright (C) 2013 g10 Code GmbH
|
* Copyright (C) 2013 g10 Code GmbH
|
||||||
*
|
*
|
||||||
* This file is part of Libgcrypt.
|
* This file is part of Libgcrypt.
|
||||||
|
|
|
@ -94,8 +94,8 @@
|
||||||
/*
|
/*
|
||||||
* These are the S-Boxes of Serpent from following research paper.
|
* These are the S-Boxes of Serpent from following research paper.
|
||||||
*
|
*
|
||||||
* D. A. Osvik, “Speeding up Serpent,” in Third AES Candidate Conference,
|
* D. A. Osvik, “Speeding up Serpent,” in Third AES Candidate Conference,
|
||||||
* (New York, New York, USA), p. 317–329, National Institute of Standards and
|
* (New York, New York, USA), p. 317–329, National Institute of Standards and
|
||||||
* Technology, 2000.
|
* Technology, 2000.
|
||||||
*
|
*
|
||||||
* Paper is also available at: http://www.ii.uib.no/~osvik/pub/aes3.pdf
|
* Paper is also available at: http://www.ii.uib.no/~osvik/pub/aes3.pdf
|
||||||
|
|
|
@ -104,8 +104,8 @@
|
||||||
/*
|
/*
|
||||||
* These are the S-Boxes of Serpent from following research paper.
|
* These are the S-Boxes of Serpent from following research paper.
|
||||||
*
|
*
|
||||||
* D. A. Osvik, “Speeding up Serpent,” in Third AES Candidate Conference,
|
* D. A. Osvik, “Speeding up Serpent,” in Third AES Candidate Conference,
|
||||||
* (New York, New York, USA), p. 317–329, National Institute of Standards and
|
* (New York, New York, USA), p. 317–329, National Institute of Standards and
|
||||||
* Technology, 2000.
|
* Technology, 2000.
|
||||||
*
|
*
|
||||||
* Paper is also available at: http://www.ii.uib.no/~osvik/pub/aes3.pdf
|
* Paper is also available at: http://www.ii.uib.no/~osvik/pub/aes3.pdf
|
||||||
|
|
|
@ -123,8 +123,8 @@
|
||||||
/*
|
/*
|
||||||
* These are the S-Boxes of Serpent from following research paper.
|
* These are the S-Boxes of Serpent from following research paper.
|
||||||
*
|
*
|
||||||
* D. A. Osvik, “Speeding up Serpent,” in Third AES Candidate Conference,
|
* D. A. Osvik, “Speeding up Serpent,” in Third AES Candidate Conference,
|
||||||
* (New York, New York, USA), p. 317–329, National Institute of Standards and
|
* (New York, New York, USA), p. 317–329, National Institute of Standards and
|
||||||
* Technology, 2000.
|
* Technology, 2000.
|
||||||
*
|
*
|
||||||
* Paper is also available at: http://www.ii.uib.no/~osvik/pub/aes3.pdf
|
* Paper is also available at: http://www.ii.uib.no/~osvik/pub/aes3.pdf
|
||||||
|
|
|
@ -229,8 +229,8 @@ static const char *serpent_test (void);
|
||||||
/*
|
/*
|
||||||
* These are the S-Boxes of Serpent from following research paper.
|
* These are the S-Boxes of Serpent from following research paper.
|
||||||
*
|
*
|
||||||
* D. A. Osvik, “Speeding up Serpent,” in Third AES Candidate Conference,
|
* D. A. Osvik, “Speeding up Serpent,” in Third AES Candidate Conference,
|
||||||
* (New York, New York, USA), p. 317–329, National Institute of Standards and
|
* (New York, New York, USA), p. 317–329, National Institute of Standards and
|
||||||
* Technology, 2000.
|
* Technology, 2000.
|
||||||
*
|
*
|
||||||
* Paper is also available at: http://www.ii.uib.no/~osvik/pub/aes3.pdf
|
* Paper is also available at: http://www.ii.uib.no/~osvik/pub/aes3.pdf
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
2009-02-22 Werner Koch <wk@g10code.com>
|
2009-02-22 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* gcrypt.texi (Memory allocation): Fix describion of gcry-calloc.
|
* gcrypt.texi (Memory allocation): Fix describion of gcry-calloc.
|
||||||
Reported by Sergi Blanch i Torné.
|
Reported by Sergi Blanch i Torné.
|
||||||
|
|
||||||
2008-12-10 Werner Koch <wk@g10code.com>
|
2008-12-10 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
|
|
|
@ -269,7 +269,7 @@ gcc -c foo.c `libgcrypt-config --cflags`
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
Adding the output of @samp{libgcrypt-config --cflags} to the
|
Adding the output of @samp{libgcrypt-config --cflags} to the
|
||||||
compiler’s command line will ensure that the compiler can find the
|
compiler’s command line will ensure that the compiler can find the
|
||||||
Libgcrypt header file.
|
Libgcrypt header file.
|
||||||
|
|
||||||
A similar problem occurs when linking the program with the library.
|
A similar problem occurs when linking the program with the library.
|
||||||
|
@ -2283,7 +2283,7 @@ general only support uncompressed points, thus the first byte needs to
|
||||||
be @code{0x04}. However ``EdDSA'' describes its own compression
|
be @code{0x04}. However ``EdDSA'' describes its own compression
|
||||||
scheme which is used by default; the non-standard first byte
|
scheme which is used by default; the non-standard first byte
|
||||||
@code{0x40} may optionally be used to explicit flag the use of the
|
@code{0x40} may optionally be used to explicit flag the use of the
|
||||||
algorithm’s native compression method.
|
algorithm’s native compression method.
|
||||||
|
|
||||||
The public key is similar with "private-key" replaced by "public-key"
|
The public key is similar with "private-key" replaced by "public-key"
|
||||||
and no @var{d-mpi}.
|
and no @var{d-mpi}.
|
||||||
|
@ -5798,7 +5798,7 @@ The generation of random prime numbers is based on the Lim and Lee
|
||||||
algorithm to create practically save primes.@footnote{Chae Hoon Lim
|
algorithm to create practically save primes.@footnote{Chae Hoon Lim
|
||||||
and Pil Joong Lee. A key recovery attack on discrete log-based schemes
|
and Pil Joong Lee. A key recovery attack on discrete log-based schemes
|
||||||
using a prime order subgroup. In Burton S. Kaliski Jr., editor,
|
using a prime order subgroup. In Burton S. Kaliski Jr., editor,
|
||||||
Advances in Cryptology: Crypto '97, pages 249-263, Berlin /
|
Advances in Cryptology: Crypto '97, pages 249-263, Berlin /
|
||||||
Heidelberg / New York, 1997. Springer-Verlag. Described on page 260.}
|
Heidelberg / New York, 1997. Springer-Verlag. Described on page 260.}
|
||||||
This algorithm creates a pool of smaller primes, select a few of them
|
This algorithm creates a pool of smaller primes, select a few of them
|
||||||
to create candidate primes of the form @math{2 * p_0 * p_1 * ... * p_n
|
to create candidate primes of the form @math{2 * p_0 * p_1 * ... * p_n
|
||||||
|
|
|
@ -251,7 +251,7 @@
|
||||||
2004-12-16 Werner Koch <wk@g10code.com>
|
2004-12-16 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* config.links (mpi_optional_modules): Move entry for powerpc64
|
* config.links (mpi_optional_modules): Move entry for powerpc64
|
||||||
before generic powerpc. Suggested by Rafael Ávila de Espíndola.
|
before generic powerpc. Suggested by Rafael Ávila de Espíndola.
|
||||||
|
|
||||||
2004-03-02 Werner Koch <wk@gnupg.org>
|
2004-03-02 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
@ -788,7 +788,7 @@ Thu Apr 9 11:31:36 1998 Werner Koch (wk@isil.d.shuttle.de)
|
||||||
|
|
||||||
Wed Apr 8 09:44:33 1998 Werner Koch (wk@isil.d.shuttle.de)
|
Wed Apr 8 09:44:33 1998 Werner Koch (wk@isil.d.shuttle.de)
|
||||||
|
|
||||||
* config.links: Applied small fix from Ulf Möller.
|
* config.links: Applied small fix from Ulf Möller.
|
||||||
|
|
||||||
Mon Apr 6 12:38:52 1998 Werner Koch (wk@isil.d.shuttle.de)
|
Mon Apr 6 12:38:52 1998 Werner Koch (wk@isil.d.shuttle.de)
|
||||||
|
|
||||||
|
|
|
@ -871,16 +871,16 @@ dup_point_edwards (mpi_point_t result, mpi_point_t point, mpi_ec_t ctx)
|
||||||
ec_mul2 (J, H, ctx);
|
ec_mul2 (J, H, ctx);
|
||||||
ec_subm (J, F, J, ctx);
|
ec_subm (J, F, J, ctx);
|
||||||
|
|
||||||
/* X_3 = (B - C - D) · J */
|
/* X_3 = (B - C - D) · J */
|
||||||
ec_subm (X3, B, C, ctx);
|
ec_subm (X3, B, C, ctx);
|
||||||
ec_subm (X3, X3, D, ctx);
|
ec_subm (X3, X3, D, ctx);
|
||||||
ec_mulm (X3, X3, J, ctx);
|
ec_mulm (X3, X3, J, ctx);
|
||||||
|
|
||||||
/* Y_3 = F · (E - D) */
|
/* Y_3 = F · (E - D) */
|
||||||
ec_subm (Y3, E, D, ctx);
|
ec_subm (Y3, E, D, ctx);
|
||||||
ec_mulm (Y3, Y3, F, ctx);
|
ec_mulm (Y3, Y3, F, ctx);
|
||||||
|
|
||||||
/* Z_3 = F · J */
|
/* Z_3 = F · J */
|
||||||
ec_mulm (Z3, F, J, ctx);
|
ec_mulm (Z3, F, J, ctx);
|
||||||
|
|
||||||
#undef X1
|
#undef X1
|
||||||
|
@ -1101,19 +1101,19 @@ add_points_edwards (mpi_point_t result,
|
||||||
|
|
||||||
/* Compute: (X_3 : Y_3 : Z_3) = (X_1 : Y_1 : Z_1) + (X_2 : Y_2 : Z_3) */
|
/* Compute: (X_3 : Y_3 : Z_3) = (X_1 : Y_1 : Z_1) + (X_2 : Y_2 : Z_3) */
|
||||||
|
|
||||||
/* A = Z1 · Z2 */
|
/* A = Z1 · Z2 */
|
||||||
ec_mulm (A, Z1, Z2, ctx);
|
ec_mulm (A, Z1, Z2, ctx);
|
||||||
|
|
||||||
/* B = A^2 */
|
/* B = A^2 */
|
||||||
ec_pow2 (B, A, ctx);
|
ec_pow2 (B, A, ctx);
|
||||||
|
|
||||||
/* C = X1 · X2 */
|
/* C = X1 · X2 */
|
||||||
ec_mulm (C, X1, X2, ctx);
|
ec_mulm (C, X1, X2, ctx);
|
||||||
|
|
||||||
/* D = Y1 · Y2 */
|
/* D = Y1 · Y2 */
|
||||||
ec_mulm (D, Y1, Y2, ctx);
|
ec_mulm (D, Y1, Y2, ctx);
|
||||||
|
|
||||||
/* E = d · C · D */
|
/* E = d · C · D */
|
||||||
ec_mulm (E, ctx->b, C, ctx);
|
ec_mulm (E, ctx->b, C, ctx);
|
||||||
ec_mulm (E, E, D, ctx);
|
ec_mulm (E, E, D, ctx);
|
||||||
|
|
||||||
|
@ -1123,7 +1123,7 @@ add_points_edwards (mpi_point_t result,
|
||||||
/* G = B + E */
|
/* G = B + E */
|
||||||
ec_addm (G, B, E, ctx);
|
ec_addm (G, B, E, ctx);
|
||||||
|
|
||||||
/* X_3 = A · F · ((X_1 + Y_1) · (X_2 + Y_2) - C - D) */
|
/* X_3 = A · F · ((X_1 + Y_1) · (X_2 + Y_2) - C - D) */
|
||||||
ec_addm (tmp, X1, Y1, ctx);
|
ec_addm (tmp, X1, Y1, ctx);
|
||||||
ec_addm (X3, X2, Y2, ctx);
|
ec_addm (X3, X2, Y2, ctx);
|
||||||
ec_mulm (X3, X3, tmp, ctx);
|
ec_mulm (X3, X3, tmp, ctx);
|
||||||
|
@ -1132,7 +1132,7 @@ add_points_edwards (mpi_point_t result,
|
||||||
ec_mulm (X3, X3, F, ctx);
|
ec_mulm (X3, X3, F, ctx);
|
||||||
ec_mulm (X3, X3, A, ctx);
|
ec_mulm (X3, X3, A, ctx);
|
||||||
|
|
||||||
/* Y_3 = A · G · (D - aC) */
|
/* Y_3 = A · G · (D - aC) */
|
||||||
if (ctx->dialect == ECC_DIALECT_ED25519)
|
if (ctx->dialect == ECC_DIALECT_ED25519)
|
||||||
{
|
{
|
||||||
ec_addm (Y3, D, C, ctx);
|
ec_addm (Y3, D, C, ctx);
|
||||||
|
@ -1145,7 +1145,7 @@ add_points_edwards (mpi_point_t result,
|
||||||
ec_mulm (Y3, Y3, G, ctx);
|
ec_mulm (Y3, Y3, G, ctx);
|
||||||
ec_mulm (Y3, Y3, A, ctx);
|
ec_mulm (Y3, Y3, A, ctx);
|
||||||
|
|
||||||
/* Z_3 = F · G */
|
/* Z_3 = F · G */
|
||||||
ec_mulm (Z3, F, G, ctx);
|
ec_mulm (Z3, F, G, ctx);
|
||||||
|
|
||||||
|
|
||||||
|
@ -1538,7 +1538,7 @@ _gcry_mpi_ec_curve_point (gcry_mpi_point_t point, mpi_ec_t ctx)
|
||||||
|
|
||||||
xxx = mpi_new (0);
|
xxx = mpi_new (0);
|
||||||
|
|
||||||
/* y^2 == x^3 + a·x + b */
|
/* y^2 == x^3 + a·x + b */
|
||||||
ec_pow2 (y, y, ctx);
|
ec_pow2 (y, y, ctx);
|
||||||
|
|
||||||
ec_pow3 (xxx, x, ctx);
|
ec_pow3 (xxx, x, ctx);
|
||||||
|
@ -1559,7 +1559,7 @@ _gcry_mpi_ec_curve_point (gcry_mpi_point_t point, mpi_ec_t ctx)
|
||||||
if (_gcry_mpi_ec_get_affine (x, NULL, point, ctx))
|
if (_gcry_mpi_ec_get_affine (x, NULL, point, ctx))
|
||||||
goto leave;
|
goto leave;
|
||||||
|
|
||||||
/* The equation is: b * y^2 == x^3 + a · x^2 + x */
|
/* The equation is: b * y^2 == x^3 + a · x^2 + x */
|
||||||
/* We check if right hand is quadratic residue or not by
|
/* We check if right hand is quadratic residue or not by
|
||||||
Euler's criterion. */
|
Euler's criterion. */
|
||||||
/* CTX->A has (a-2)/4 and CTX->B has b^-1 */
|
/* CTX->A has (a-2)/4 and CTX->B has b^-1 */
|
||||||
|
@ -1587,7 +1587,7 @@ _gcry_mpi_ec_curve_point (gcry_mpi_point_t point, mpi_ec_t ctx)
|
||||||
if (_gcry_mpi_ec_get_affine (x, y, point, ctx))
|
if (_gcry_mpi_ec_get_affine (x, y, point, ctx))
|
||||||
goto leave;
|
goto leave;
|
||||||
|
|
||||||
/* a · x^2 + y^2 - 1 - b · x^2 · y^2 == 0 */
|
/* a · x^2 + y^2 - 1 - b · x^2 · y^2 == 0 */
|
||||||
ec_pow2 (x, x, ctx);
|
ec_pow2 (x, x, ctx);
|
||||||
ec_pow2 (y, y, ctx);
|
ec_pow2 (y, y, ctx);
|
||||||
if (ctx->dialect == ECC_DIALECT_ED25519)
|
if (ctx->dialect == ECC_DIALECT_ED25519)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* rndjent.c - Driver for the jitterentropy module.
|
/* rndjent.c - Driver for the jitterentropy module.
|
||||||
* Copyright (C) 2017 g10 Code GmbH
|
* Copyright (C) 2017 g10 Code GmbH
|
||||||
* Copyright (C) 2017 Bundesamt für Sicherheit in der Informationstechnik
|
* Copyright (C) 2017 Bundesamt für Sicherheit in der Informationstechnik
|
||||||
* Copyright (C) 2013 Stephan Mueller <smueller@chronox.de>
|
* Copyright (C) 2013 Stephan Mueller <smueller@chronox.de>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|
0
third_party/libgcrypt/tests/basic_all_hwfeature_combinations.sh
поставляемый
Normal file → Executable file
0
third_party/libgcrypt/tests/basic_all_hwfeature_combinations.sh
поставляемый
Normal file → Executable file
|
@ -176,7 +176,7 @@ get_time_nsec_diff (struct nsec_time *start, struct nsec_time *end)
|
||||||
double nsecs;
|
double nsecs;
|
||||||
|
|
||||||
nsecs = end->tv.tv_sec - start->tv.tv_sec;
|
nsecs = end->tv.tv_sec - start->tv.tv_sec;
|
||||||
nsecs *= 1000000; /* sec => オsec */
|
nsecs *= 1000000; /* sec => µsec */
|
||||||
|
|
||||||
/* This way we don't have to care if tv_usec unsigned or signed. */
|
/* This way we don't have to care if tv_usec unsigned or signed. */
|
||||||
if (end->tv.tv_usec >= start->tv.tv_usec)
|
if (end->tv.tv_usec >= start->tv.tv_usec)
|
||||||
|
@ -184,7 +184,7 @@ get_time_nsec_diff (struct nsec_time *start, struct nsec_time *end)
|
||||||
else
|
else
|
||||||
nsecs -= start->tv.tv_usec - end->tv.tv_usec;
|
nsecs -= start->tv.tv_usec - end->tv.tv_usec;
|
||||||
|
|
||||||
nsecs *= 1000; /* オsec => nsec */
|
nsecs *= 1000; /* µsec => nsec */
|
||||||
|
|
||||||
return nsecs;
|
return nsecs;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
# $Id: cavs_driver.pl 1497 2009-01-22 14:01:29Z smueller $
|
# $Id: cavs_driver.pl 1497 2009-01-22 14:01:29Z smueller $
|
||||||
#
|
#
|
||||||
# CAVS test driver (based on the OpenSSL driver)
|
# CAVS test driver (based on the OpenSSL driver)
|
||||||
# Written by: Stephan Müller <sm@atsec.com>
|
# Written by: Stephan Müller <sm@atsec.com>
|
||||||
# Copyright (c) atsec information security corporation
|
# Copyright (c) atsec information security corporation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
|
|
@ -157,7 +157,7 @@ check_openpgp (void)
|
||||||
0 aes md5 1024 abcdefghijklmnop
|
0 aes md5 1024 abcdefghijklmnop
|
||||||
0 aes md5 1024 abcdefghijklmnopq
|
0 aes md5 1024 abcdefghijklmnopq
|
||||||
0 aes md5 1024 Long_sentence_used_as_passphrase
|
0 aes md5 1024 Long_sentence_used_as_passphrase
|
||||||
0 aes md5 1024 With_utf8_umlauts:äüÖß
|
0 aes md5 1024 With_utf8_umlauts:äüÖß
|
||||||
0 aes sha1 1024 a
|
0 aes sha1 1024 a
|
||||||
0 aes sha1 1024 ab
|
0 aes sha1 1024 ab
|
||||||
0 aes sha1 1024 abc
|
0 aes sha1 1024 abc
|
||||||
|
@ -176,7 +176,7 @@ check_openpgp (void)
|
||||||
0 aes sha1 1024 abcdefghijklmnopqrstu
|
0 aes sha1 1024 abcdefghijklmnopqrstu
|
||||||
0 aes sha1 1024 Long_sentence_used_as_passphrase
|
0 aes sha1 1024 Long_sentence_used_as_passphrase
|
||||||
0 aes256 sha1 1024 Long_sentence_used_as_passphrase
|
0 aes256 sha1 1024 Long_sentence_used_as_passphrase
|
||||||
0 aes sha1 1024 With_utf8_umlauts:äüÖß
|
0 aes sha1 1024 With_utf8_umlauts:äüÖß
|
||||||
3 aes sha1 1024 a
|
3 aes sha1 1024 a
|
||||||
3 aes sha1 1024 ab
|
3 aes sha1 1024 ab
|
||||||
3 aes sha1 1024 abc
|
3 aes sha1 1024 abc
|
||||||
|
@ -193,7 +193,7 @@ check_openpgp (void)
|
||||||
3 aes sha1 1024 abcdefghijklmnopqrs
|
3 aes sha1 1024 abcdefghijklmnopqrs
|
||||||
3 aes sha1 1024 abcdefghijklmnopqrst
|
3 aes sha1 1024 abcdefghijklmnopqrst
|
||||||
3 aes sha1 1024 abcdefghijklmnopqrstu
|
3 aes sha1 1024 abcdefghijklmnopqrstu
|
||||||
3 aes sha1 1024 With_utf8_umlauts:äüÖß
|
3 aes sha1 1024 With_utf8_umlauts:äüÖß
|
||||||
3 aes sha1 1024 Long_sentence_used_as_passphrase
|
3 aes sha1 1024 Long_sentence_used_as_passphrase
|
||||||
3 aes sha1 10240 Long_sentence_used_as_passphrase
|
3 aes sha1 10240 Long_sentence_used_as_passphrase
|
||||||
3 aes sha1 102400 Long_sentence_used_as_passphrase
|
3 aes sha1 102400 Long_sentence_used_as_passphrase
|
||||||
|
|
|
@ -548,8 +548,8 @@ back_and_forth (void)
|
||||||
{ "((4:sha18:\x8B\x98\xCB\x22\xA9\x82\x3C\xA7""4:2097)3:\x3B\x6F\xC9)", 0},
|
{ "((4:sha18:\x8B\x98\xCB\x22\xA9\x82\x3C\xA7""4:2097)3:\x3B\x6F\xC9)", 0},
|
||||||
{ "((sha1 #64652267686970C9# \"2097\") #3B6FC9#)", 0 },
|
{ "((sha1 #64652267686970C9# \"2097\") #3B6FC9#)", 0 },
|
||||||
{ "((4:sha18:\x64\x65\x22\x67\x68\xc3\xa4\x71""4:2097)3:\x3B\x6F\xC9)", 0},
|
{ "((4:sha18:\x64\x65\x22\x67\x68\xc3\xa4\x71""4:2097)3:\x3B\x6F\xC9)", 0},
|
||||||
{ "((sha1 \"defghäq\" \"2097\") #3B6FC9#)", 0 },
|
{ "((sha1 \"defghäq\" \"2097\") #3B6FC9#)", 0 },
|
||||||
{ "((sha1 \"de\\\"ghäq\" \"2097\") #3B6FC9#)", 0 },
|
{ "((sha1 \"de\\\"ghäq\" \"2097\") #3B6FC9#)", 0 },
|
||||||
{ NULL, 0 }
|
{ NULL, 0 }
|
||||||
};
|
};
|
||||||
int idx;
|
int idx;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче