From: k@... Date: 2016-05-21T06:15:56+00:00 Subject: [ruby-core:75656] [Ruby trunk Bug#10581][Rejected] OpenSSL::ASN1 fails to decode DKIM public keys 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: