Загрузитесь PEM закодировал сертификат X.509 в Windows CryptoAPI

В целом я не думаю, что существуют любые явные отношения между.h и.c файлами. Во многих случаях (вероятно, большинство), единица кода является библиотекой функциональности с открытым интерфейсом (.h) и непрозрачной реализацией (.c). Иногда много символов необходимы, как перечисления или макросы, и Вы получаете.h без соответствующего.c и при нескольких обстоятельствах, у Вас будет глыба кода без открытого интерфейса и никакого соответствующего .h

, в частности, существует неоднократно, когда ради удобочитаемости заголовки или реализации (редко оба) являются столь большими и волосатыми, что они заканчивают тем, что были повреждены во многие меньшие файлы ради исправности программиста.

14
задан jww 15 July 2019 в 02:48
поделиться

2 ответа

Сейчас я столкнулся с той же проблемой. Я еще не закончил кодирование решения, но, насколько я понимаю, вам нужно удалить теги ----- BEGIN и т.д. ----- и ----- END и т.д. ------ и декодировать Base64 .

Это оставляет вам строку в кодировке DER, которую нужно проанализировать, чтобы получить модуль и публичную экспоненту. Из них вы можете заполнить структуры PUBLICKEYSTRUC и RSAPUBKEY. Удачи; -)

2
ответ дан 1 December 2019 в 08:42
поделиться

Я обнаружил «магическую» последовательность вызовов для импорта открытого ключа RSA в формате PEM. Здесь вы идете:

  1. декодирует ключ в двоичном капле с помощью CryptStringTobrinate ; Pass Crypt_String_Base64Header В DWFLAGS
  2. декодирует BLOB Binary ключей в Cert_public_key_info с CryptDeCodeobjectex ; pass x509_asn_encoding в dwcertencodingtype и и x509_public_key_info в LPSZSTRUCTTYPE
  3. декодирует BLOB COUNCTHY из CERT_PUBLE_KEY_INFO в Blob rsA с помощью CryptDeCodeObjectex ; Pass X509_ASN_ENCODING в DWCERTENCODINGYPE и RSA_CSP_PUBLELYKEYBLOB в LPSZSTRUCTTYPE
  4. Импортировать Blob rsa с CryptimplyKey
10
ответ дан 1 December 2019 в 08:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: