RabbitCommon v2.2.6
Loading...
Searching...
No Matches
EvpAES.h
1// https://gitee.com/bailiyang/cdemo/tree/master/Qt/49OpenSSL/OpenSSL/Cipher
2// DES加密算法中,ECB和CBC模式有什么区别 https://blog.51cto.com/u_15060462/4692785
3
4#ifndef EVPAES_H
5#define EVPAES_H
6
7#include <QByteArray>
8
9struct evp_cipher_ctx_st;
10typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX;
11
12struct evp_cipher_st;
13typedef struct evp_cipher_st EVP_CIPHER;
14
20class EvpAES
21{
22public:
23 EvpAES();
24 ~EvpAES();
25
26 bool ecb_encrypt(const QByteArray& in, QByteArray& out,
27 const QByteArray &key, bool enc = true);
28 bool cbc_encrypt(const QByteArray& in, QByteArray& out,
29 const QByteArray &key, const QByteArray& ivec,
30 bool enc = true);
31 bool cfb1_encrypt(const QByteArray& in, QByteArray& out,
32 const QByteArray &key, const QByteArray& ivec,
33 bool enc = true);
34 bool cfb8_encrypt(const QByteArray& in, QByteArray& out,
35 const QByteArray &key, const QByteArray& ivec,
36 bool enc = true);
37 bool cfb128_encrypt(const QByteArray& in, QByteArray& out,
38 const QByteArray &key, const QByteArray& ivec,
39 bool enc = true);
40 bool ofb128_encrypt(const QByteArray& in, QByteArray& out,
41 const QByteArray &key, const QByteArray& ivec,
42 bool enc = true);
43 bool ctr_encrypt(const QByteArray& in, QByteArray& out,
44 const QByteArray &key, const QByteArray& ivec,
45 bool enc = true);
46 bool gcm_encrypt(const QByteArray& in, QByteArray& out,
47 const QByteArray &key, const QByteArray& ivec,
48 bool enc = true);
49 bool xts_encrypt(const QByteArray& in, QByteArray& out,
50 const QByteArray &key, const QByteArray& ivec,
51 bool enc = true);
52 bool ocb_encrypt(const QByteArray& in, QByteArray& out,
53 const QByteArray &key, const QByteArray& ivec,
54 bool enc = true);
55
56private:
57 bool encrypt(const QByteArray& in, QByteArray& out,
58 const QByteArray& key, const QByteArray& ivec,
59 const EVP_CIPHER *cipher, bool enc = true);
60
61 //TODO: only install the dependencies libraries(libssl)
62 int testSSL();
63
64private:
65 EVP_CIPHER_CTX *ctx;
66};
67
68#endif // EVPAES_H
The EvpAES class.
Definition EvpAES.h:21