commit c6f7f99afac1ea174f4d4935dfbf3362fe9af066
parent 23fcffb83cb7b139ac7ca0f1364625dbe8c757ce
Author: Emmanuel Benoist <emmanuel.benoist@bfh.ch>
Date: Wed, 2 Jul 2025 10:48:08 +0200
adding the verification
Diffstat:
| M | draft-donau.xml | | | 77 | +++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------ |
1 file changed, 53 insertions(+), 24 deletions(-)
diff --git a/draft-donau.xml b/draft-donau.xml
@@ -351,15 +351,44 @@ Example of an element of USD 100.00 :
</t>
</section>
+<section anchor="signature" title="Signature of the donation statement ">
+ <t>
+ The server signing the donation statement <bcp14>MUST</bcp14> use the Sign(d,message) procedure implemented as defined in <xref target="RFC8032" />.
+ </t>
+ <figure anchor="figure_signature_data" title="The binary representation of the data to sign">
+ <artwork name="" type="" align="left" alt=""><![CDATA[
+0 8 16 24 32 40 48 56
++-----+-----+-----+-----+-----+-----+-----+-----+
+| number 1500 /
++-----+-----+-----+-----+-----+-----+-----+-----+
+/ size of the confirmation /
++-----+-----+-----+-----+-----+-----+-----+-----+
+/ Year /
++-----+-----+-----+-----+-----+-----+-----+-----+
+/ SHA256 of the donor ID /
+/ /
+/ /
+/ /
++-----+-----+-----+-----+-----+-----+-----+-----+
+
+]]></artwork>
+ </figure>
-<section anchor="signature-verification" title="Signature verification">
+
+</section>
+<section anchor="signature-verification" title="Signature verification for a donation statement">
<t>
-The signature verification step is taking the json as
+The signature verification step is taking the data presented in the figure <xref target="figure_signature_data" /> as
input. Signature MUST be verified using the EdDSA scheme described in
-<xref target="RFC8032" />. Public key and signature that are given
-encoded in Base 32 U Crockford must first be decoded to get a binary
+<xref target="RFC8032" /> the procedure is Verify(zk,message,signature). Public key and signature are given
+encoded in Base 32 U Crockford MUST first be decoded to get a binary
out of it.
</t>
+ <t>
+ The Sign(d,message) and Verify(zk,message,signature) procedures <bcp14>MUST</bcp14>
+ be implemented as defined in <xref target="RFC8032" />.
+ </t>
+
</section>
<section anchor="base32-U-crockford" title="Base 32 representation of
@@ -376,16 +405,16 @@ Alphabet. The new alphabet is given in the Table <xref target="figure_base32_enc
<figure anchor="figure_base32_encoding" title="The Base 32 Encoding Alphabet.">
<artwork name="" type="" align="left" alt="table where value beween 0 and 9 are encoded with the character corresponding to the number. Then between 10 and 31, we have all the letters expect I, L, O, U that could be missleading (OCR may not recognize them properly). Pading is the char ="><![CDATA[
- Value Encoding Value Encoding Value Encoding Value Encoding
- 0 0 9 9 18 J 27 V
- 1 1 10 A 19 K 28 W
- 2 2 11 B 20 M 29 X
- 3 3 12 C 21 N 30 Y
- 4 4 13 D 22 P 31 Z
- 5 5 14 E 23 Q
- 6 6 15 F 24 R (pad) =
- 7 7 16 G 25 S
- 8 8 17 H 26 T
+Value Encoding Value Encoding Value Encoding Value Encoding
+ 0 0 9 9 18 J 27 V
+ 1 1 10 A 19 K 28 W
+ 2 2 11 B 20 M 29 X
+ 3 3 12 C 21 N 30 Y
+ 4 4 13 D 22 P 31 Z
+ 5 5 14 E 23 Q
+ 6 6 15 F 24 R (pad) =
+ 7 7 16 G 25 S
+ 8 8 17 H 26 T
]]>
</artwork>
@@ -399,16 +428,16 @@ MUST evaluate it as a V.
<figure anchor="figure_base32_decoding" title="The Base 32 Decoding Alphabet.">
<artwork name="" type="" align="left" alt=""><![CDATA[
- Value Encoding Value Encoding Value Encoding Value Encoding
- 0 0 9 9 18 J|j 27 V|v|u|U
- 1 1|i|I|l|L 10 A|a 19 K|k 28 W|w
- 2 2 11 B|b 20 M|m 29 X|x
- 3 3 12 C|c 21 N|n 30 Y|y
- 4 4 13 D|d 22 P|p 31 Z|z
- 5 5 14 E|e 23 Q|q
- 6 6 15 F|f 24 R|r (pad) =
- 7 7 16 G|g 25 S|s
- 8 8 17 H|h 26 T|t
+Value Encoding Value Encoding Value Encoding Value Encoding
+ 0 0 9 9 18 J|j 27 V|v|u|U
+ 1 1|i|I|l|L 10 A|a 19 K|k 28 W|w
+ 2 2 11 B|b 20 M|m 29 X|x
+ 3 3 12 C|c 21 N|n 30 Y|y
+ 4 4 13 D|d 22 P|p 31 Z|z
+ 5 5 14 E|e 23 Q|q
+ 6 6 15 F|f 24 R|r (pad) =
+ 7 7 16 G|g 25 S|s
+ 8 8 17 H|h 26 T|t
]]></artwork>
</figure>