Вопрос

I have generated a public/private keypair with Crypto++, and I encode a password on the client side with Crypto++ (RSAES_OAEP_SHA_Encryptor), then I base64 encode it. Now I'd like to decode it in the server side PHP script (via phpseclib). Private key is on the format "MIIEuwIBADANBgkqhkiG9w0BAQ...." (no breaks), then I format it like:

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";

before loading it with:

$rsa->loadKey($pem,CRYPT_RSA_PRIVATE_FORMAT_PKCS1);

which seems to work. But decoding the message via:

$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_OAEP);
$plaintext = $rsa->decrypt(base64_decode($input));

yields just an empty string. No errors are given.

I have a similar ASP.Net C# handler that can decode the message without problems...

Any ideas ?

Это было полезно?

Решение

I was using 0.2.2 distribution of phpseclib, then I tried the SVN head of phpseclib, and it works perfectly :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top