26#ifndef ROUTING_CLASSIC_AUTH_INCLUDED
27#define ROUTING_CLASSIC_AUTH_INCLUDED
31#include <system_error>
33#include <openssl/ssl.h>
46using EvpPkey = std::unique_ptr<EVP_PKEY, OsslDeleter<EVP_PKEY>>;
54 std::string_view pubkey);
57 std::string plaintext, EVP_PKEY *pkey);
60 std::string_view ciphertext, EVP_PKEY *priv);
63 SSL_CTX *ssl_ctx, std::string_view encrypted, std::string_view nonce);
66 const EvpPkey &pkey, std::string_view
password, std::string_view nonce);
Definition: classic_auth.h:48
static stdx::expected< std::string, std::error_code > public_key_encrypt(std::string plaintext, EVP_PKEY *pkey)
Definition: classic_auth.cc:125
static stdx::expected< std::string, std::error_code > private_key_decrypt(std::string_view ciphertext, EVP_PKEY *priv)
Definition: classic_auth.cc:166
static stdx::expected< std::string, std::error_code > rsa_encrypt_password(const EvpPkey &pkey, std::string_view password, std::string_view nonce)
Definition: classic_auth.cc:273
static stdx::expected< std::string, std::error_code > public_key_from_ssl_ctx_as_pem(SSL_CTX *ssl_ctx)
Definition: classic_auth.cc:86
static bool connection_has_public_key(MysqlRoutingClassicConnectionBase *connection)
Definition: classic_auth.cc:290
static std::string_view strip_trailing_null(std::string_view s)
remove trailing \0 in a string_view.
Definition: classic_auth.cc:45
static stdx::expected< std::string, std::error_code > rsa_decrypt_password(SSL_CTX *ssl_ctx, std::string_view encrypted, std::string_view nonce)
Definition: classic_auth.cc:244
static stdx::expected< EvpPkey, std::error_code > public_key_from_pem(std::string_view pubkey)
Definition: classic_auth.cc:112
Definition: classic_connection_base.h:56
std::unique_ptr< EVP_PKEY, OsslDeleter< EVP_PKEY > > EvpPkey
Definition: classic_auth.cc:76
Definition: expected.h:284
static char * password
Definition: mysql_secure_installation.cc:58
void operator()(EVP_PKEY *k)
Definition: classic_auth.h:43
Definition: classic_auth.h:39