diff options
-rw-r--r-- | src/lib/ffi/ffi.cpp | 5 | ||||
-rw-r--r-- | src/lib/ffi/ffi.h | 8 | ||||
-rw-r--r-- | src/tests/test_ffi.cpp | 5 |
3 files changed, 18 insertions, 0 deletions
diff --git a/src/lib/ffi/ffi.cpp b/src/lib/ffi/ffi.cpp index 930bf60d9..4d5f67e34 100644 --- a/src/lib/ffi/ffi.cpp +++ b/src/lib/ffi/ffi.cpp @@ -828,6 +828,11 @@ int botan_hash_output_length(botan_hash_t hash, size_t* out) return BOTAN_FFI_DO(Botan::HashFunction, hash, h, { *out = h.output_length(); }); } +int botan_hash_block_size(botan_hash_t hash, size_t* out) + { + return BOTAN_FFI_DO(Botan::HashFunction, hash, h, { *out = h.hash_block_size(); }); + } + int botan_hash_clear(botan_hash_t hash) { return BOTAN_FFI_DO(Botan::HashFunction, hash, h, { h.clear(); }); diff --git a/src/lib/ffi/ffi.h b/src/lib/ffi/ffi.h index 8fb7ca832..5638810f9 100644 --- a/src/lib/ffi/ffi.h +++ b/src/lib/ffi/ffi.h @@ -233,6 +233,14 @@ BOTAN_DLL int botan_hash_init(botan_hash_t* hash, const char* hash_name, uint32_ BOTAN_DLL int botan_hash_output_length(botan_hash_t hash, size_t* output_length); /** +* Writes the block size of the hash function to *block_size +* @param hash hash object +* @param output_length output buffer to hold the hash function output length +* @return 0 on success, a negative value on failure +*/ +BOTAN_DLL int botan_hash_block_size(botan_hash_t hash, size_t* block_size); + +/** * Send more input to the hash function * @param hash hash object * @param in input buffer diff --git a/src/tests/test_ffi.cpp b/src/tests/test_ffi.cpp index c337aec1d..966691b7f 100644 --- a/src/tests/test_ffi.cpp +++ b/src/tests/test_ffi.cpp @@ -106,6 +106,11 @@ class FFI_Unit_Tests : public Test result.test_eq("hash name", std::string(namebuf), "SHA-256"); } */ + size_t block_size; + if (TEST_FFI_OK(botan_hash_block_size, (hash, &block_size))) + { + result.test_eq("hash block size", block_size, 64); + } size_t output_len; if(TEST_FFI_OK(botan_hash_output_length, (hash, &output_len))) |