summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2011-02-01 18:31:57 +0100
committerWerner Koch <wk@gnupg.org>2011-02-01 18:31:57 +0100
commit8cf24ddb162b66aa2e64e4a3e596bb87fdc7dec3 (patch)
treea10731fad979ee851f1cad5fe3c33fa7ea43269d /src
parentdbf7709d6339f74d7a88c96440e92576f3109486 (diff)
downloadlibgcrypt-8cf24ddb162b66aa2e64e4a3e596bb87fdc7dec3.tar.gz
Add function gcry_pk_get_param.
Also changed quite some trailing white spaces. I never configured that in Emacs but git diff annoys me with red lines and thus it seems better to use nuke-trailing-whitespace autmatically. Sorry for the extra diff lines. A diff filter should help to not show those changes.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog14
-rw-r--r--src/cipher-proto.h4
-rw-r--r--src/gcrypt.h.in6
-rw-r--r--src/libgcrypt.def1
-rw-r--r--src/libgcrypt.vers2
-rw-r--r--src/visibility.c11
-rw-r--r--src/visibility.h3
7 files changed, 33 insertions, 8 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index b59f1c19..1a0910b5 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,9 +1,11 @@
2011-02-01 Werner Koch <wk@g10code.com>
- * libgcrypt.vers (gcry_pk_get_curve): Add.
- * libgcrypt.def (gcry_pk_get_curve): Add.
- * visibility.c (gcry_pk_get_curve): New.
- * cipher-proto.h (pk_extra_spec): Add field GET_CURVE.
+ * gcrypt.h.in (gcry_pk_get_curve, gcry_pk_get_param): New.
+ * libgcrypt.vers (gcry_pk_get_curve, gcry_pk_get_param): Add.
+ * libgcrypt.def (gcry_pk_get_curve, gcry_pk_get_param): Add.
+ * visibility.c (gcry_pk_get_curve, gcry_pk_get_param): New.
+ * cipher-proto.h (pk_extra_spec): Add fields GET_CURVE and
+ GET_CURVE_PARM.
2011-01-31 Werner Koch <wk@g10code.com>
@@ -2226,9 +2228,9 @@ Tue Dec 8 13:15:16 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
* gcrypt.h: New
* mpiapi.c: New
-
+
Copyright (C) 1998,1999,2000,2001,2002,2003
- 2004, 2005, 2008, 2009 Free Software Foundation, Inc.
+ 2004, 2005, 2008, 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
diff --git a/src/cipher-proto.h b/src/cipher-proto.h
index ea7a70de..e936eeae 100644
--- a/src/cipher-proto.h
+++ b/src/cipher-proto.h
@@ -61,6 +61,9 @@ typedef gcry_err_code_t (*pk_get_param_t)
typedef const char *(*pk_get_curve_t)(gcry_mpi_t *pkey, int iterator,
unsigned int *r_nbits);
+/* The type used to query ECC curve parameters by name. */
+typedef gcry_sexp_t (*pk_get_curve_param_t)(const char *name);
+
/* The type used to convey additional information to a cipher. */
typedef gpg_err_code_t (*cipher_set_extra_info_t)
(void *c, int what, const void *buffer, size_t buflen);
@@ -87,6 +90,7 @@ typedef struct pk_extra_spec
pk_comp_keygrip_t comp_keygrip;
pk_get_param_t get_param;
pk_get_curve_t get_curve;
+ pk_get_curve_param_t get_curve_param;
} pk_extra_spec_t;
diff --git a/src/gcrypt.h.in b/src/gcrypt.h.in
index 25099788..1b32de05 100644
--- a/src/gcrypt.h.in
+++ b/src/gcrypt.h.in
@@ -1,6 +1,6 @@
/* gcrypt.h - GNU Cryptographic Library Interface -*- c -*-
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006
- 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+ 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
This file is part of Libgcrypt.
@@ -1041,6 +1041,10 @@ unsigned char *gcry_pk_get_keygrip (gcry_sexp_t key, unsigned char *array);
const char *gcry_pk_get_curve (gcry_sexp_t key, int iterator,
unsigned int *r_nbits);
+/* Return an S-expression with the parameters of the named ECC curve
+ NAME. ALGO must be set to an ECC algorithm. */
+gcry_sexp_t gcry_pk_get_param (int algo, const char *name);
+
/* Return 0 if the public key algorithm A is available for use. */
#define gcry_pk_test_algo(a) \
gcry_pk_algo_info( (a), GCRYCTL_TEST_ALGO, NULL, NULL )
diff --git a/src/libgcrypt.def b/src/libgcrypt.def
index 55ff8775..3db4cb5a 100644
--- a/src/libgcrypt.def
+++ b/src/libgcrypt.def
@@ -234,3 +234,4 @@ EXPORTS
gcry_mpi_lshift @191
gcry_pk_get_curve @192
+ gcry_pk_get_param @193
diff --git a/src/libgcrypt.vers b/src/libgcrypt.vers
index 46704365..f2a3513d 100644
--- a/src/libgcrypt.vers
+++ b/src/libgcrypt.vers
@@ -57,7 +57,7 @@ GCRYPT_1.2 {
gcry_pk_get_keygrip; gcry_pk_get_nbits; gcry_pk_list;
gcry_pk_map_name; gcry_pk_register; gcry_pk_sign;
gcry_pk_testkey; gcry_pk_unregister; gcry_pk_verify;
- gcry_pk_get_curve;
+ gcry_pk_get_curve; gcry_pk_get_param;
gcry_ac_data_new; gcry_ac_data_destroy; gcry_ac_data_copy;
gcry_ac_data_length; gcry_ac_data_clear; gcry_ac_data_set;
diff --git a/src/visibility.c b/src/visibility.c
index fe6d9bdd..c4fd09da 100644
--- a/src/visibility.c
+++ b/src/visibility.c
@@ -748,6 +748,17 @@ gcry_pk_get_curve (gcry_sexp_t key, int iterator, unsigned int *r_nbits)
return _gcry_pk_get_curve (key, iterator, r_nbits);
}
+gcry_sexp_t
+gcry_pk_get_param (int algo, const char *name)
+{
+ if (!fips_is_operational ())
+ {
+ (void)fips_not_operational ();
+ return NULL;
+ }
+ return _gcry_pk_get_param (algo, name);
+}
+
gcry_error_t
gcry_pk_list (int *list, int *list_length)
{
diff --git a/src/visibility.h b/src/visibility.h
index 0b0219d3..cf5a3ff3 100644
--- a/src/visibility.h
+++ b/src/visibility.h
@@ -104,6 +104,7 @@
#define gcry_pk_genkey _gcry_pk_genkey
#define gcry_pk_get_keygrip _gcry_pk_get_keygrip
#define gcry_pk_get_curve _gcry_pk_get_curve
+#define gcry_pk_get_param _gcry_pk_get_param
#define gcry_pk_get_nbits _gcry_pk_get_nbits
#define gcry_pk_list _gcry_pk_list
#define gcry_pk_map_name _gcry_pk_map_name
@@ -360,6 +361,7 @@ void gcry_ac_os_to_mpi (gcry_mpi_t mpi, unsigned char *os, size_t os_n);
#undef gcry_pk_genkey
#undef gcry_pk_get_keygrip
#undef gcry_pk_get_curve
+#undef gcry_pk_get_param
#undef gcry_pk_get_nbits
#undef gcry_pk_list
#undef gcry_pk_map_name
@@ -571,6 +573,7 @@ MARK_VISIBLE (gcry_pk_encrypt)
MARK_VISIBLE (gcry_pk_genkey)
MARK_VISIBLE (gcry_pk_get_keygrip)
MARK_VISIBLE (gcry_pk_get_curve)
+MARK_VISIBLE (gcry_pk_get_param)
MARK_VISIBLE (gcry_pk_get_nbits)
MARK_VISIBLE (gcry_pk_list)
MARK_VISIBLE (gcry_pk_map_name)