Actions
Bug #10581
closedOpenSSL::ASN1 fails to decode DKIM public keys
Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]
Backport:
Description
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.
Updated by rhenium (Kazuki Yamaguchi) almost 8 years ago
- 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)
Actions
Like0
Like0Like0