#pragma once #include #include #include #include #include "security_db_record.hh" class OCTETSTRING; /*! * \class security_db * \brief This class provides security record description for security database */ class security_db { std::map > _certificates; //! List of the certificates indexed by the certficate identifier std::map, const std::string&> _hashed_id8s; //! List of the certificates indexed by the HashedId8 public: /*! \publicsection */ /*! * \brief Default ctor */ security_db(); /*! * \brief Ctor with full path to the certificates storage */ security_db(const std::string& p_db_path); /*! * \brief Default private dtor */ ~security_db(); int get_certificate_id(const OCTETSTRING& p_hashed_id8, std::string& p_certifcate_id) const; int get_certificate(const std::string& p_certifcate_id, OCTETSTRING& p_certificate) const; int get_hashed_id_issuer(const std::string& p_certifcate_id, OCTETSTRING& p_hashed_id_issuer) const; int get_hashed_id(const std::string& p_certifcate_id, OCTETSTRING& p_hashed_id) const; int get_private_key(const std::string& p_certifcate_id, OCTETSTRING& p_private_key) const; int get_public_keys(const std::string& p_certifcate_id, OCTETSTRING& p_public_key_x, OCTETSTRING& p_public_key_y) const; void dump() const; private: int load_from_files(const std::string& p_db_path); int simulate_certificates(); }; // End of class security_db