diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/ffi/ffi.cpp | 11 | ||||
-rw-r--r-- | src/lib/ffi/ffi.h | 6 | ||||
-rw-r--r-- | src/tests/test_ffi.cpp | 1 |
3 files changed, 18 insertions, 0 deletions
diff --git a/src/lib/ffi/ffi.cpp b/src/lib/ffi/ffi.cpp index 4727c0763..5c4cba4e7 100644 --- a/src/lib/ffi/ffi.cpp +++ b/src/lib/ffi/ffi.cpp @@ -208,6 +208,17 @@ uint32_t botan_ffi_api_version() return BOTAN_HAS_FFI; } +int botan_ffi_supports_api(uint32_t api_version) + { + /* + * In the future if multiple versions are supported, this + * function would accept any of them. + */ + if(api_version == BOTAN_HAS_FFI) + return 0; + return -1; + } + const char* botan_version_string() { return Botan::version_cstr(); diff --git a/src/lib/ffi/ffi.h b/src/lib/ffi/ffi.h index ed1b55a56..3378e0dcd 100644 --- a/src/lib/ffi/ffi.h +++ b/src/lib/ffi/ffi.h @@ -66,6 +66,12 @@ how to provide the cleanest API for such users would be most welcome. */ BOTAN_DLL uint32_t botan_ffi_api_version(); +/* +* Return 0 (ok) if the version given is one this library supports. +* botan_ffi_supports_api(botan_ffi_api_version()) will always return 0. +*/ +BOTAN_DLL int botan_ffi_supports_api(uint32_t api_version); + BOTAN_DLL const char* botan_version_string(); BOTAN_DLL uint32_t botan_version_major(); BOTAN_DLL uint32_t botan_version_minor(); diff --git a/src/tests/test_ffi.cpp b/src/tests/test_ffi.cpp index dd066e248..243583e8f 100644 --- a/src/tests/test_ffi.cpp +++ b/src/tests/test_ffi.cpp @@ -42,6 +42,7 @@ class FFI_Unit_Tests : public Test result.test_is_eq("Patch version", botan_version_patch(), Botan::version_patch()); result.test_is_eq("Botan version", botan_version_string(), Botan::version_cstr()); result.test_is_eq("Botan version datestamp", botan_version_datestamp(), Botan::version_datestamp()); + result.test_is_eq("FFI supports its own version", botan_ffi_supports_api(botan_ffi_api_version()), 0); const std::vector<uint8_t> mem1 = { 0xFF, 0xAA, 0xFF }; const std::vector<uint8_t> mem2 = mem1; |