AusweisApp
 
Lade ...
Suche ...
Keine Treffer
KeyPair.h
gehe zur Dokumentation dieser Datei
1
4
5#pragma once
6
7#include <openssl/evp.h>
8#include <openssl/x509.h>
9
10#include <QByteArray>
11#include <QSharedPointer>
12#include <QSslCertificate>
13#include <QSslKey>
14
15namespace governikus
16{
17
18class KeyPair
19{
20 private:
21 const QSslKey mKey;
22 const QSslCertificate mCertificate;
23
24 KeyPair() = default;
25 KeyPair(const QSslKey& pKey, const QSslCertificate& pCert);
26
27 static QByteArray rewriteCertificate(X509* pX509);
28 static QSharedPointer<X509> createCertificate(EVP_PKEY* pPkey, const QSharedPointer<EVP_PKEY>& pSignerKey = nullptr, const QSharedPointer<X509>& pSignerCert = nullptr);
29 static EVP_PKEY* createKey(int pKeyCtxNid, const std::function<bool(EVP_PKEY_CTX*)>& pFunc);
30 static QSharedPointer<EVP_PKEY> parseKey(const QByteArray& pData);
31 static QSharedPointer<X509> parseCertificate(const QByteArray& pData);
32 static KeyPair generatePair(EVP_PKEY* pKey, const QByteArray& pSignerKey, const QByteArray& pSignerCert);
33
34 public:
35 static KeyPair generate(const char* pCurve, const QByteArray& pSignerKey = QByteArray(), const QByteArray& pSignerCert = QByteArray());
36 static KeyPair generate(int pKeySize = 2048, const QByteArray& pSignerKey = QByteArray(), const QByteArray& pSignerCert = QByteArray());
37
38 [[nodiscard]] const QSslKey& getKey() const;
39 [[nodiscard]] const QSslCertificate& getCertificate() const;
40 [[nodiscard]] bool isValid() const;
41};
42
43
44} // namespace governikus
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
Defines the AccessRight and AccessRole enum.
Definition CommandApdu.h:17