Как создать отпечаток пальца для открытого ключа, чтобы проверить открытый ключ?
Мне нужно проверить входящее соединение в моем приложении. При входящем соединении будет отправлен открытый ключ и отпечаток открытого ключа. Мне нужно проверить этот открытый ключ, рассчитав отпечаток пальца для открытого ключа, а затем сравнить вычисленный отпечаток пальца с отпечатком, отправленным клиентом. Я не могу найти способ вычислить этот отпечаток для открытого ключа. Я использую библиотеку 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);
Я надеюсь, что это поможет вам.