Я сгенерировал пару открытых/закрытых ключей с помощью Crypto++ и зашифровал пароль на стороне клиента с помощью Crypto++ (RSAES_OAEP_SHA_Encryptor), а затем закодировал его в base64. Теперь я хотел бы декодировать его в PHP-скрипте на стороне сервера (через phpseclib). Закрытый ключ имеет формат "MIIEuwIBADANBgkqhkiG9w0BAQ...." (без разрывов), затем я форматирую его так:
static $BEGIN_MARKER = "-----BEGIN RSA PRIVATE KEY-----";
static $END_MARKER = "-----END RSA PRIVATE KEY-----";
$pem = $BEGIN_MARKER . "\n";
$pem .= chunk_split($key, 64, "\n");
$pem .= $END_MARKER . "\n";
перед загрузкой с помощью:
$rsa->loadKey($pem,CRYPT_RSA_PRIVATE_FORMAT_PKCS1);
который, кажется, работает. Но расшифровка сообщения через:
$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_OAEP);
$plaintext = $rsa->decrypt(base64_decode($input));
выдает просто пустую строку. Никаких ошибок не дают.
У меня есть аналогичный обработчик ASP.Net С#, который может без проблем декодировать сообщение...
Есть идеи ?