AusweisApp2
Lade ...
Suche ...
Keine Treffer
SecureMessaging.h
gehe zur Dokumentation dieser Datei
1
7#pragma once
8
9#include "SecurityProtocol.h"
10#include "apdu/CommandApdu.h"
11#include "apdu/ResponseApdu.h"
13#include "pace/CipherMac.h"
15
16#include <QByteArray>
17
18
19namespace governikus
20{
21
22class SecureMessaging final
23{
24 private:
25 SymmetricCipher mCipher;
26 CipherMac mCipherMac;
27 quint32 mSendSequenceCounter;
28
29 [[nodiscard]] QByteArray padToCipherBlockSize(const QByteArray& pData) const;
30 [[nodiscard]] QByteArray unpadFromCipherBlockSize(const QByteArray& pData) const;
31 [[nodiscard]] QByteArray createSecuredHeader(const CommandApdu& pCommandApdu) const;
32 QByteArray createMac(const QByteArray& pSecuredHeader, const QByteArray& pFormattedEncryptedData, const QByteArray& pSecuredLe);
33 [[nodiscard]] int createNewLe(const QByteArray& pSecuredData, int pOldLe) const;
34 [[nodiscard]] QByteArray getSendSequenceCounter() const;
35 QByteArray getEncryptedIv();
36
37 [[nodiscard]] QByteArray createSecuredLe(int pLe) const;
38
39 public:
40 SecureMessaging(const SecurityProtocol& pSecurityProtocol, const QByteArray& pEncKey, const QByteArray& pMacKey);
41 ~SecureMessaging() = default;
42
46 [[nodiscard]] bool isInitialized() const;
47
48 CommandApdu encrypt(const CommandApdu& pCommandApdu);
49
50 CommandApdu decrypt(const CommandApdu& pEncryptedCommandApdu);
51
52 ResponseApdu encrypt(const ResponseApdu& pResponseApdu);
53
54 ResponseApdu decrypt(const ResponseApdu& pEncryptedResponseApdu);
55};
56
57} // namespace governikus
Definition: CipherMac.h:18
Definition: SecureMessaging.h:23
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:18
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16