diff options
author | Werner Koch <wk@gnupg.org> | 2013-04-15 11:52:54 +0200 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2013-04-15 11:54:11 +0200 |
commit | bd3afc27459a44df8cf501a7e1ae37bb849a8b0e (patch) | |
tree | 6bfb8c47d792bab0bed61ec453f0644ad4bc8039 /src | |
parent | 71b25a5562f68aad81eae52cc1bab9ca7731a7e9 (diff) | |
download | libgcrypt-bd3afc27459a44df8cf501a7e1ae37bb849a8b0e.tar.gz |
Add macros to return pre-defined MPIs.
* src/gcrypt.h.in (GCRYMPI_CONST_ONE, GCRYMPI_CONST_TWO)
(GCRYMPI_CONST_THREE, GCRYMPI_CONST_FOUR, GCRYMPI_CONST_EIGHT): New.
(_gcry_mpi_get_const): New private function.
* src/visibility.c (_gcry_mpi_get_const): New.
* src/visibility.h: Mark it visible.
Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/gcrypt.h.in | 10 | ||||
-rw-r--r-- | src/libgcrypt.def | 2 | ||||
-rw-r--r-- | src/libgcrypt.vers | 2 | ||||
-rw-r--r-- | src/visibility.c | 14 | ||||
-rw-r--r-- | src/visibility.h | 4 |
5 files changed, 32 insertions, 0 deletions
diff --git a/src/gcrypt.h.in b/src/gcrypt.h.in index 85213ea4..f472b02b 100644 --- a/src/gcrypt.h.in +++ b/src/gcrypt.h.in @@ -467,6 +467,13 @@ enum gcry_mpi_flag }; +/* Macros to return pre-defined MPI constants. */ +#define GCRYMPI_CONST_ONE (_gcry_mpi_get_const (1)) +#define GCRYMPI_CONST_TWO (_gcry_mpi_get_const (2)) +#define GCRYMPI_CONST_THREE (_gcry_mpi_get_const (3)) +#define GCRYMPI_CONST_FOUR (_gcry_mpi_get_const (4)) +#define GCRYMPI_CONST_EIGHT (_gcry_mpi_get_const (8)) + /* Allocate a new big integer object, initialize it with 0 and initially allocate memory for a number of at least NBITS. */ gcry_mpi_t gcry_mpi_new (unsigned int nbits); @@ -692,6 +699,9 @@ void gcry_mpi_clear_flag (gcry_mpi_t a, enum gcry_mpi_flag flag); /* Return true when the FLAG is set for A. */ int gcry_mpi_get_flag (gcry_mpi_t a, enum gcry_mpi_flag flag); +/* Private function - do not use. */ +gcry_mpi_t _gcry_mpi_get_const (int no); + /* Unless the GCRYPT_NO_MPI_MACROS is used, provide a couple of convenience macros for the big integer functions. */ #ifndef GCRYPT_NO_MPI_MACROS diff --git a/src/libgcrypt.def b/src/libgcrypt.def index 4da46232..9eaf8a7a 100644 --- a/src/libgcrypt.def +++ b/src/libgcrypt.def @@ -234,3 +234,5 @@ EXPORTS gcry_mpi_ec_mul @211 gcry_pubkey_get_sexp @212 + + _gcry_mpi_get_const @213 diff --git a/src/libgcrypt.vers b/src/libgcrypt.vers index 29e46dbe..6aaf0f13 100644 --- a/src/libgcrypt.vers +++ b/src/libgcrypt.vers @@ -98,6 +98,8 @@ GCRYPT_1.6 { gcry_mpi_ec_get_affine; gcry_mpi_ec_dup; gcry_mpi_ec_add; gcry_mpi_ec_mul; + _gcry_mpi_get_const; + gcry_ctx_release; local: diff --git a/src/visibility.c b/src/visibility.c index b503be66..c86d31b2 100644 --- a/src/visibility.c +++ b/src/visibility.c @@ -601,6 +601,20 @@ gcry_mpi_get_flag (gcry_mpi_t a, enum gcry_mpi_flag flag) return _gcry_mpi_get_flag (a, flag); } +gcry_mpi_t +_gcry_mpi_get_const (int no) +{ + switch (no) + { + case 1: return _gcry_mpi_const (MPI_C_ONE); + case 2: return _gcry_mpi_const (MPI_C_TWO); + case 3: return _gcry_mpi_const (MPI_C_THREE); + case 4: return _gcry_mpi_const (MPI_C_FOUR); + case 8: return _gcry_mpi_const (MPI_C_EIGHT); + default: log_bug("unsupported GCRYMPI_CONST_ macro used\n"); + } +} + gcry_error_t gcry_cipher_open (gcry_cipher_hd_t *handle, int algo, int mode, unsigned int flags) diff --git a/src/visibility.h b/src/visibility.h index 1564e865..6887f37b 100644 --- a/src/visibility.h +++ b/src/visibility.h @@ -594,6 +594,10 @@ MARK_VISIBLE (gcry_mpi_test_bit) MARK_VISIBLE (gcry_ctx_release) +/* Functions used to implement macros. */ +MARK_VISIBLEX(_gcry_mpi_get_const) + + #undef MARK_VISIBLE #endif /*_GCRY_INCLUDED_BY_VISIBILITY_C*/ |