AusweisApp2
Lade ...
Suche ...
Keine Treffer
EcdsaPublicKey.h
gehe zur Dokumentation dieser Datei
1
5#pragma once
6
7#include "ASN1TemplateUtil.h"
8
9#include <QByteArray>
10#include <QSharedPointer>
11
12#include <openssl/asn1t.h>
13#include <openssl/ec.h>
14
15
16namespace governikus
17{
18
39using EcdsaPublicKey = struct ecdsapublickey_st
40{
41 ASN1_OBJECT* mObjectIdentifier;
42 ASN1_OCTET_STRING* mPrimeModulus;
43 ASN1_OCTET_STRING* mFirstCoefficient;
44 ASN1_OCTET_STRING* mSecondCoefficient;
45 ASN1_OCTET_STRING* mBasePoint;
46 ASN1_OCTET_STRING* mOrderOfTheBasePoint;
47 ASN1_OCTET_STRING* mPublicPoint;
48 ASN1_OCTET_STRING* mCofactor;
49 EC_KEY* mEcKey;
50
51 static QSharedPointer<ecdsapublickey_st> fromHex(const QByteArray& pHexValue);
52 static QSharedPointer<ecdsapublickey_st> decode(const QByteArray& pBytes);
53 QByteArray encode();
54
55 [[nodiscard]] QByteArray getPublicKeyOid() const;
56
60 [[nodiscard]] QByteArray getPublicKeyOidValueBytes() const;
61 [[nodiscard]] QByteArray getUncompressedPublicPoint() const;
62 [[nodiscard]] const EC_KEY* getEcKey() const;
63
64 private:
65 void initEcKey();
66
67 public:
68 static int decodeCallback(int pOperation, ASN1_VALUE** pVal, const ASN1_ITEM* pIt, void* pExarg);
69};
70
71
72DECLARE_ASN1_FUNCTIONS(EcdsaPublicKey)
74
75} // namespace governikus
#define DECLARE_ASN1_OBJECT(name)
Definition: ASN1TemplateUtil.h:164
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
ASN1_OCTET_STRING * mPrimeModulus
Definition: EcdsaPublicKey.h:42
const EC_KEY * getEcKey() const
Definition: EcdsaPublicKey.cpp:124
ASN1_OCTET_STRING * mSecondCoefficient
Definition: EcdsaPublicKey.h:44
ASN1_OCTET_STRING * mBasePoint
Definition: EcdsaPublicKey.h:45
ASN1_OCTET_STRING * mCofactor
Definition: EcdsaPublicKey.h:48
EC_KEY * mEcKey
Definition: EcdsaPublicKey.h:49
ASN1_OCTET_STRING * mOrderOfTheBasePoint
Definition: EcdsaPublicKey.h:46
ASN1_OCTET_STRING * mFirstCoefficient
Definition: EcdsaPublicKey.h:43
QByteArray encode() const
ASN1_OCTET_STRING * mPublicPoint
Definition: EcdsaPublicKey.h:47
QByteArray getPublicKeyOidValueBytes() const
Definition: EcdsaPublicKey.cpp:112
QByteArray getPublicKeyOid() const
Definition: EcdsaPublicKey.cpp:106
ecdsapublickey_st { ASN1_OBJECT *mObjectIdentifier EcdsaPublicKey
According to TR-03110-3 chapter D elliptic curve public keys are defined as follows:
Definition: EcdsaPublicKey.h:41
QByteArray getUncompressedPublicPoint() const
Definition: EcdsaPublicKey.cpp:118