12 #include <openssl/ec.h>
14 #include <QSharedPointer>
16 class test_EcdhKeyAgreement;
25 friend class ::test_EcdhKeyAgreement;
27 QSharedPointer<DomainParameterMapping<EC_GROUP>> mMapping;
28 QSharedPointer<EC_GROUP> mEphemeralCurve;
29 QSharedPointer<EC_POINT> mTerminalPublicKey;
30 QSharedPointer<const EC_POINT> mCardPublicKey;
32 QPair<CardReturnCode, QSharedPointer<EC_GROUP>> determineEphemeralDomainParameters(
const QByteArray& pNonce);
33 QPair<CardReturnCode, QSharedPointer<EC_POINT>> performKeyExchange(
const QSharedPointer<const EC_GROUP>& pCurve);
35 static QByteArray encodeUncompressedPublicKey(
const QSharedPointer<const PaceInfo>& pPaceInfo,
const QSharedPointer<const EC_GROUP>& pCurve,
const QSharedPointer<const EC_POINT>& pPoint);
36 static QByteArray encodeCompressedPublicKey(
const QSharedPointer<const EC_GROUP>& pCurve,
const QSharedPointer<const EC_POINT>& pPoint);
39 QByteArray getUncompressedTerminalPublicKey()
override;
40 QByteArray getUncompressedCardPublicKey()
override;
41 QByteArray getCompressedCardPublicKey()
override;
43 EcdhKeyAgreement(
const QSharedPointer<const PaceInfo>& pPaceInfo,
const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker);
46 static QSharedPointer<EcdhKeyAgreement>
create(
const QSharedPointer<const PaceInfo>& pPaceInfo,
47 const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker);
Definition: EcdhKeyAgreement.h:23
virtual ~EcdhKeyAgreement() override=default
static QSharedPointer< EcdhKeyAgreement > create(const QSharedPointer< const PaceInfo > &pPaceInfo, const QSharedPointer< CardConnectionWorker > &pCardConnectionWorker)
Definition: EcdhKeyAgreement.cpp:53
Definition: KeyAgreement.h:28
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
Definition: KeyAgreement.h:31