libcryptosec
AsymmetricKey.h
Go to the documentation of this file.
1 #ifndef ASYMMETRICKEY_H_
2 #define ASYMMETRICKEY_H_
3 
4 /* openssl includes */
5 #include <openssl/bio.h>
6 #include <openssl/evp.h>
7 
8 /* c++ library includes */
9 #include <string>
10 
11 /* local includes */
12 #include "ByteArray.h"
13 
14 /* exception icbludes */
16 
17 
37 {
38 
39 public:
40 
47  enum Algorithm
48  {
49  RSA,
50  DSA,
52 // DH,
53 // EC,
54  };
55 
62  enum Curve
63  {
87 
98 
112 
127  };
128 
129 
138  AsymmetricKey(EVP_PKEY *key)
139  throw (AsymmetricKeyException);
140 
146  AsymmetricKey(ByteArray &encoded);
147 
153  AsymmetricKey(std::string &encoded);
154 
158  virtual ~AsymmetricKey();
159 
165  virtual ByteArray getDerEncoded() = 0;
166 
172  virtual std::string getPemEncoded() = 0;
173 
181  throw (AsymmetricKeyException);
182 
189  int getSize() throw (AsymmetricKeyException);
190 
197  int getSizeBits() throw (AsymmetricKeyException);
198 
203  EVP_PKEY* getEvpPkey();
204 
205 protected:
206 
210  EVP_PKEY *key;
211 
212 };
213 
214 #endif /*ASYMMETRICKEY_H_*/
Definition: AsymmetricKey.h:66
Definition: AsymmetricKey.h:109
Definition: AsymmetricKey.h:73
EVP_PKEY * key
Definition: AsymmetricKey.h:210
Definition: AsymmetricKey.h:49
Definition: AsymmetricKey.h:104
Definition: AsymmetricKey.h:92
Definition: AsymmetricKey.h:115
Definition: AsymmetricKey.h:65
AsymmetricKey::Algorithm getAlgorithm()
Definition: AsymmetricKey.cpp:13
Definition: AsymmetricKey.h:101
Definition: AsymmetricKey.h:83
Definition: AsymmetricKey.h:117
AsymmetricKey(EVP_PKEY *key)
Definition: AsymmetricKey.cpp:3
Definition: AsymmetricKey.h:125
Definition: AsymmetricKey.h:36
Definition: AsymmetricKey.h:90
Definition: AsymmetricKey.h:123
Definition: AsymmetricKey.h:119
virtual ByteArray getDerEncoded()=0
int getSizeBits()
Definition: AsymmetricKey.cpp:62
Definition: AsymmetricKey.h:64
Definition: AsymmetricKey.h:89
Definition: AsymmetricKey.h:72
Definition: AsymmetricKey.h:103
Definition: AsymmetricKey.h:126
virtual ~AsymmetricKey()
Definition: AsymmetricKey.cpp:8
Classe usada para transportar dados binários pelo sistema. Pode ser usada para conversão de texto em ...
Definition: ByteArray.h:24
Definition: AsymmetricKey.h:71
Definition: AsymmetricKey.h:113
Definition: AsymmetricKey.h:118
Definition: AsymmetricKey.h:120
Definition: AsymmetricKey.h:81
Definition: AsymmetricKeyException.h:6
Definition: AsymmetricKey.h:100
Definition: AsymmetricKey.h:75
Definition: AsymmetricKey.h:95
Definition: AsymmetricKey.h:74
Definition: AsymmetricKey.h:80
Definition: AsymmetricKey.h:122
Definition: AsymmetricKey.h:105
Definition: AsymmetricKey.h:102
Definition: AsymmetricKey.h:79
Definition: AsymmetricKey.h:94
Definition: AsymmetricKey.h:124
Definition: AsymmetricKey.h:78
Definition: AsymmetricKey.h:77
Curve
Definition: AsymmetricKey.h:62
Definition: AsymmetricKey.h:51
Definition: AsymmetricKey.h:82
Definition: AsymmetricKey.h:68
Definition: AsymmetricKey.h:110
Definition: AsymmetricKey.h:97
Definition: AsymmetricKey.h:84
Definition: AsymmetricKey.h:96
Definition: AsymmetricKey.h:106
Definition: AsymmetricKey.h:116
Definition: AsymmetricKey.h:114
Definition: AsymmetricKey.h:50
Definition: AsymmetricKey.h:67
Definition: AsymmetricKey.h:88
Definition: AsymmetricKey.h:85
Algorithm
Definition: AsymmetricKey.h:47
Definition: AsymmetricKey.h:99
Definition: AsymmetricKey.h:86
Definition: AsymmetricKey.h:108
Definition: AsymmetricKey.h:111
int getSize()
Definition: AsymmetricKey.cpp:45
Definition: AsymmetricKey.h:107
Definition: AsymmetricKey.h:121
Definition: AsymmetricKey.h:69
Definition: AsymmetricKey.h:70
Definition: AsymmetricKey.h:76
Definition: AsymmetricKey.h:93
EVP_PKEY * getEvpPkey()
Definition: AsymmetricKey.cpp:79
Definition: AsymmetricKey.h:91
virtual std::string getPemEncoded()=0