Как получить сертификат в кодировке base64 (PEM) из подключенного сеанса SSL

Я использую следующее для получения сертификата PEM для подключенного сеанса в openssl C. Мне нужно получить сертификат в кодировке base64.

if(this->ssl) {
X509 *cert = SSL_get_certificate(this->ssl);
EVP_PKEY *pubKey = X509_get_pubkey(cert);
LOG_INFO("Public key is " << BN_bn2hex(pubKey->pkey.rsa->n));
}

Любая информация о том, как мне этого добиться, будет полезна.

0

Решение

Вы должны использовать i2d_X509 функция для получения сертификата в кодировке DER.
Затем используйте ваш любимый кодер base64 и закодируйте его в PEM.
Не забудьте добавить ——НАЧАТЬ СЕРТИФИКАТ —— а также ——КОНЕЦ СЕРТИФИКАТА —— если хочешь это правильно.

Вот Вы можете найти пример того, как кодировать с помощью самого OpenSSL.
Используя OpenSSL, вы можете упростить вещи, используя i2d_X509_bio функция для помещения данных, закодированных DER, непосредственно в BIO.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]