Issue #10581 has been updated by Kazuki Yamaguchi.

Status changed from Open to Rejected

Because the Base64 encoded string is invalid as DER format. You have to decode Base64 first.

~~~
require "openssl"
require "pp"

der = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDrEee0Ri4Juz+QfiWYui/E9UGSXau/2P8LjnTD8V4Unn+2FAZVGE3kL23bzeoULYv4PeleB3gfmJiDJOKU3Ns5L4KJAUUHjFwDebt0NP+sBK0VKeTATL2Yr/S3bT/xhy+1xtj4RkdV7fVxTn56Lb4udUnwuxK4V5b5PdOKj/+XcwIDAQAB".unpack("m")[0]
pp OpenSSL::ASN1.decode(der)
~~~

----------------------------------------
Bug #10581: OpenSSL::ASN1 fails to decode DKIM public keys
https://bugs.ruby-lang.org/issues/10581#change-58790

* Author: Hal Brodigan
* Status: Rejected
* Priority: Normal
* Assignee: openssl
* ruby -v: ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
Recently I needed to decode a DKIM public key. I found that OpenSSL::ASN1 failed to decode the key, while Krypt::ASN1 succeeded.

Steps to reproduce:

    require 'openssl'
    OpenSSL::ASN1.decode("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDrEee0Ri4Juz+QfiWYui/E9UGSXau/2P8LjnTD8V4Unn+2FAZVGE3kL23bzeoULYv4PeleB3gfmJiDJOKU3Ns5L4KJAUUHjFwDebt0NP+sBK0VKeTATL2Yr/S3bT/xhy+1xtj4RkdV7fVxTn56Lb4udUnwuxK4V5b5PdOKj/+XcwIDAQAB")

Expected Result: OpenSSL::ASN1Data

Actual Result: OpenSSL::ASN1::ASN1Error: Type mismatch. Total bytes read: 75 Bytes available: 216 Offset: 75

Additional Information:

ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]
OpenSSL 1.0.1e-fips 11 Feb 2013

Can also reproduce on ruby 2.1.5.



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>