diff options
Diffstat (limited to 'src/libstate/get_enc.cpp')
-rw-r--r-- | src/libstate/get_enc.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/libstate/get_enc.cpp b/src/libstate/get_enc.cpp index f2398e318..4c28c4b98 100644 --- a/src/libstate/get_enc.cpp +++ b/src/libstate/get_enc.cpp @@ -76,6 +76,10 @@ #include <botan/prf_tls.h> #endif +#if defined(BOTAN_HAS_CIPHER_MODE_PADDING) + #include <botan/mode_pad.h> +#endif + namespace Botan { /************************************************* @@ -104,6 +108,30 @@ S2K* get_s2k(const std::string& algo_spec) } /************************************************* +* Get a block cipher padding method by name * +*************************************************/ +BlockCipherModePaddingMethod* get_bc_pad(const std::string& algo_spec) + { + SCAN_Name request(algo_spec); + +#if defined(BOTAN_HAS_CIPHER_MODE_PADDING) + if(request.algo_name() == "PKCS7") + return new PKCS7_Padding; + + if(request.algo_name() == "OneAndZeros") + return new OneAndZeros_Padding; + + if(request.algo_name() == "X9.23") + return new ANSI_X923_Padding; + + if(request.algo_name() == "NoPadding") + return new Null_Padding; +#endif + + throw Algorithm_Not_Found(algo_spec); + } + +/************************************************* * Get an EMSA by name * *************************************************/ EMSA* get_emsa(const std::string& algo_spec) |