/*! * \copyright Copyright (c) 2014 Governikus GmbH & Co. KG */ #pragma once #include "pace/DomainParameterMapping.h" #include #include #include namespace governikus { // // Algorithm according to TR 03110 Part 3 chapter A.3.4.1.Generic Mapping // class EcdhGenericMapping : public DomainParameterMapping { private: const QSharedPointer mCurve; QSharedPointer mTerminalKey; QSharedPointer createNewGenerator(const QSharedPointer& pCardPubKey, const QSharedPointer& pS); void setGenerator(const QSharedPointer& pNewGenerator); public: EcdhGenericMapping(const QSharedPointer& pCurve); virtual ~EcdhGenericMapping(); QByteArray generateTerminalMappingData() override; QSharedPointer generateEphemeralDomainParameters(const QByteArray& pCardMappingData, const QByteArray& pNonce) override; }; } /* namespace governikus */