[xmlsec] Signing with root element not having namespace
Aleksey Sanin
aleksey at aleksey.com
Sun Jun 7 09:05:52 PDT 2020
Well, xmldsig standard defines the namespace and that's
how any standard compatible signature should be done.
Again, I think someone just copy pasted
<xs:element name="Signature" type="ds:SignatureType"/>
into XYZBlock.xsd w/o understanding how schemas work.
The best course of action is to fix this in the schema.
Aleksey
On 6/5/20 1:11 PM, Kiss Ádám wrote:
> Right, so it cannot be done this way. Thank you!
>
>
> I also tried to put the Signature element into ds: namespace, but then
> the sign tool failed again. It turned out the removing the cb: namespace
> from the parent element of the ds:Signature node solves the problem. I
> saw xmlSecDSigNs variable hardcoded in libxmlsec not only when finding
> the Signature node, but also later in the transformation chain. May I
> ask if that is mandatory to be that way, or I can change the search
> namespace (by changing that constant) to the relative one written in our
> standard. I should then recompile of course the whole lib which I've
> done before.
>
>
> Bests, Adam
>
>
>
>
>
> ------------------------------------------------------------------------
> *Feladó:* Aleksey Sanin <aleksey at aleksey.com>
> *Elküldve:* 2020. június 4. 17:09
> *Címzett:* Kiss Ádám; xmlsec at aleksey.com
> *Tárgy:* Re: [xmlsec] Signing with root element not having namespace
> In xmndsig-core-schema.xsd, there is targetNamespace defined:
>
> targetNamespace="http://www.w3.org/2000/09/xmldsig#"
>
> Which places ALL entities (types, elements, ...) from this schema
> into this namespace (including Signature node itself).
>
> In XYZBlock.xsd, the same Signature element is redefined for no
> obvious reasons as
>
> <xs:element name="Signature" type="ds:SignatureType"/>
>
> This should be replaced with something like this to reference the
> Signature element defined in xmldsig spec:
>
> <xs:element ref="ds:Signature"/>
>
> As it stands right now, this is not an xmldsig compatible construct.
>
> Hope this helps,
>
> Aleksey
>
> On 6/4/20 3:57 AM, Kiss Ádám wrote:
>> Thank you for your answer!
>>
>>
>> Unfortunately the standard is not public, but obfuscated version should
>> be okay for investigation. I've attached the XSDs the standard specify.
>> The XML I sent you earlier is just our interpretation, can be changed.
>>
>>
>> Do you have any idea we can go on?
>>
>>
>> Bests, Adam
>>
>>
>>
>> ------------------------------------------------------------------------
>> *Feladó:* Aleksey Sanin <aleksey at aleksey.com>
>> *Elküldve:* 2020. június 3. 17:39
>> *Címzett:* Kiss Ádám; xmlsec at aleksey.com
>> *Tárgy:* Re: [xmlsec] Signing with root element not having namespace
>> Indeed in your XML file the Signature node doesn't have the correct
>> namespace:
>>
>> <Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
>>
>> Is this standard publically available somewhere? This doesn't look
>> right to me.
>>
>> Aleksey
>>
>> On 6/3/20 7:50 AM, Kiss Ádám wrote:
>>> Hello!
>>>
>>>
>>> I've been using your lib for a long time with many success!
>>>
>>>
>>> Now I got a task which I cannot handle with my skills. I've attached a
>>> simplified version of the XML.
>>>
>>>
>>> The main problem is that an industry standard determines the whole
>>> structure of the XML in this application including the namespaces. When
>>> I tried to sign it with the standard method in the doc I got the error:
>>> 'node not found'. It turned out xmlsecGetNodeNSHref sees the <Signature>
>>> block with (null) namepspace, which doesn't fit xmlsec's requirement.
>>> Changing xmlSecFindNode to ignore the (null) namespace helped for a
>>> short time, but some function calls later a similar error was found in
>>> xmlSecFindParent. After getting over again C14N failed. I am not sure if
>>> that (null) is the problem during the canonization.
>>>
>>>
>>> I cannot see that deep into the code. Could you help me out?
>>>
>>>
>>> Bests,
>>>
>>> Adam
>>>
>>>
>>> _______________________________________________
>>> xmlsec mailing list
>>> xmlsec at aleksey.com
>>> http://www.aleksey.com/mailman/listinfo/xmlsec
>>>
>>
>> _______________________________________________
>> xmlsec mailing list
>> xmlsec at aleksey.com
>> http://www.aleksey.com/mailman/listinfo/xmlsec
>>
More information about the xmlsec
mailing list