[xmlsec] RE: Implementing WS-Security using XMLSec...

Venky Madireddi venky at arvasoft.com
Tue Jun 3 22:32:57 PDT 2003


Aleksey,

Thanks for the reply, I am sorry about not using the mailing list, will make
sure to use it in the future.

I don't have a DTD, I am using the xmlAddID function to inform LibXML2 about
all the ID's.

Also, I am capturing the response directly from Websphere and storing it to
a file in binary mode.

Since there is no way I could get to the code of Websphere, do you have any
other suggestions on how to solve this issue?

Thanks,

Regards,

-Venky
  -----Original Message-----
  From: Aleksey Sanin [mailto:aleksey at aleksey.com]
  Sent: Tuesday, June 03, 2003 8:29 AM
  To: arvasoft at attbi.com
  Cc: venky at arvasoft.com; xmlsec at aleksey.com
  Subject: Re: Implementing WS-Security using XMLSec...


  First of all, I would appreciate if you would use xmlsec mailing list
  for any question about xmlsec library (this reply is copied to the list,
btw).

  It seems that your <Reference/> element contains URI with Id attribute.
  And I am not sure I understand how you got the error you describe without
a DTD.
  Most likely you should have something like this instead:


func=xmlSecXPathDataExecute:file=xpath.c:line=250:obj=unknown:subj=xmlXPtrEv
al:
  error=5:libxml2 library function failed:
  expr=xpointer(id('wssecurity_body_id_3550107555769326699_1054623170226'))

  Please read section 3.2 from the FAQ
(http://www.aleksey.com/xmlsec/faq.html)
  for explanation "why".

  Assuming you add a correct DTD, the signature seems to be trivial
(Reference with an ID
  type URI plus one exc C14N transform) and I would be really surprised if
xmlsec does
  a wrong thing here. Unfortunately, there is no easy way to determine why
digests do not
  match. In xmlsec you can use '--print-all' option to get the binary stream
just before
  digesting. The best you can do is to compare this data with similar ones
from WebSphere
  (if you would be able to get same data from WebSphere). Read documentation
or search
  mailing list. There were several similar problems before.

  And if you want me to guess, I would bet that you have different digests
because
  something introduced spaces and/or end of lines when you've dumped XML
document
  to file.


  Aleksey


  arvasoft at attbi.com wrote:

Hi Alexsey,

I am implementing WS-Security using XMLSec. Currently, I am trying to
validate signatures generated by Websphere, but am running into a problem
where the Digests generated by Websphere and that by XMLSec are different.
This causes the following error

func=:file=..\src\openssl\digests.c:line=164:obj=sha1:subj=unknown:error=12:
inva
lid data:data and digest do not match
Signature is INVALID

I would really appreciate your help on resolving this issue.

Thanks,

Regards,

-Venky


PS: I am attaching the following files:

  1. original Websphere signed document
  2. a modified version of the xml document that I am using for the test, I
have
     copied the X509 from <wsse:BinarySecurityToken> to <X509Certificate> in
     <KeyInfo>.
  3. cacert.pem the trusted root that I use

----------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Header>
    <wsse:Security soapenv:mustUnderstand="1"
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext">
      <wsse:BinarySecurityToken EncodingType="wsse:Base64Binary"
ValueType="wsse:X509v3"
wsu:Id="wssecurity_binary_security_token_id_3491871345588805218_105462317022
6" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility">
        MIIDwjCCAyugAwIBAgICUAcwDQYJKoZIhvcNAQEEBQAwaDELMAkGA1UEBhMCVVMxFjAU
        BgNVBAoTDUFydmFzb2Z0LCBJbmMxHDAaBgNVBAsTE0FydmFzb2Z0IFByaW1hcnkgQ0Ex
        IzAhBgkqhkiG9w0BCQEWFGNhYWRtaW5AYXJ2YXNvZnQuY29tMB4XDTAzMDUyMjE2NTQ1
        MVoXDTA0MDUyMTE2NTQ1MVowgaMxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTESMBAG
        A1UEBxMJU2FuIFJhbW9uMRYwFAYDVQQKEw1BcnZhc29mdCwgSW5jMRwwGgYDVQQLExNB
        cnZhc29mdCBQcmltYXJ5IENBMRgwFgYDVQQDEw9XZWJzcGhlcmUgVGVzdDExIzAhBgkq
        hkiG9w0BCQEWFGNhYWRtaW5AYXJ2YXNvZnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GN
        ADCBiQKBgQC+U+xYlYjrxUXUnEWh/k3TdDT3B2+bTQ/Uqcaayj/1oyKCVuiRzd5gYolx
        aCkUEPRGwbe4ZkzDfBuAy38uV9KyfOoc5SxzHpUcnQSTCH2fxGhYbzOBAfC3DXOQRagj
        eMnFBaBADMrfYMlyEQOqI+faW+0920bZ6/FuHrurbFGjCQIDAQABo4IBPTCCATkwCQYD
        VR0TBAIwADARBglghkgBhvhCAQEEBAMCBaAwMgYJYIZIAYb4QgENBCUWI0NlcnRpZmlj
        YXRlIGlzc3VlZCBieSBBcnZhc29mdCwgSW5jMB0GA1UdDgQWBBRmZnJHx2GUWyIckvup
        FvjVP3CkjTCBkgYDVR0jBIGKMIGHgBRBK48bKkx6NoJ2JVo47clzdvNhkaFspGowaDEL
        MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUFydmFzb2Z0LCBJbmMxHDAaBgNVBAsTE0FydmFz
        b2Z0IFByaW1hcnkgQ0ExIzAhBgkqhkiG9w0BCQEWFGNhYWRtaW5AYXJ2YXNvZnQuY29t
        ggEAMDEGCWCGSAGG+EIBBAQkFiJodHRwOi8vd3d3LmFydmFzb2Z0LmNvbS9jYS1jcmwu
        cGVtMA0GCSqGSIb3DQEBBAUAA4GBAArehDZer5IGiB+NboI2TN6NkKT/qKJVd3xGCiPi
        QwfbFzAjgESCON7Dr6Eszn2+mLItIBE/yfX0ukZDFD4h82KWUJygRAL0LMvYSa8f1O1T
        FVScAEFGaaI69+2ynFq3o0bByg9/L/i4xfFvdtUwlEvrbJomsa4nx5NbwWmTw583
      </wsse:BinarySecurityToken>
      <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
        <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="#wssecurity_body_id_3550107555769326699_1054623170226">
            <Transforms>
              <Transform
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
            </Transforms>
            <DigestMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
            <DigestValue>5zj77bM9zGNVvLBIdy6yho/IZ+g=</DigestValue>
          </Reference>
        </SignedInfo>
        <SignatureValue>
          vU35ynJzQdJ7zu09Gitf4hcsoG6OT/qYW1MTcvAigjNxKfgdZYN90BASwwpPN5LxaL
          sEi+f8OXpAYM5aPMlLH1rht+es1xPkq6lrG5JbGcUJtNbSG0LfLhcoWfV4aak1pXdC
          vczRurJyoDEpImeYNsFr6ItLaRciTTTA7qaSCKw=
        </SignatureValue>
        <KeyInfo>
          <wsse:SecurityTokenReference>
            <wsse:Reference
URI="#wssecurity_binary_security_token_id_3491871345588805218_1054623170226"
/>
          </wsse:SecurityTokenReference>
        </KeyInfo>
      </Signature>
    </wsse:Security>
  </soapenv:Header>
 <soapenv:Body wsu:Id="wssecurity_body_id_3550107555769326699_1054623170226"
xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility">
  <getGreetingResponse xmlns="http://Sample8.wsdk.ibm.com">
   <getGreetingReturn xmlns="">Hello venky. How are you?</getGreetingReturn>
  </getGreetingResponse>
 </soapenv:Body>
</soapenv:Envelope>
----------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv=

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.aleksey.com/pipermail/xmlsec/attachments/20030603/7ad4ad9c/attachment.htm


More information about the xmlsec mailing list