commit b77c7679dda57fafeb8ae67f84f796ba7981a68a
parent 213ebeadd2867a57ba1c582fb61f421950a69f0a
Author: Jonathan <ondesmartenot@riseup.net>
Date: Thu, 23 Jan 2025 18:31:41 +0800
unindent 2 spaces to fit in margin
Diffstat:
1 file changed, 88 insertions(+), 90 deletions(-)
diff --git a/doc/usenix-security-2025/paper/app-impl.tex b/doc/usenix-security-2025/paper/app-impl.tex
@@ -2,7 +2,7 @@
This appendix describes the remaining implementation details such as APIs.
-\subsection{REST API}
+\subsection{REST API}
The detailed REST API specification of the Donau back-end is publicly
available and will be submitted as artifact.
@@ -18,46 +18,46 @@ the three dots '\texttt{...}') to make them more readable.
\begin{verbatim}
{
- "version": "0:0:0",
- "base_url": "http://localhost:8080/",
- "currency": "EUR",
- "signkeys": [
- {
- "stamp_start": {
- "t_s": 1717069556
- },
- "stamp_expire": {
- "t_s": 1718279156
- },
- "key": "CFV2PY8164E231XZSQK30K8R6CBQ..."
+"version": "0:0:0",
+"base_url": "http://localhost:8080/",
+"currency": "EUR",
+"signkeys": [
+ {
+ "stamp_start": {
+ "t_s": 1717069556
},
- {
- ...
- }
- ],
- "donation_units": [
- {
- "donation_unit_pub": {
- "cipher": "RSA",
- "rsa_public_key": "020000YC7XK99S..."
- },
- "year": 2024,
- "lost": false,
- "value": "EUR:5"
+ "stamp_expire": {
+ "t_s": 1718279156
},
- {
- "donation_unit_pub": {
- "cipher": "CS",
- "cs_public_key": "7SKRQGBSEPBG24..."
- },
- "year": 2024,
- "lost": false,
- "value": "EUR:1"
+ "key": "CFV2PY8164E231XZSQK30K8R6CBQ..."
+ },
+ {
+ ...
+ }
+ ],
+ "donation_units": [
+ {
+ "donation_unit_pub": {
+ "cipher": "RSA",
+ "rsa_public_key": "020000YC7XK99S..."
},
- {
- ...
- }
- ]
+ "year": 2024,
+ "lost": false,
+ "value": "EUR:5"
+ },
+ {
+ "donation_unit_pub": {
+ "cipher": "CS",
+ "cs_public_key": "7SKRQGBSEPBG24..."
+ },
+ "year": 2024,
+ "lost": false,
+ "value": "EUR:1"
+ },
+ {
+ ...
+ }
+ ]
}
\end{verbatim}
@@ -68,16 +68,16 @@ There is only one charity named \texttt{example} registered with a donation limi
\begin{verbatim}
{
- "charities": [
- {
- "charity_pub": "ABETNXT9ZF606FRF3WD5...",
- "url": "example.com",
- "name": "example",
- "max_per_year": "EUR:10",
- "receipts_to_date": "EUR:0",
- "current_year": 2024
- }
- ]
+"charities": [
+ {
+ "charity_pub": "ABETNXT9ZF606FRF3WD5...",
+ "url": "example.com",
+ "name": "example",
+ "max_per_year": "EUR:10",
+ "receipts_to_date": "EUR:0",
+ "current_year": 2024
+ }
+]
}
\end{verbatim}
@@ -89,19 +89,19 @@ The following is an example of a
\begin{verbatim}
{
- "charity_pub": "ABETNXT9ZF606FRF3WD5...",
- "charity_name": "mycharity",
- "charity_url": "mycharity.example.com",
- "max_per_year": "EUR:1000",
- "receipts_to_date": "EUR:0",
- "current_year": 2024
+"charity_pub": "ABETNXT9ZF606FRF3WD5...",
+"charity_name": "mycharity",
+"charity_url": "mycharity.example.com",
+"max_per_year": "EUR:1000",
+"receipts_to_date": "EUR:0",
+"current_year": 2024
}
\end{verbatim}
The response consists of the charity ID generated by the database.
\begin{verbatim}
{
- "charity-id": 1
+"charity-id": 1
}
\end{verbatim}
@@ -117,31 +117,31 @@ The number at the end of the URL is the charity ID.
\begin{verbatim}
{
- "budikeypairs": [
- {
- "h_donaton_unit_pub": "130C2KDHTAFDQFB8XED...",
- "blinded_udi": {
- "cipher": "RSA",
- "rsa_blinded_identifier": "AXPTEE24W28S9XN..."
- }
+"budikeypairs": [
+{
+ "h_donaton_unit_pub": "130C2KDHTAFDQFB8XED...",
+ "blinded_udi": {
+ "cipher": "RSA",
+ "rsa_blinded_identifier": "AXPTEE24W28S9XN..."
}
- ],
- "charity_sig": "JEJ0QMDXD416XKSK1SG0DETJEH...",
- "year": 2024
+}
+],
+"charity_sig": "JEJ0QMDXD416XKSK1SG0DETJEH...",
+"year": 2024
}
\end{verbatim}
\begin{verbatim}
{
- "blind_signatures": [
- {
- "blinded_signature": {
- "cipher": "RSA",
- "blinded_rsa_signature": "16XHNWSCDRVKHF..."
- }
- }
- ],
- "issued_amount: "EUR:15"
+"blind_signatures": [
+ {
+ "blinded_signature": {
+ "cipher": "RSA",
+ "blinded_rsa_signature": "16XHNWSCDRVKHF..."
+ }
+ }
+],
+"issued_amount: "EUR:15"
}
\end{verbatim}
@@ -149,19 +149,19 @@ The number at the end of the URL is the charity ID.
\begin{verbatim}
{
- "h_donor_tax_id": "N2NYR2SFNGZSS388R2SB0VK...",
- "donation_year": 2024,
- "donation_receipts": [
+"h_donor_tax_id": "N2NYR2SFNGZSS388R2SB0VK...",
+"donation_year": 2024,
+"donation_receipts": [
+{
+ "h_donaton_unit_pub": "130C2KDHTAFDQFB8X...",
+ "nonce": "JEQC39G",
+ "donation_unit_sig":
{
- "h_donaton_unit_pub": "130C2KDHTAFDQFB8X...",
- "nonce": "JEQC39G",
- "donation_unit_sig":
- {
- "cipher": "RSA",
- "rsa_signature": "GQBXPNE4JT5W53T3CVP6E..."
- }
+ "cipher": "RSA",
+ "rsa_signature": "GQBXPNE4JT5W53T3CVP6E..."
}
- ]
+}
+]
}
\end{verbatim}
@@ -177,10 +177,8 @@ The last parameter of the URL is the \DI.
\begin{verbatim}
{
- "total": "EUR:15",
- "donation_statement": "C1JVDP25AR001W5AHMAZ...",
- "donau_pub": "63f62b7901311c2187bfcde6304d1..."
+"total": "EUR:15",
+"donation_statement": "C1JVDP25AR001W5AHMAZ...",
+"donau_pub": "63f62b7901311c2187bfcde6304d1..."
}
\end{verbatim}
-
-