AusweisApp2
KeyPair.h
gehe zur Dokumentation dieser Datei
1 /*
2  * \brief Generates a new private/public key with an X509 certificate.
3  *
4  * \copyright Copyright (c) 2017-2021 Governikus GmbH & Co. KG, Germany
5  */
6 
7 #pragma once
8 
9 #include <openssl/evp.h>
10 #include <openssl/x509.h>
11 
12 #include <QByteArray>
13 #include <QSharedPointer>
14 #include <QSslCertificate>
15 #include <QSslKey>
16 
17 namespace governikus
18 {
19 
20 class KeyPair
21 {
22  private:
23  const QSslKey mKey;
24  const QSslCertificate mCertificate;
25 
26  KeyPair() = default;
27  KeyPair(const QSslKey& pKey, const QSslCertificate& pCert);
28 
29  static QByteArray rewriteCertificate(X509* pX509);
30  static QSharedPointer<X509> createCertificate(EVP_PKEY* pPkey);
31  static EVP_PKEY* createKey();
32 
33  public:
34  static KeyPair generate();
35 
36  [[nodiscard]] const QSslKey& getKey() const;
37  [[nodiscard]] const QSslCertificate& getCertificate() const;
38  [[nodiscard]] bool isValid() const;
39 };
40 
41 
42 } // namespace governikus
Definition: KeyPair.h:21
const QSslKey & getKey() const
Definition: KeyPair.cpp:87
static KeyPair generate()
Definition: KeyPair.cpp:61
bool isValid() const
Definition: KeyPair.cpp:188
const QSslCertificate & getCertificate() const
Definition: KeyPair.cpp:93
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15