White Spaces in cert:modulus

Tim Berners Lee just fixed his WebID Profile to the new ontology.
But now he has  white spaces in his cert:modulus

$ curl http://www.w3.org/People/Berners-Lee/card
...
 <#i> cert:key  [ a cert:RSAPublicKey;
    cert:modulus """d7 a0 e9 1e ed dd cc 90 5d 5e cc d1 e4 12 ab 0c 
5b db e1 18 fa 99 b7 13 2d 91 54 52 f0 b0 9a f5 
eb c0 09 6c a1 db de ec 32 72 3f 5d dd 2b 05 56 
4e 2c e6 7e ff ba 8e 86 77 8e 11 4a 02 a3 90 7c 
2e 6c 6b 28 cf 16 fe e7 7d 0e f0 c4 4d 2e 3c cd 
3e 0b 6e 8c fd d1 97 e3 aa 86 ec 19 99 80 72 9a 
f4 45 1f 79 99 bc e5 5e b3 4b d5 a5 35 04 70 46 
37 00 f7 30 8e 37 2b db 6e 07 5e 0b b8 a8 db a9 
36 86 fa 4a e5 13 17 a4 43 82 bb 09 d0 92 94 c1 
68 5b 10 97 ff d5 9c 44 6a e5 67 fa ec e6 b6 aa 
27 89 79 06 b5 24 a6 49 89 bd 48 cf ea ec 61 d1 
2c c0 b6 3d db 88 5d 2d ad b0 b3 58 c6 66 aa 93 
f5 a4 43 fb 91 fc 2a 3d c6 99 eb 46 15 9b 05 c5 
75 8c 9f 13 ed 28 44 09 4c c5 39 e5 82 e1 1d e3 
6c 67 33 a6 7b 51 25 ef 40 7b 32 9e f5 e9 22 ca 
57 46 a5 ff c6 7b 65 0b 4a e3 66 10 fc a0 cd 7b"""^^xsd:hexBinary ;
        cert:exponent "65537"^^xsd:integer ] .
...

Now I think this does in fact pass some of the verifiers.
For example it does pass

    http://id.myopenlink.net/ods/webid_demo.vsp

But it probably won't pass mine 

    https://foafssl.org/test/WebId

Now in some ways it seems quite reasonable that in RDF those space should be able to exist
in the string. But if we look at XMLSchema hexBinary, which may not have the final say here,
    
     http://www.w3.org/TR/xmlschema-2/#hexBinary

we find the following 

 <xs:simpleType name="hexBinary" id="hexBinary">
    <xs:annotation>
      <xs:appinfo>
        <hfp:hasFacet name="length"/>
        <hfp:hasFacet name="minLength"/>
        <hfp:hasFacet name="maxLength"/>
        <hfp:hasFacet name="pattern"/>
        <hfp:hasFacet name="enumeration"/>
        <hfp:hasFacet name="whiteSpace"/>
        <hfp:hasProperty name="ordered" value="false"/>
        <hfp:hasProperty name="bounded" value="false"/>
        <hfp:hasProperty name="cardinality" value="countably infinite"/>
        <hfp:hasProperty name="numeric" value="false"/>
      </xs:appinfo>
      <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#binary"/>
    </xs:annotation>
    <xs:restriction base="xs:anySimpleType">
      <xs:whiteSpace fixed="true" value="collapse" id="hexBinary.whiteSpace"/>
    </xs:restriction>
  </xs:simpleType>

which I interpret to say that hexBinary has the whiteSpace facet in collapsed mode.

this is defined in
   http://www.w3.org/TR/xmlschema-2/#rf-whiteSpace


+ replace: All occurrences of #x9 (tab), #xA (line feed) and #xD (carriage return) are replaced with #x20 (space)
+ collapse: After the processing implied by replace, contiguous sequences of #x20's are collapsed to a single #x20, and leading and trailing #x20's are removed

As I see it this means that all spaces in the sequence are going to be reduced down to 1 space. Which means that the canonical representation will be different between strings with no space and strings with space. 

So I can see it would be good if we had white space in there. In fact that is why I developed cert:hex . But it would be good to know where we stand with respect to the standards here.

	Henry



Social Web Architect
http://bblfish.net/

Received on Saturday, 14 January 2012 18:53:07 UTC