Как я могу использовать Crypto API для хэша для TLS 1.2 - PullRequest
0 голосов
/ 23 января 2019

Я работаю над обновлением версии 1.0 TLS до версии 1.2 для существующих приложений Windows / Win CE. Прямо сейчас мое приложение использует Openssl 0.9.8k (поддерживает TLS 1.0). Для обновления версии TLS я использую Openssl-1.0.2p (поддерживает TLS 1.2). Я подписывал данные, используя MD5-SHA1, аналогично шагам, выполняемым в MD5-SHA1, используя CryptoAPI (мое требование было таким же, как это)

  1. Создан хэш с использованием поставщика дескриптора ключа сертификата и использует алгоритм CALG_SSL3_SHAMD5.
  2. Используя CryptSetHashParam, я установил начальное значение хеша
  3. Подписал хеш с помощью CryptSignHash.
  4. После этого поменяйте порядок следования байтов (поскольку подпись OpenSSL упоминается как Big endian.

Но TLS 1.2 должен подписывать хеш с использованием RSA-SHA256. Как я могу достичь с помощью Crypto API?

Я попытался создать хэш с помощью поставщика дескриптора ключа сертификата и использовать алгоритм CALG_SHA_256 вместо CALG_SSL3_SHAMD5. Но проверка сертификата на сервере завершилась неудачно с ошибкой «Bad Signature».

Я занимался серфингом на страницах MSDN, и я предполагаю, что API CNG могут выполнять мою работу для ОС Windows 7. Если это правда, как я могу достичь? Кроме того, я не вижу API-интерфейсы, эквивалентные CNG, в Windows CE. Как этого добиться в Windows CE?

Спасибо.

...