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