13#include <QCryptographicHash>
16#include <QSharedPointer>
18#include <openssl/ec.h>
#define DECLARE_ASN1_OBJECT(name)
Definition ASN1TemplateUtil.h:177
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:17
struct ecdsapublickey_st { ASN1_OBJECT *mObjectIdentifier; ASN1_OCTET_STRING *mPrimeModulus; ASN1_OCTET_STRING *mFirstCoefficient; ASN1_OCTET_STRING *mSecondCoefficient; ASN1_OCTET_STRING *mBasePoint; ASN1_OCTET_STRING *mOrderOfTheBasePoint; ASN1_OCTET_STRING *mPublicPoint; ASN1_OCTET_STRING *mCofactor; static QSharedPointer< ecdsapublickey_st > fromHex(const QByteArray &pHexValue); static QSharedPointer< ecdsapublickey_st > decode(const QByteArray &pBytes); QByteArray encode();[[nodiscard]] bool isComplete() const ;[[nodiscard]] SecurityProtocol getSecurityProtocol() const ;[[nodiscard]] Oid getOid() const ;[[nodiscard]] QByteArray getUncompressedPublicPoint() const ;[[nodiscard]] QSharedPointer< EVP_PKEY > createKey(const QByteArray &pPublicPoint) const ;[[nodiscard]] QSharedPointer< EVP_PKEY > createKey() const ; private: struct CurveData { QSharedPointer< BIGNUM > p; QSharedPointer< BIGNUM > a; QSharedPointer< BIGNUM > b; QSharedPointer< BIGNUM > order; QSharedPointer< BIGNUM > cofactor;[[nodiscard]] bool isValid() const { return !p.isNull() &&!a.isNull() &&!b.isNull() &&!order.isNull(); } };[[nodiscard]] static bool isAllValid(const ecdsapublickey_st *pKey);[[nodiscard]] static bool isAllInvalid(const ecdsapublickey_st *pKey);[[nodiscard]] CurveData createCurveData() const ;[[nodiscard]] QSharedPointer< EVP_PKEY > createKey(const uchar *pPublicPoint, int pPublicPointLength) const ;[[nodiscard]] QSharedPointer< EC_GROUP > createGroup(const CurveData &pData) const ; public: static int decodeCallback(int pOperation, ASN1_VALUE **pVal, const ASN1_ITEM *pIt, void *pExarg);} EcdsaPublicKey
According to TR-03110-3 chapter D elliptic curve public keys are defined as follows:
Definition EcdsaPublicKey.h:42
struct chat_st { ASN1_OBJECT *mType; ASN1_OCTET_STRING *mTemplate; static QSharedPointer< chat_st > fromHex(const QByteArray &pHexValue); static QSharedPointer< chat_st > decode(const QByteArray &pBytes); chat_st(const chat_st &pCopy); chat_st &operator=(const chat_st &)=delete; ~chat_st();[[nodiscard]] Oid getType() const ;[[nodiscard]] QByteArray getTemplate() const ;[[nodiscard]] AccessRole getAccessRole() const ;[[nodiscard]] QSet< AccessRight > getAccessRights() const ; void setAccessRights(const QSet< AccessRight > &pAccessRights);[[nodiscard]] bool hasAccessRight(AccessRight pAccessRight) const ; void removeAllAccessRights(); void removeAccessRight(AccessRight pAccessRight); private: void setTemplateBit(uint pBitIndex, bool pOn); public: static int decodeCallback(int pOperation, ASN1_VALUE **pVal, const ASN1_ITEM *pIt, void *pExarg);} CHAT
According to.
Definition Chat.h:68
struct certificateprofilebody_st { ASN1_OCTET_STRING *mCertificateProfileIdentifier; ASN1_STRING *mCertificationAuthorityReference; EcdsaPublicKey *mPublicKey; ASN1_STRING *mCertificateHolderReference; CHAT *mChat; ASN1_OCTET_STRING *mEffectiveDate; ASN1_OCTET_STRING *mExpirationDate; STACK_OF(ASN1_TYPE) *mExtensions; static QSharedPointer< certificateprofilebody_st > decode(const QByteArray &pBytes); QByteArray encode();[[nodiscard]] QByteArray getCertificateProfileIdentifier() const ;[[nodiscard]] QByteArray getCertificationAuthorityReference() const ;[[nodiscard]] const EcdsaPublicKey &getPublicKey() const ;[[nodiscard]] QByteArray getCertificateHolderReference() const ;[[nodiscard]] const CHAT &getCHAT() const ; void setCertificateExpirationDate(QDate date);[[nodiscard]] QDate getCertificateExpirationDate() const ; void setCertificateEffectiveDate(QDate date);[[nodiscard]] QDate getCertificateEffectiveDate() const ;[[nodiscard]] QCryptographicHash::Algorithm getHashAlgorithm() const ;[[nodiscard]] QByteArray getExtension(const Oid &pOid) const ;} CVCertificateBody
Definition CVCertificateBody.h:24
QSharedPointer< T > decodeObject(const QByteArray &pData, bool pLogging=true)
Template function for decoding an OpenSSL type from DER encoded QByteArray.
Definition ASN1TemplateUtil.h:114