RSA/AES algorithm
Refs: #2799, #2800
Change-Id: I6aeb1ea2d7b3431d4569fb5b2cc3ce214ee6fca3
diff --git a/src/algo/encrypt-params.hpp b/src/algo/encrypt-params.hpp
new file mode 100644
index 0000000..2be5d99
--- /dev/null
+++ b/src/algo/encrypt-params.hpp
@@ -0,0 +1,61 @@
+#ifndef NDN_GEP_ENCRYPT_PARAMS_HPP
+#define NDN_GEP_ENCRYPT_PARAMS_HPP
+
+#include <ndn-cxx/encoding/buffer-stream.hpp>
+
+namespace ndn {
+namespace gep {
+
+enum EncryptionMode {
+ ENCRYPT_MODE_ECB_AES,
+ ENCRYPT_MODE_CBC_AES,
+ ENCRYPT_MODE_RSA
+};
+
+enum PaddingScheme {
+ PADDING_SCHEME_PKCS7,
+ PADDING_SCHEME_PKCS1v15,
+ PADDING_SCHEME_OAEP_SHA
+};
+
+namespace algo {
+
+class EncryptParams
+{
+public:
+ EncryptParams(EncryptionMode encryptMode, PaddingScheme paddingScheme, uint8_t ivLength);
+
+ virtual
+ ~EncryptParams()
+ {
+ }
+
+ void
+ setIV(const Buffer& iv);
+
+ void
+ setEncryptMode(const EncryptionMode& encryptMode);
+
+ void
+ setPaddingScheme(const PaddingScheme& paddingScheme);
+
+ Buffer
+ getIV() const;
+
+ EncryptionMode
+ getEncryptMode() const;
+
+ PaddingScheme
+ getPaddingScheme() const;
+
+private:
+ EncryptionMode m_encryptMode;
+ PaddingScheme m_paddingScheme;
+ Buffer m_iv;
+};
+
+} // namespace algo
+} // namespace gep
+} // namespace ndn
+
+#endif // NDN_GEP_ENCRYPT_PARAMS_HPP