AusweisApp2
 Alle Klassen Namensbereiche Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Propertys Freundbeziehungen Makrodefinitionen
EcdhKeyAgreement.h
gehe zur Dokumentation dieser Datei
1 
5 #pragma once
6 
7 #include "asn1/SecurityInfo.h"
8 #include "CardConnectionWorker.h"
10 #include "pace/KeyAgreement.h"
11 
12 #include <openssl/ec.h>
13 #include <QSharedPointer>
14 
15 class test_EcdhKeyAgreement;
16 
17 namespace governikus
18 {
19 
21  : public KeyAgreement
22 {
23  private:
24  friend class ::test_EcdhKeyAgreement;
25 
26  QSharedPointer<DomainParameterMapping<EC_GROUP> > mMapping;
27  QSharedPointer<EC_GROUP> mEphemeralCurve;
28  QSharedPointer<EC_POINT> mTerminalPublicKey;
29  QSharedPointer<EC_POINT> mCardPublicKey;
30 
31  CardOperationResult<QSharedPointer<EC_GROUP> > determineEphemeralDomainParameters(const QByteArray& pNonce);
32  CardOperationResult<QSharedPointer<EC_POINT> > performKeyExchange(const QSharedPointer<const EC_GROUP>& pCurve);
33 
34  static QByteArray encodeUncompressedPublicKey(const QSharedPointer<const PACEInfo>& pPaceInfo, const QSharedPointer<const EC_GROUP>& pCurve, const QSharedPointer<const EC_POINT>& pPoint);
35  static QByteArray encodeCompressedPublicKey(const QSharedPointer<const EC_GROUP>& pCurve, const QSharedPointer<const EC_POINT>& pPoint);
36 
37  CardOperationResult<QByteArray> determineSharedSecret(const QByteArray& pNonce) override;
38  QByteArray getUncompressedTerminalPublicKey() override;
39  QByteArray getUncompressedCardPublicKey() override;
40  QByteArray getCompressedCardPublicKey() override;
41 
42  EcdhKeyAgreement(const QSharedPointer<const PACEInfo>& pPaceInfo, const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker);
43 
44  public:
45  static QSharedPointer<KeyAgreement> create(const QSharedPointer<const PACEInfo>& pPaceInfo,
46  const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker);
47 
48  virtual ~EcdhKeyAgreement() override;
49 };
50 
51 } /* namespace governikus */
Definition: KeyAgreement.h:32
static QSharedPointer< KeyAgreement > create(const QSharedPointer< const PACEInfo > &pPaceInfo, const QSharedPointer< CardConnectionWorker > &pCardConnectionWorker)
Definition: EcdhKeyAgreement.cpp:55
virtual ~EcdhKeyAgreement() override
Definition: EcdhKeyAgreement.cpp:78
Definition: EcdhKeyAgreement.h:20
Definition: CardOperationResult.h:14