AusweisApp2
EcdhGenericMapping.h
gehe zur Dokumentation dieser Datei
1 
5 #pragma once
6 
7 #include <QByteArray>
8 #include <QSharedPointer>
9 #include <openssl/ec.h>
10 
11 class test_EcdhGenericMapping;
12 
13 namespace governikus
14 {
15 
20 {
21  friend class ::test_EcdhGenericMapping;
22 
23  private:
24  const QSharedPointer<EC_GROUP> mCurve;
25 #if OPENSSL_VERSION_NUMBER >= 0x30000000L
26  QSharedPointer<EVP_PKEY> mTerminalKey;
27 #else
28  QSharedPointer<EC_KEY> mTerminalKey;
29 #endif
30 
31  QSharedPointer<EC_POINT> createNewGenerator(const QSharedPointer<const EC_POINT>& pCardPubKey, const QSharedPointer<const BIGNUM>& pS);
32 
33  bool setGenerator(const QSharedPointer<const EC_POINT>& pNewGenerator);
34 
35  public:
36  explicit EcdhGenericMapping(const QSharedPointer<EC_GROUP>& pCurve);
37 
38  [[nodiscard]] const QSharedPointer<EC_GROUP>& getCurve() const;
39 
44  QByteArray generateTerminalMappingData();
45 
52  bool generateEphemeralDomainParameters(const QByteArray& pCardMappingData, const QByteArray& pNonce);
53 };
54 
55 } // namespace governikus
Algorithm according to TR 03110 Part 3 chapter A.3.4.1.Generic Mapping.
Definition: EcdhGenericMapping.h:20
const QSharedPointer< EC_GROUP > & getCurve() const
Definition: EcdhGenericMapping.cpp:24
EcdhGenericMapping(const QSharedPointer< EC_GROUP > &pCurve)
Definition: EcdhGenericMapping.cpp:17
bool generateEphemeralDomainParameters(const QByteArray &pCardMappingData, const QByteArray &pNonce)
Generates the ephemeral domain parameters.
Definition: EcdhGenericMapping.cpp:50
QByteArray generateTerminalMappingData()
Generates the terminal's mapping data, that will be sent to the card.
Definition: EcdhGenericMapping.cpp:30
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16