AusweisApp2
 Alle Klassen Namensbereiche Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Propertys Freundbeziehungen Makrodefinitionen
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 
16 namespace governikus
17 {
18 
39 typedef 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  QSharedPointer<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  QByteArray getPublicKeyOid() const;
56 
60  QByteArray getPublicKeyOidValueBytes() const;
61  QByteArray getUncompressedPublicPoint() const;
62  QSharedPointer<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 
71 
72 
73 DECLARE_ASN1_FUNCTIONS(EcdsaPublicKey)
75 
76 } /* namespace governikus */
ASN1_OCTET_STRING * mSecondCoefficient
Definition: EcdsaPublicKey.h:44
QByteArray encode()
Definition: EcdsaPublicKey.cpp:92
ASN1_OCTET_STRING * mBasePoint
Definition: EcdsaPublicKey.h:45
ASN1_OCTET_STRING * mCofactor
Definition: EcdsaPublicKey.h:48
QSharedPointer< EC_KEY > mEcKey
Definition: EcdsaPublicKey.h:49
static QSharedPointer< ecdsapublickey_st > decode(const QByteArray &pBytes)
Definition: EcdsaPublicKey.cpp:86
ASN1_OCTET_STRING * mPublicPoint
Definition: EcdsaPublicKey.h:47
struct governikus::ecdsapublickey_st EcdsaPublicKey
According to TR-03110-3 chapter D elliptic curve public keys are defined as follows: ...
static int decodeCallback(int pOperation, ASN1_VALUE **pVal, const ASN1_ITEM *pIt, void *pExarg)
Definition: EcdsaPublicKey.cpp:23
QSharedPointer< const EC_KEY > getEcKey() const
Definition: EcdsaPublicKey.cpp:116
ASN1_OBJECT * mObjectIdentifier
Definition: EcdsaPublicKey.h:41
QByteArray getUncompressedPublicPoint() const
Definition: EcdsaPublicKey.cpp:110
ASN1_OCTET_STRING * mPrimeModulus
Definition: EcdsaPublicKey.h:42
static QSharedPointer< ecdsapublickey_st > fromHex(const QByteArray &pHexValue)
Definition: EcdsaPublicKey.cpp:80
#define DECLARE_ASN1_OBJECT(name)
Definition: ASN1TemplateUtil.h:152
ASN1_OCTET_STRING * mOrderOfTheBasePoint
Definition: EcdsaPublicKey.h:46
According to TR-03110-3 chapter D elliptic curve public keys are defined as follows: ...
Definition: EcdsaPublicKey.h:39
QByteArray getPublicKeyOid() const
Definition: EcdsaPublicKey.cpp:98
ASN1_OCTET_STRING * mFirstCoefficient
Definition: EcdsaPublicKey.h:43
QByteArray getPublicKeyOidValueBytes() const
Definition: EcdsaPublicKey.cpp:104