AusweisApp
Lade ...
Suche ...
Keine Treffer
KeyPair.h
gehe zur Dokumentation dieser Datei
1
5/*
6 * \brief Generates a new private/public key with an X509 certificate.
7 */
8
9#pragma once
10
11#include <openssl/evp.h>
12#include <openssl/x509.h>
13
14#include <QByteArray>
15#include <QSharedPointer>
16#include <QSslCertificate>
17#include <QSslKey>
18
19namespace governikus
20{
21
23{
24 private:
25 const QSslKey mKey;
26 const QSslCertificate mCertificate;
27
28 KeyPair() = default;
30
31 static QByteArray rewriteCertificate(X509* pX509);
32 static QSharedPointer<X509> createCertificate(EVP_PKEY* pPkey, const QSharedPointer<EVP_PKEY>& pSignerKey = nullptr, const QSharedPointer<X509>& pSignerCert = nullptr);
33 static EVP_PKEY* createKey(int pKeyCtxNid, const std::function<bool(EVP_PKEY_CTX*)>& pFunc);
34 static QSharedPointer<EVP_PKEY> parseKey(const QByteArray& pData);
35 static QSharedPointer<X509> parseCertificate(const QByteArray& pData);
36 static KeyPair generatePair(EVP_PKEY* pKey, const QByteArray& pSignerKey, const QByteArray& pSignerCert);
37
38 public:
39 static KeyPair generate(const char* pCurve, const QByteArray& pSignerKey = QByteArray(), const QByteArray& pSignerCert = QByteArray());
40 static KeyPair generate(int pKeySize = 2048, const QByteArray& pSignerKey = QByteArray(), const QByteArray& pSignerCert = QByteArray());
41
42 [[nodiscard]] const QSslKey& getKey() const;
43 [[nodiscard]] const QSslCertificate& getCertificate() const;
44 [[nodiscard]] bool isValid() const;
45};
46
47
48} // namespace governikus
Definition KeyPair.h:23
const QSslKey & getKey() const
Definition KeyPair.cpp:103
static KeyPair generate(const char *pCurve, const QByteArray &pSignerKey=QByteArray(), const QByteArray &pSignerCert=QByteArray())
Definition KeyPair.cpp:80
bool isValid() const
Definition KeyPair.cpp:236
const QSslCertificate & getCertificate() const
Definition KeyPair.cpp:109
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:17
QSharedPointer< T > decodeObject(const QByteArray &pData, bool pLogging=true)
Template function for decoding an OpenSSL type from DER encoded QByteArray.
Definition ASN1TemplateUtil.h:114