Как создать отпечаток пальца для открытого ключа, чтобы проверить открытый ключ?

Мне нужно проверить входящее соединение в моем приложении. При входящем соединении будет отправлен открытый ключ и отпечаток открытого ключа. Мне нужно проверить этот открытый ключ, рассчитав отпечаток пальца для открытого ключа, а затем сравнить вычисленный отпечаток пальца с отпечатком, отправленным клиентом. Я не могу найти способ вычислить этот отпечаток для открытого ключа. Я использую библиотеку open-ssl на платформе C.

Буду очень признателен за любую помощь в расчете этого отпечатка открытого ключа.

1 ответ

Я вычислил хеш SHA1, который можно использовать в качестве отпечатка пальца следующим образом:

X509 * cert = ... /*Initialize certificate*/
unsigned char buffer[SHA1_DIGEST_LENGTH];
X509_check_purpose (cert, -1, 0);
/*Copy sha1_hash from the certificate.*/
memcpy(abuffer, rCert->sha1_hash, SHA1_DIGEST_LENGTH);

Я надеюсь, что это поможет вам.

Другие вопросы по тегам