#pragma once /* MBEDTLS BASED CERTIFICATE ========================= This class can be used to generate a self-signed x509 certificate which enables you to perform secure communication. This certificate uses a 2048 bits RSA key. */ #include #if MBEDTLS_VERSION_MAJOR > 2 #include #else #include #endif #include #include #include #include #include #include #include #include class Certificate{ public: Certificate(); bool loadCert(const std::string & certFile); bool loadKey(const std::string & certFile); int init(const std::string &countryName, const std::string &organization, const std::string &commonName); ~Certificate(); std::string getFingerprintSha256() const; public: mbedtls_x509_crt cert; mbedtls_pk_context key; /* key context, stores private and public key. */ private: mbedtls_ctr_drbg_context rand_ctx; };