Bug #7074
closedOpenSSL::PKey::RSA.new(public_key) fails if public_key doesn't have -----BEGIN PUBLIC KEY-----
Description
=begin
public_key1 = <<KEY
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCfW7fNVCLBii/Ky/H97w9BAL6H
ifRM9sJkxo1dqCzvYHLk/89OmYMoDJ2+OgHRaoRpP+CSHiTkxQR1G+UbHLiQpZMo
CbcHAN6nDVET5ulgA8xywOAuIEgsJ5CmhWG79rZGqDNg6N2V5jgZ8WgLRuTn6aGb
+HqF23BDbpOUX8pGcQIDAQAB
-----END PUBLIC KEY-----
KEY
public_key2 = <<KEY
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCfW7fNVCLBii/Ky/H97w9BAL6H
ifRM9sJkxo1dqCzvYHLk/89OmYMoDJ2+OgHRaoRpP+CSHiTkxQR1G+UbHLiQpZMo
CbcHAN6nDVET5ulgA8xywOAuIEgsJ5CmhWG79rZGqDNg6N2V5jgZ8WgLRuTn6aGb
+HqF23BDbpOUX8pGcQIDAQAB
KEY
OpenSSL::PKey::RSA.new public_key1 #=> works
OpenSSL::PKey::RSA.new public_key2 #=> fails with error:
OpenSSL::PKey::RSAError: Neither PUB key nor PRIV key:: nested asn1 error¶
=end
Updated by MartinBosslet (Martin Bosslet) about 12 years ago
- Category set to ext
- Status changed from Open to Rejected
- Assignee set to MartinBosslet (Martin Bosslet)
public_key2 is not a valid PEM format (the one in public_key1). It's valid Base64, true, but that's not what OpenSSL expects. It can deal with either DER- or PEM-encoded data. In my eyes, there's nothing wrong here, or did you mean something else? Unless you object, I would close this as "Rejected" to indicate that the behavior is intended and not a bug.
PS: A clean way to deal with raw Base64 data such as in public_key2 would be to Base64-decode it first and then passing it on as in your example.