6 #include <openssl/engine.h>
7 #include <openssl/err.h>
8 #include "gtest/gtest_prod.h"
10 #include "logging/logging.h"
11 #include "p11_config.h"
19 PKCS11_ctx_st *get()
const {
return ctx; }
31 PKCS11_slot_st *get_slots()
const {
return wslots_; }
32 unsigned int get_nslots()
const {
return nslots; }
36 PKCS11_slot_st *wslots_;
48 if (ssl_engine_ !=
nullptr) {
49 ENGINE_finish(ssl_engine_);
50 ENGINE_free(ssl_engine_);
55 ENGINE *getEngine() {
return ssl_engine_; }
56 std::string getUptaneKeyId()
const {
return uri_prefix_ + config_.uptane_key_id; }
57 std::string getTlsCacertId()
const {
return uri_prefix_ + config_.tls_cacert_id; }
58 std::string getTlsPkeyId()
const {
return uri_prefix_ + config_.tls_pkey_id; }
59 std::string getTlsCertId()
const {
return uri_prefix_ + config_.tls_clientcert_id; }
60 bool readUptanePublicKey(std::string *key_out);
61 bool readTlsCert(std::string *cert_out)
const;
62 bool generateUptaneKeyPair();
66 ENGINE *ssl_engine_{
nullptr};
67 std::string uri_prefix_;
71 static boost::filesystem::path findPkcsLibrary();
72 PKCS11_slot_st *findTokenSlot()
const;
77 FRIEND_TEST(crypto, findPkcsLibrary);
83 if (instance ==
nullptr) {
89 if (ref_counter != 0) {
92 if (ref_counter == 0) {
97 P11Engine *operator->()
const {
return instance; }
101 static int ref_counter;