diff options
author | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2013-11-15 12:28:07 +0200 |
---|---|---|
committer | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2013-11-16 12:52:17 +0200 |
commit | fcd6da37d55f248d3558ee0ff385b41b866e7ded (patch) | |
tree | b942fea4e29d43427b4e5c221d8c40455e6b8cfe /src/visibility.h | |
parent | b95a557a43aeed68ea5e5ce02aca42ee97bfdb3b (diff) | |
download | libgcrypt-fcd6da37d55f248d3558ee0ff385b41b866e7ded.tar.gz |
Add new MAC API, initially with HMAC
* cipher/Makefile.am: Add 'mac.c', 'mac-internal.h' and 'mac-hmac.c'.
* cipher/bufhelp.h (buf_eq_const): New.
* cipher/cipher-ccm.c (_gcry_cipher_ccm_tag): Use 'buf_eq_const' for
constant-time compare.
* cipher/mac-hmac.c: New.
* cipher/mac-internal.h: New.
* cipher/mac.c: New.
* doc/gcrypt.texi: Add documentation for MAC API.
* src/gcrypt-int.h [GPG_ERROR_VERSION_NUMBER < 1.13]
(GPG_ERR_MAC_ALGO): New.
* src/gcrypt.h.in (gcry_mac_handle, gcry_mac_hd_t, gcry_mac_algos)
(gcry_mac_flags, gcry_mac_open, gcry_mac_close, gcry_mac_ctl)
(gcry_mac_algo_info, gcry_mac_setkey, gcry_mac_setiv, gcry_mac_write)
(gcry_mac_read, gcry_mac_verify, gcry_mac_get_algo_maclen)
(gcry_mac_get_algo_keylen, gcry_mac_algo_name, gcry_mac_map_name)
(gcry_mac_reset, gcry_mac_test_algo): New.
* src/libgcrypt.def (gcry_mac_open, gcry_mac_close, gcry_mac_ctl)
(gcry_mac_algo_info, gcry_mac_setkey, gcry_mac_setiv, gcry_mac_write)
(gcry_mac_read, gcry_mac_verify, gcry_mac_get_algo_maclen)
(gcry_mac_get_algo_keylen, gcry_mac_algo_name, gcry_mac_map_name): New.
* src/libgcrypt.vers (gcry_mac_open, gcry_mac_close, gcry_mac_ctl)
(gcry_mac_algo_info, gcry_mac_setkey, gcry_mac_setiv, gcry_mac_write)
(gcry_mac_read, gcry_mac_verify, gcry_mac_get_algo_maclen)
(gcry_mac_get_algo_keylen, gcry_mac_algo_name, gcry_mac_map_name): New.
* src/visibility.c (gcry_mac_open, gcry_mac_close, gcry_mac_ctl)
(gcry_mac_algo_info, gcry_mac_setkey, gcry_mac_setiv, gcry_mac_write)
(gcry_mac_read, gcry_mac_verify, gcry_mac_get_algo_maclen)
(gcry_mac_get_algo_keylen, gcry_mac_algo_name, gcry_mac_map_name): New.
* src/visibility.h (gcry_mac_open, gcry_mac_close, gcry_mac_ctl)
(gcry_mac_algo_info, gcry_mac_setkey, gcry_mac_setiv, gcry_mac_write)
(gcry_mac_read, gcry_mac_verify, gcry_mac_get_algo_maclen)
(gcry_mac_get_algo_keylen, gcry_mac_algo_name, gcry_mac_map_name): New.
* tests/basic.c (check_one_mac, check_mac): New.
(main): Call 'check_mac'.
* tests/bench-slope.c (bench_print_header, bench_print_footer): Allow
variable algorithm name width.
(_cipher_bench, hash_bench): Update to above change.
(bench_hash_do_bench): Add 'gcry_md_reset'.
(bench_mac_mode, bench_mac_init, bench_mac_free, bench_mac_do_bench)
(mac_ops, mac_modes, mac_bench_one, _mac_bench, mac_bench): New.
(main): Add 'mac' benchmark options.
* tests/benchmark.c (mac_repetitions, mac_bench): New.
(main): Add 'mac' benchmark options.
--
Add MAC API, with HMAC algorithms. Internally uses HMAC functionality of the
MD module.
[v2]:
- Add documentation for MAC API.
- Change length argument for gcry_mac_read from size_t to size_t* for
returning number of written bytes.
[v3]:
- HMAC algorithm ids start from 101.
- Fix coding style for new files.
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
Diffstat (limited to 'src/visibility.h')
-rw-r--r-- | src/visibility.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/visibility.h b/src/visibility.h index 438db5bf..318ff446 100644 --- a/src/visibility.h +++ b/src/visibility.h @@ -94,6 +94,20 @@ #define gcry_cipher_mode_from_oid _gcry_cipher_mode_from_oid #define gcry_cipher_open _gcry_cipher_open +#define gcry_mac_algo_info _gcry_mac_algo_info +#define gcry_mac_algo_name _gcry_mac_algo_name +#define gcry_mac_map_name _gcry_mac_map_name +#define gcry_mac_get_algo_maclen _gcry_mac_get_algo_maclen +#define gcry_mac_get_algo_keylen _gcry_mac_get_algo_keylen +#define gcry_mac_open _gcry_mac_open +#define gcry_mac_close _gcry_mac_close +#define gcry_mac_setkey _gcry_mac_setkey +#define gcry_mac_setiv _gcry_mac_setiv +#define gcry_mac_write _gcry_mac_write +#define gcry_mac_read _gcry_mac_read +#define gcry_mac_verify _gcry_mac_verify +#define gcry_mac_ctl _gcry_mac_ctl + #define gcry_pk_algo_info _gcry_pk_algo_info #define gcry_pk_algo_name _gcry_pk_algo_name #define gcry_pk_ctl _gcry_pk_ctl @@ -313,6 +327,20 @@ gcry_err_code_t gcry_md_get (gcry_md_hd_t hd, int algo, #undef gcry_cipher_mode_from_oid #undef gcry_cipher_open +#undef gcry_mac_algo_info +#undef gcry_mac_algo_name +#undef gcry_mac_map_name +#undef gcry_mac_get_algo_maclen +#undef gcry_mac_get_algo_keylen +#undef gcry_mac_open +#undef gcry_mac_close +#undef gcry_mac_setkey +#undef gcry_mac_setiv +#undef gcry_mac_write +#undef gcry_mac_read +#undef gcry_mac_verify +#undef gcry_mac_ctl + #undef gcry_pk_algo_info #undef gcry_pk_algo_name #undef gcry_pk_ctl @@ -493,6 +521,20 @@ MARK_VISIBLE (gcry_cipher_map_name) MARK_VISIBLE (gcry_cipher_mode_from_oid) MARK_VISIBLE (gcry_cipher_open) +MARK_VISIBLE (gcry_mac_algo_info) +MARK_VISIBLE (gcry_mac_algo_name) +MARK_VISIBLE (gcry_mac_map_name) +MARK_VISIBLE (gcry_mac_get_algo_maclen) +MARK_VISIBLE (gcry_mac_get_algo_keylen) +MARK_VISIBLE (gcry_mac_open) +MARK_VISIBLE (gcry_mac_close) +MARK_VISIBLE (gcry_mac_setkey) +MARK_VISIBLE (gcry_mac_setiv) +MARK_VISIBLE (gcry_mac_write) +MARK_VISIBLE (gcry_mac_read) +MARK_VISIBLE (gcry_mac_verify) +MARK_VISIBLE (gcry_mac_ctl) + MARK_VISIBLE (gcry_pk_algo_info) MARK_VISIBLE (gcry_pk_algo_name) MARK_VISIBLE (gcry_pk_ctl) |