Problems with subjectKeyIdentifier with non 20-bytes sha1 digested keys
-----------------------------------------------------------------------

                 Key: JRUBY-3888
                 URL: http://jira.codehaus.org/browse/JRUBY-3888
             Project: JRuby
          Issue Type: Bug
          Components: OpenSSL
    Affects Versions: JRuby-OpenSSL 0.5.1
         Environment: linux , jvm 1.6 jrockit jruby 1.1.6
            Reporter: Dave Garcia
         Attachments: jruby-openssl-issue-with-ski.zip

X509Certificate extensions presents some problems dealing with subject key 
identifier extensions on some types of certificate profiles.
Usually this extension contains encoded 20 byte long SHA1 digest from subject 
public key but in Austrian eID certificates it contains 8 bit encoded 
as theu define "0100 + last 60 Bit of SHA-1 of Public Key" . In this case 
extension treat this as a string containing characters representing hexcodes.

If we try to parse a certificate with this 8-byte extension schema the message 
is the following 2.5.29.14 = L¹áÜz¬5Ï: illegal hex digit 
(OpenSSL::X509::ExtensionError) because it tries to parse it an array of chars 
representing hexa values.

I provided a detection mechanism to check if we are dealing with a binary value 
or a string filled with chards representing hexa values. The results given are 
the same that ruby native OpenSSL performs.  

I provide patch, test case and a pair of certificates one with 20-bytes ski and 
one with 8-bytes (both reals). 
This is a very quick & dirty patch so forgive me if something is missing :).  

Best regards

Dave

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to