AusweisApp
Lade ...
Suche ...
Keine Treffer
EcdhKeyAgreement.h
gehe zur Dokumentation dieser Datei
1
5#pragma once
6
9#include "pace/KeyAgreement.h"
10
11#include <QSharedPointer>
12#include <openssl/ec.h>
13
14class test_EcdhKeyAgreement;
15
16namespace governikus
17{
18
20 : public KeyAgreement
21{
22 friend class ::test_EcdhKeyAgreement;
23
24 private:
25 QSharedPointer<EcdhGenericMapping> mMapping;
26 QSharedPointer<EC_POINT> mTerminalPublicKey;
27 QSharedPointer<const EC_POINT> mCardPublicKey;
28
29 CardReturnCode determineEphemeralDomainParameters(const QByteArray& pNonce);
30 CardResult performKeyExchange();
31
32 static QByteArray encodeUncompressedPublicKey(const QSharedPointer<const PaceInfo>& pPaceInfo, const QSharedPointer<const EC_GROUP>& pCurve, const QSharedPointer<const EC_POINT>& pPoint);
33
34 KeyAgreement::CardResult determineSharedSecret(const QByteArray& pNonce) override;
35 QByteArray getUncompressedTerminalPublicKey() override;
36 QByteArray getUncompressedCardPublicKey() override;
37 QByteArray getCompressedCardPublicKey() override;
38
39 explicit EcdhKeyAgreement(const QSharedPointer<const PaceInfo>& pPaceInfo,
40 const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker,
41 const QSharedPointer<EcdhGenericMapping>& pMapping);
42
43 public:
44 static QSharedPointer<EcdhKeyAgreement> create(const QSharedPointer<const PaceInfo>& pPaceInfo,
45 const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker);
46};
47
48} // namespace governikus
Definition: EcdhKeyAgreement.h:21
static QSharedPointer< EcdhKeyAgreement > create(const QSharedPointer< const PaceInfo > &pPaceInfo, const QSharedPointer< CardConnectionWorker > &pCardConnectionWorker)
Definition: EcdhKeyAgreement.cpp:42
Definition: KeyAgreement.h:30
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16
Definition: KeyAgreement.h:33