Итак, я взаимодействую между OpenSSL и функциями BCrypt в Windows.Я пишу приложение в QT и могу использовать только BCrypt для клиентской части и OpenSSL на стороне сервера.Я успешно произвел обмен ключами DH, единственная проблема, с которой я столкнулся, это то, как мне удалось бы получить ключ AES 128 из общего секрета.Код, который я использую для шифрования AES 128: https://github.com/Microsoft/Windows-classic-samples/blob/master/Samples/Security/CipherEncryptionDecryption/cpp/CipherEncryptionDecryption.cpp, где я передаю spassword как sha1 общего секрета.
код на стороне сервера PHP, который я использую:
echo bin2hex(openssl_pbkdf2(sha1($shared_secret), $salt, $keylen, $iterations, 'sha256'));
Итерации, соль и все совпадают на стороне клиента и сервера.Однако результаты не совпадают.Что является причиной этого?