Add GCRYMPI_FLAG_IMMUTABLE to help debugging.
authorWerner Koch <wk@gnupg.org>
Tue, 12 Mar 2013 19:20:42 +0000 (20:20 +0100)
committerWerner Koch <wk@gnupg.org>
Wed, 13 Mar 2013 11:38:30 +0000 (12:38 +0100)
commit1fecae98ee7e0fa49b29f98efa6817ca121ed98a
tree02a3ba8f73f47d1ee629563d1abde0b56dc5d31d
parent5e743bc72e3fee3d550d0d7ae98596b7de6b46f8
Add GCRYMPI_FLAG_IMMUTABLE to help debugging.

* src/gcrypt.h.in (GCRYMPI_FLAG_IMMUTABLE): New.
* src/mpi.h (mpi_is_immutable): New macro.
* mpi/mpiutil.c (gcry_mpi_set_flag, gcry_mpi_clear_flag)
(gcry_mpi_get_flag): Implement new flag
(_gcry_mpi_immutable_failed): New.

* mpi/mpiutil.c (_gcry_mpi_clear, _gcry_mpi_free, gcry_mpi_snatch)
(gcry_mpi_set, gcry_mpi_randomize): Act upon the immutable flag.
* mpi/mpi-bit.c (gcry_mpi_set_bit, gcry_mpi_set_highbit)
(gcry_mpi_clear_highbit, gcry_mpi_clear_bit)
(_gcry_mpi_rshift_limbs, gcry_mpi_lshift): Ditto.
* mpi/mpicoder.c (_gcry_mpi_set_buffer): Ditto.
--

Note that this flag is currently only checked by a few MPI functions.
The reason why we eventually need such a flag is to help implementing
a generic way to retrieve and set ECC parameters without accidentally
changing a curve parameter taken from a list of predefined curves.
NEWS
doc/gcrypt.texi
mpi/mpi-bit.c
mpi/mpicoder.c
mpi/mpiutil.c
src/gcrypt.h.in
src/mpi.h