AusweisApp2
Lade ...
Suche ...
Keine Treffer
EcdhKeyAgreement.h
gehe zur Dokumentation dieser Datei
1
5#pragma once
6
7#include "asn1/SecurityInfo.h"
10#include "pace/KeyAgreement.h"
11
12#include <openssl/ec.h>
13#include <QPair>
14#include <QSharedPointer>
15
16class test_EcdhKeyAgreement;
17
18namespace governikus
19{
20
22 : public KeyAgreement
23{
24 private:
25 friend class ::test_EcdhKeyAgreement;
26
27 QSharedPointer<DomainParameterMapping<EC_GROUP>> mMapping;
28 QSharedPointer<EC_GROUP> mEphemeralCurve;
29 QSharedPointer<EC_POINT> mTerminalPublicKey;
30 QSharedPointer<const EC_POINT> mCardPublicKey;
31
32 QPair<CardReturnCode, QSharedPointer<EC_GROUP>> determineEphemeralDomainParameters(const QByteArray& pNonce);
33 QPair<CardReturnCode, QSharedPointer<EC_POINT>> performKeyExchange(const QSharedPointer<const EC_GROUP>& pCurve);
34
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);
37
38 KeyAgreement::CardResult determineSharedSecret(const QByteArray& pNonce) override;
39 QByteArray getUncompressedTerminalPublicKey() override;
40 QByteArray getUncompressedCardPublicKey() override;
41 QByteArray getCompressedCardPublicKey() override;
42
43 EcdhKeyAgreement(const QSharedPointer<const PaceInfo>& pPaceInfo, const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker);
44
45 public:
46 static QSharedPointer<EcdhKeyAgreement> create(const QSharedPointer<const PaceInfo>& pPaceInfo,
47 const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker);
48
49 ~EcdhKeyAgreement() override = default;
50};
51
52} // namespace governikus
Definition: EcdhKeyAgreement.h:23
~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