> Raul - did my information answer your question? Is there any additional > information that you need? > > Regards, > Matthew Hanson > > Marshall & Ilsley Corporation > Office: (608) 252-5987 > Fax: (608) 252-5811 > [EMAIL PROTECTED] > > > Sorry I'm going to take a look at it whenever I have time, ;). I asked you the version to know if there is a regresion in the 1.2RC. But I will try to give you answer soon.
Raul http://r-bg.com > > [EMAIL PROTECTED] > 11/30/2004 07:18 AM > Please respond to security-dev > > > To: [EMAIL PROTECTED] > cc: > Subject: Re: X509CertificateResolver Does Not Use My > StorageResolver > > > > I am using xml-security 1.1.0 with JDK 1.4.2. Sorry for not including > that in the post. > > Regards, > Matthew Hanson > > Marshall & Ilsley Corporation > Office: (608) 252-5987 > Fax: (608) 252-5811 > [EMAIL PROTECTED] > > > > Raul Benito <[EMAIL PROTECTED]> > 11/29/2004 06:53 PM > Please respond to security-dev > > To: [EMAIL PROTECTED] > cc: > Subject: Re: X509CertificateResolver Does Not Use My > StorageResolver > > > > [EMAIL PROTECTED] wrote: > >> >> Hi, >> >> I am trying to verify the following XML digital signature: >> >> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#" >> xmlns:C="http://www.routeone.com/namespace.messaging.CreditApplication#" >> xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext"> >> <SignedInfo> >> <CanonicalizationMethod >> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> >> <SignatureMethod >> Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> >> <Reference URI="#Body"> >> <Transforms> >> <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> >> </Transforms> >> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> >> <DigestValue>niQfM6RR1CP+V1Puf9FlaXRNcFQ=</DigestValue> >> </Reference> >> </SignedInfo> >> >> > <SignatureValue>EQjU1zV9WpsCj0+tTJ6pYw4YjM3Ir+OgWsCGijjKGZ1kkNOgWlFkdbDbmb8wzcAaYHVVJrplVpOVC05jd4cX7N9doFDDjRhKobaYUogRErJV86wWpsZ4iP77/DqPy0Egw9laycMv0BxxoWgeW3TQ11EioKiA/sx1nIEudaQRlWjlkeWiU7U+8eCVzWYMNkuh/kEhMo8CqYxpoOFSELRLIuMzT/gcrqvbesTUVkuYXSSs4ZTL9wzYfAYZpyk4ES7WpD7lT6/bW741S9DjJq/4H/bP8kkyBxku9sRIYF5DHXDIwbcj7SWbyZ/por+vmxGI2jR3xByxMEGo+FK2MHDDtQ==</SignatureValue> > >> >> <KeyInfo> >> <X509Data> >> <X509Certificate/> >> <X509IssuerSerial> >> <X509IssuerName>OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY >> LTD.(c)97 VeriSign, OU=VeriSign International Server CA - Class 3, >> OU="VeriSign, Inc.", O=VeriSign Trust Network</X509IssuerName> >> > <X509SerialNumber>77581175974713717168815171532918991769</X509SerialNumber> > >> >> </X509IssuerSerial></X509Data></KeyInfo></Signature> >> >> Because I have the public certificate from the partner, I was hoping >> to use addStorageResolver method of KeyInfo to install a >> StorageResolver with the public certificate to help with decryption. >> The Resolver-Mania docs tell me the following: >> >> "If there is only key material identification information like a >> ds:KeyName or the serial number of the Certificate, the KeyResolver >> must use the StorageResolvers to query the available keys and >> certificates to find the correct one." >> >> Here is my code, hacked from the VerifySignature class: >> >> XMLSignature signature = new XMLSignature(sigElement, >> f.toURL().toString()); >> >> signature.addResourceResolver(new OfflineResolver()); >> >> // begin hack >> InputStream inStream = new >> FileInputStream("c:\\temp\\RouteOne\\New RouteOne DSig_SSL.cer"); >> CertificateFactory cf = > CertificateFactory.getInstance("X.509"); >> X509Certificate cert = >> (X509Certificate)cf.generateCertificate(inStream); >> inStream.close(); >> // end hack >> >> // XMLUtils.outputDOMc14nWithComments(signature.getElement(), >> System.out); >> KeyInfo ki = signature.getKeyInfo(); >> ki.addStorageResolver(new StorageResolver(cert)); >> if (ki != null) { >> if (ki.containsX509Data()) { >> System.out >> .println("Could find a X509Data element in the >> KeyInfo"); >> } >> >> cert = signature.getKeyInfo().getX509Certificate(); >> >> From looking at the code, it doesn't look like the >> X509CertificateResolver is attempting to query the available keys (my >> public certificate). Here is some logging and the inevitable stack >> trace: >> >> 211 [main] DEBUG org.apache.xml.security.algorithms.SignatureAlgorithm >> - Create URI "http://www.w3.org/2000/09/xmldsig#rsa-sha1" class >> > "org.apache.xml.security.algorithms.implementations.SignatureBaseRSA$SignatureRSASHA1" > >> >> 211 [main] DEBUG org.apache.xml.security.algorithms.JCEMapper - >> Request for URI http://www.w3.org/2000/09/xmldsig#rsa-sha1 >> 261 [main] DEBUG org.apache.xml.security.algorithms.JCEMapper - Found >> SHA1WithRSAEncryption from provider BC >> 271 [main] DEBUG >> org.apache.xml.security.algorithms.implementations.SignatureBaseRSA - >> Created SignatureDSA using SHA1WithRSAEncryption BC >> 301 [main] DEBUG org.apache.xml.security.utils.ElementProxy - >> setElement("KeyInfo", >> "file:/C:/eclipse/workspace/RouteOne/XML/R1_Signed_Sample.xml") >> 321 [main] DEBUG org.apache.xml.security.utils.ElementProxy - >> setElement("X509Data", >> "file:/C:/eclipse/workspace/RouteOne/XML/R1_Signed_Sample.xml") >> 331 [main] DEBUG org.apache.xml.security.utils.ElementProxy - >> setElement("X509Certificate", >> "file:/C:/eclipse/workspace/RouteOne/XML/R1_Signed_Sample.xml") >> 331 [main] DEBUG org.apache.xml.security.utils.ElementProxy - >> setElement("X509IssuerSerial", >> "file:/C:/eclipse/workspace/RouteOne/XML/R1_Signed_Sample.xml") >> X509Data(0)="Certificate IssuerSerial " >> Could find a X509Data element in the KeyInfo >> 331 [main] DEBUG org.apache.xml.security.keys.KeyInfo - Start >> getX509CertificateFromInternalResolvers() with 0 resolvers >> 331 [main] DEBUG org.apache.xml.security.keys.KeyInfo - I couldn't >> find a X509Certificate using the per-KeyInfo key resolvers >> 331 [main] DEBUG org.apache.xml.security.keys.KeyInfo - Start >> getX509CertificateFromStaticResolvers() with 7 resolvers >> 331 [main] DEBUG >> > org.apache.xml.security.keys.keyresolver.implementations.RSAKeyValueResolver > >> - Can I resolve X509Data >> 331 [main] DEBUG >> > org.apache.xml.security.keys.keyresolver.implementations.X509CertificateResolver > >> - Can I resolve X509Data? >> 341 [main] DEBUG >> > org.apache.xml.security.keys.keyresolver.implementations.X509CertificateResolver > >> - Yes Sir, I can >> 341 [main] DEBUG org.apache.xml.security.utils.ElementProxy - >> setElement("X509Certificate", >> "file:/C:/eclipse/workspace/RouteOne/XML/R1_Signed_Sample.xml") >> java.lang.NullPointerException >> at >> org.apache.xml.security.utils.ElementProxy.getBytesFromTextChild(Unknown > >> Source) >> at >> > org.apache.xml.security.keys.content.x509.XMLX509Certificate.getCertificateBytes(Unknown > >> Source) >> at >> > org.apache.xml.security.keys.content.x509.XMLX509Certificate.getX509Certificate(Unknown > >> Source) >> at >> > org.apache.xml.security.keys.keyresolver.implementations.X509CertificateResolver.engineResolveX509Certificate(Unknown > >> Source) >> at >> > org.apache.xml.security.keys.keyresolver.KeyResolver.resolveX509Certificate(Unknown > >> Source) >> at >> > org.apache.xml.security.keys.KeyInfo.getX509CertificateFromStaticResolvers(Unknown > >> Source) >> at >> org.apache.xml.security.keys.KeyInfo.getX509Certificate(Unknown Source) >> at >> > org.apache.xml.security.samples.signature.VerifySignature.main(VerifySignature.java:155) > >> >> >> Am I reading the usage docs incorrectly, or do I need to implement >> some custom stuff? Any pointers would be very helpful. >> >> Regards, >> Matthew Hanson >> >> Marshall & Ilsley Corporation >> Office: (608) 252-5987 >> Fax: (608) 252-5811 >> [EMAIL PROTECTED] > > What version of xml-sec are you using? > Thnx, > > Raul > > > > >