AusweisApp
Lade ...
Suche ...
Keine Treffer
SecureMessaging.h
gehe zur Dokumentation dieser Datei
1
4
5#pragma once
6
7#include "SecurityProtocol.h"
8#include "apdu/CommandApdu.h"
9#include "apdu/ResponseApdu.h"
10#include "pace/CipherMac.h"
12
13#include <QByteArray>
14
15
16namespace governikus
17{
18
19class SecureMessaging final
20{
21 private:
22 SymmetricCipher mCipher;
23 CipherMac mCipherMac;
24 quint32 mSendSequenceCounter;
25
26 [[nodiscard]] QByteArray padToCipherBlockSize(const QByteArray& pData) const;
27 [[nodiscard]] QByteArray unpadFromCipherBlockSize(const QByteArray& pData) const;
28 [[nodiscard]] QByteArray createSecuredHeader(const CommandApdu& pCommandApdu) const;
29 QByteArray createMac(const QByteArray& pSecuredHeader, const QByteArray& pFormattedEncryptedData, const QByteArray& pSecuredLe) const;
30 [[nodiscard]] int createNewLe(const QByteArray& pSecuredData, int pOldLe) const;
31 [[nodiscard]] QByteArray getSendSequenceCounter() const;
32 QByteArray getEncryptedIv();
33
34 public:
35 SecureMessaging(const SecurityProtocol& pSecurityProtocol, const QByteArray& pEncKey, const QByteArray& pMacKey);
36 ~SecureMessaging() = default;
37
41 [[nodiscard]] bool isInitialized() const;
42
43 CommandApdu encrypt(const CommandApdu& pCommandApdu);
44
45 CommandApdu decrypt(const CommandApdu& pEncryptedCommandApdu);
46
47 ResponseApdu encrypt(const ResponseApdu& pResponseApdu);
48
49 ResponseApdu decrypt(const ResponseApdu& pEncryptedResponseApdu);
50};
51
52} // namespace governikus
Definition CipherMac.h:17
SecureMessaging(const SecurityProtocol &pSecurityProtocol, const QByteArray &pEncKey, const QByteArray &pMacKey)
Definition SecureMessaging.cpp:25
CommandApdu encrypt(const CommandApdu &pCommandApdu)
Definition SecureMessaging.cpp:77
CommandApdu decrypt(const CommandApdu &pEncryptedCommandApdu)
Definition SecureMessaging.cpp:123
bool isInitialized() const
Returns true, if initialization succeeded, i.e.
Definition SecureMessaging.cpp:35
Definition SymmetricCipher.h:17
Defines the AccessRight and AccessRole enum.
Definition CommandApdu.h:17