lp:libgcrypt

Created by snd and last modified
Get this branch:
bzr branch lp:libgcrypt

Related bugs

Related blueprints

Branch information

Owner:
VCS Imports II
Project:
libgcrypt
Status:
Development

Import details

Import Status: Failed

This branch is an import of the HEAD branch of the Git repository at git://git.gnupg.org/libgcrypt.git.

The import has been suspended because it failed 5 or more times in succession.

Last successful import was .

Import started on pear and finished taking 20 seconds — see the log
Import started on galapagos and finished taking 40 seconds — see the log
Import started on neumayer and finished taking 40 seconds — see the log
Import started on pear and finished taking 25 seconds — see the log

Recent revisions

1447. By Jussi Kivilinna <email address hidden>

Prevent tail call optimization with _gcry_burn_stack

* configure.ac: New check, HAVE_GCC_ASM_VOLATILE_MEMORY.
* src/g10lib.h (_gcry_burn_stack): Rename to __gcry_burn_stack.
(__gcry_burn_stack_dummy): New.
(_gcry_burn_stack): New macro.
* src/misc.c (_gcry_burn_stack): Rename to __gcry_burn_stack.
(__gcry_burn_stack_dummy): New.
--

Tail call optimization can turn _gcry_burn_stack call in to tail jump. When
this happens, stack pointer is restored to initial state of current function.
This causes problem for _gcry_burn_stack because its callers do not count in
current function stack depth.

One solution is to prevent gcry_burn_stack being tail optimized by inserting
dummy function call behind it. Another would be to add memory barrier 'asm
volatile("":::"memory")' behind every _gcry_burn_stack call. This however
requires GCC asm support from compiler.

Patch adds detection for memory barrier support and when available uses
memory barrier to prevent when tail call optimization. If not available
dummy function call is used instead.

Signed-off-by: Jussi Kivilinna <email address hidden>

1446. By Werner Koch <email address hidden>

doc: Remove note that RC2/128 is not yet supported.

--

1445. By Werner Koch <email address hidden>

Provide Pth compatiblity for use with GnuPG 2.0.

* src/ath.c (ath_install): Call ath_init and declare Pth as
compatible.
--

GnuPG 2.0 requires GNU Pth which is a plain userland thread
implementation. Given that decent versions of GNU Pth seem to work
together with pthread, we can declare Pth as compatible. Native
pthreads in Libgcrypt are only used internal to Libgcrypt and any
internal blocking should be invisible to Pth.

Signed-off-by: Werner Koch <email address hidden>

1444. By Jussi Kivilinna <email address hidden>

sha512: fix building on ARM

* cipher/sha512.c (transform) [USE_ARM_NEON_ASM]: Fix 'hd' to 'ctx'.
--
Signed-off-by: Jussi Kivilinna <email address hidden>

1443. By Werner Koch <email address hidden>

Remove deprecated control codes.

* src/gcrypt.h.in (GCRYCTL_SET_KEY): Remove.
(GCRYCTL_SET_IV): Remove.
(GCRYCTL_SET_CTR): Remove.
* cipher/md.c (gcry_md_ctl): Remove deprecated GCRYCTL_SET_KEY.
* cipher/cipher.c (gcry_cipher_ctl): Remove deprecated
GCRYCTL_SET_KEY, GCRYCTL_SET_IV, GCRYCTL_SET_CTR.
--

Real functions are available for a long time now thus there is no more
point in supporting the control code hacks. We have an ABI break
anyway thus this is a good time to get rid of them.

Signed-off-by: Werner Koch <email address hidden>

1442. By Dmitry Eremin-Solenikov

Fix errors when building with Clang on PPC

* mpi/longlong.h (add_ssaaaa, sub_ddmmss, count_leading_zeros,
  umul_ppmm): Do not cast asm output to USItype.

Signed-off-by: Dmitry Eremin-Solenikov <email address hidden>

1441. By Werner Koch <email address hidden>

Remove last remains of the former module system.

* src/gcrypt-module.h, src/module.c: Remove.
* src/visibility.h: Do not include gcrypt-module.h.
* src/g10lib.h: Remove all prototypes from module.c
(gcry_module): Remove.
* cipher/cipher-internal.h (gcry_cipher_handle): Remove unused field.

Signed-off-by: Werner Koch <email address hidden>

1440. By Werner Koch <email address hidden>

Fix missing prototype warning in visibility.c

* src/ec-context.h (_gcry_mpi_ec_new): Move prototype to mpi.h.

1439. By Werner Koch <email address hidden>

md: Simplify the message digest dispatcher md.c.

* src/gcrypt-module.h (gcry_md_spec_t): Move to ...
* src/cipher-proto.h: here. Merge with md_extra_spec_t. Add fields
ALGO and FLAGS. Set these fields in all digest modules.
* cipher/md.c: Change most code to replace the former module
system by a simpler system to gain information about the algorithms.

Signed-off-by: Werner Koch <email address hidden>

1438. By Werner Koch <email address hidden>

cipher: Simplify the cipher dispatcher cipher.c.

* src/gcrypt-module.h (gcry_cipher_spec_t): Move to ...
* src/cipher-proto.h (gcry_cipher_spec_t): here. Merge with
cipher_extra_spec_t. Add fields ALGO and FLAGS. Set these fields in
all cipher modules.
* cipher/cipher.c: Change most code to replace the former module
system by a simpler system to gain information about the algorithms.
(disable_pubkey_algo): Simplified. Not anymore thread-safe, though.

* cipher/md.c (_gcry_md_selftest): Use correct structure. Not a real
problem because both define the same function as their first field.

* cipher/pubkey.c (_gcry_pk_selftest): Take care of the disabled flag.

Signed-off-by: Werner Koch <email address hidden>

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
This branch contains Public information 
Everyone can see this information.

Subscribers