blob: 2be5d996f8097e69b952d49b60ccb411d7ccf32d [file] [log] [blame]
Prashanth Swaminathanc61cf192015-06-30 21:21:33 -07001#ifndef NDN_GEP_ENCRYPT_PARAMS_HPP
2#define NDN_GEP_ENCRYPT_PARAMS_HPP
3
4#include <ndn-cxx/encoding/buffer-stream.hpp>
5
6namespace ndn {
7namespace gep {
8
9enum EncryptionMode {
10 ENCRYPT_MODE_ECB_AES,
11 ENCRYPT_MODE_CBC_AES,
12 ENCRYPT_MODE_RSA
13};
14
15enum PaddingScheme {
16 PADDING_SCHEME_PKCS7,
17 PADDING_SCHEME_PKCS1v15,
18 PADDING_SCHEME_OAEP_SHA
19};
20
21namespace algo {
22
23class EncryptParams
24{
25public:
26 EncryptParams(EncryptionMode encryptMode, PaddingScheme paddingScheme, uint8_t ivLength);
27
28 virtual
29 ~EncryptParams()
30 {
31 }
32
33 void
34 setIV(const Buffer& iv);
35
36 void
37 setEncryptMode(const EncryptionMode& encryptMode);
38
39 void
40 setPaddingScheme(const PaddingScheme& paddingScheme);
41
42 Buffer
43 getIV() const;
44
45 EncryptionMode
46 getEncryptMode() const;
47
48 PaddingScheme
49 getPaddingScheme() const;
50
51private:
52 EncryptionMode m_encryptMode;
53 PaddingScheme m_paddingScheme;
54 Buffer m_iv;
55};
56
57} // namespace algo
58} // namespace gep
59} // namespace ndn
60
61#endif // NDN_GEP_ENCRYPT_PARAMS_HPP