AusweisApp2
SymmetricCipher.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "SecurityProtocol.h"
10 
11 #include <QByteArray>
12 #include <openssl/evp.h>
13 
14 namespace governikus
15 {
16 
17 class SymmetricCipher final
18 {
19  Q_DISABLE_COPY(SymmetricCipher)
20 
21  private:
22  EVP_CIPHER_CTX* mCtx;
23  const EVP_CIPHER* mCipher;
24  QByteArray mIv;
25  QByteArray mKeyBytes;
26 
27  public:
34  SymmetricCipher(const SecurityProtocol& pSecurityProtocol, const QByteArray& pKeyBytes);
36 
40  [[nodiscard]] bool isInitialized() const;
41 
47  QByteArray encrypt(const QByteArray& pPlainData);
48 
54  QByteArray decrypt(const QByteArray& pEncryptedData);
55 
61  bool setIv(const QByteArray& pIv);
62 
63  [[nodiscard]] int getBlockSize() const;
64 };
65 
66 } // namespace governikus
Definition: SymmetricCipher.h:18
bool isInitialized() const
Returns true, if initialization succeeded, i.e.
Definition: SymmetricCipher.cpp:58
QByteArray decrypt(const QByteArray &pEncryptedData)
Decrypts the message.
Definition: SymmetricCipher.cpp:126
bool setIv(const QByteArray &pIv)
Sets the initialization vector.
Definition: SymmetricCipher.cpp:105
int getBlockSize() const
Definition: SymmetricCipher.cpp:119
QByteArray encrypt(const QByteArray &pPlainData)
Encrypts the message.
Definition: SymmetricCipher.cpp:64
~SymmetricCipher()
Definition: SymmetricCipher.cpp:46
SymmetricCipher(const SecurityProtocol &pSecurityProtocol, const QByteArray &pKeyBytes)
Creates a new instance with cipher algorithm determined by parameter and specified cipher key.
Definition: SymmetricCipher.cpp:17
A simple template renderer.
Definition: ActivationContext.h:15