aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstate/get_enc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstate/get_enc.cpp')
-rw-r--r--src/libstate/get_enc.cpp28
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)