summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDmitry Eremin-Solenikov <dbaryshkov@gmail.com>2013-12-27 12:37:11 +0400
committerWerner Koch <wk@gnupg.org>2014-01-13 10:40:30 +0100
commit8439a379c86ef1088465ea70ac10840759a1638e (patch)
treedda6a6addc52283111b88105e693203d405ff059 /src
parent36c9e0e4eb4f935da90df1c8df484d1940bda5eb (diff)
downloadlibgcrypt-8439a379c86ef1088465ea70ac10840759a1638e.tar.gz
Add a function to retrieve algorithm used by MAC handler
* cipher/mac.c (_gcry_mac_get_algo): New function, returns used algo. * src/visibility.c (gcry_mac_get_algo): New wrapper. * src/visibility.h: Hanlde gcry_mac_get_algo. * src/gcrypt-int.h (_gcry_mac_get_algo): New. * src/gcrypt.h.in (gcry_mac_get_algo): New. * src/libgcrypt.def (gcry_mac_get_algo): New. * src/libgcrypt.vers (gcry_mac_get_algo): New. * doc/gcrypt.texi: Document gcry_mac_get_algo. * tests/basic.c (check_one_mac): Verify gcry_mac_get_algo. Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/gcrypt-int.h1
-rw-r--r--src/gcrypt.h.in3
-rw-r--r--src/libgcrypt.def1
-rw-r--r--src/libgcrypt.vers2
-rw-r--r--src/visibility.c6
-rw-r--r--src/visibility.h2
6 files changed, 14 insertions, 1 deletions
diff --git a/src/gcrypt-int.h b/src/gcrypt-int.h
index 65dcb4d0..8a6df840 100644
--- a/src/gcrypt-int.h
+++ b/src/gcrypt-int.h
@@ -180,6 +180,7 @@ gpg_err_code_t _gcry_mac_write (gcry_mac_hd_t hd, const void *buffer,
gpg_err_code_t _gcry_mac_read (gcry_mac_hd_t hd, void *buffer, size_t *buflen);
gpg_err_code_t _gcry_mac_verify (gcry_mac_hd_t hd, const void *buffer,
size_t buflen);
+int _gcry_mac_get_algo (gcry_mac_hd_t hd);
unsigned int _gcry_mac_get_algo_maclen (int algo);
unsigned int _gcry_mac_get_algo_keylen (int algo);
const char *_gcry_mac_algo_name (int algorithm) _GCRY_GCC_ATTR_PURE;
diff --git a/src/gcrypt.h.in b/src/gcrypt.h.in
index 5c771e57..402e4fde 100644
--- a/src/gcrypt.h.in
+++ b/src/gcrypt.h.in
@@ -1382,6 +1382,9 @@ gcry_error_t gcry_mac_read (gcry_mac_hd_t hd, void *buffer, size_t *buflen);
gcry_error_t gcry_mac_verify (gcry_mac_hd_t hd, const void *buffer,
size_t buflen);
+/* Retrieve the algorithm used with MAC. */
+int gcry_mac_get_algo (gcry_mac_hd_t hd);
+
/* Retrieve the length in bytes of the MAC yielded by algorithm ALGO. */
unsigned int gcry_mac_get_algo_maclen (int algo);
diff --git a/src/libgcrypt.def b/src/libgcrypt.def
index a90efcec..57ed490e 100644
--- a/src/libgcrypt.def
+++ b/src/libgcrypt.def
@@ -274,6 +274,7 @@ EXPORTS
gcry_mac_read @240
gcry_mac_verify @241
gcry_mac_ctl @242
+ gcry_mac_get_algo @243
;; end of file with public symbols for Windows.
diff --git a/src/libgcrypt.vers b/src/libgcrypt.vers
index 5118c814..7ee0541a 100644
--- a/src/libgcrypt.vers
+++ b/src/libgcrypt.vers
@@ -54,7 +54,7 @@ GCRYPT_1.6 {
gcry_cipher_authenticate; gcry_cipher_gettag; gcry_cipher_checktag;
gcry_mac_algo_info; gcry_mac_algo_name; gcry_mac_map_name;
- gcry_mac_get_algo_maclen; gcry_mac_get_algo_keylen;
+ gcry_mac_get_algo_maclen; gcry_mac_get_algo_keylen; gcry_mac_get_algo;
gcry_mac_open; gcry_mac_close; gcry_mac_setkey; gcry_mac_setiv;
gcry_mac_write; gcry_mac_read; gcry_mac_verify; gcry_mac_ctl;
diff --git a/src/visibility.c b/src/visibility.c
index 2989498e..6ed57ca6 100644
--- a/src/visibility.c
+++ b/src/visibility.c
@@ -855,6 +855,12 @@ gcry_mac_map_name (const char *string)
return _gcry_mac_map_name (string);
}
+int
+gcry_mac_get_algo (gcry_mac_hd_t hd)
+{
+ return _gcry_mac_get_algo (hd);
+}
+
unsigned int
gcry_mac_get_algo_maclen (int algo)
{
diff --git a/src/visibility.h b/src/visibility.h
index 4127a432..96b52355 100644
--- a/src/visibility.h
+++ b/src/visibility.h
@@ -137,6 +137,7 @@ MARK_VISIBLEX (gcry_cipher_open)
MARK_VISIBLEX (gcry_mac_algo_info)
MARK_VISIBLEX (gcry_mac_algo_name)
MARK_VISIBLEX (gcry_mac_map_name)
+MARK_VISIBLEX (gcry_mac_get_algo)
MARK_VISIBLEX (gcry_mac_get_algo_maclen)
MARK_VISIBLEX (gcry_mac_get_algo_keylen)
MARK_VISIBLEX (gcry_mac_open)
@@ -380,6 +381,7 @@ MARK_VISIBLEX (_gcry_mpi_get_const)
#define gcry_mac_algo_info _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mac_algo_name _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mac_map_name _gcry_USE_THE_UNDERSCORED_FUNCTION
+#define gcry_mac_get_algo _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mac_get_algo_maclen _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mac_get_algo_keylen _gcry_USE_THE_UNDERSCORED_FUNCTION
#define gcry_mac_open _gcry_USE_THE_UNDERSCORED_FUNCTION