summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/auditor-report.tex.j233
-rw-r--r--src/auditor/taler-helper-auditor-coins.c32
2 files changed, 59 insertions, 6 deletions
diff --git a/contrib/auditor-report.tex.j2 b/contrib/auditor-report.tex.j2
index 5aade17da..d96040512 100644
--- a/contrib/auditor-report.tex.j2
+++ b/contrib/auditor-report.tex.j2
@@ -967,6 +967,39 @@ with respect to outgoing wire transfers.
\section{Minor irregularities}
+\subsection{Denominations without auditor signature}
+
+This section highlights denomination keys that lack a proper
+signature from the {\t taler-auditor-offline} tool. This may be
+legitimate, say in case where the auditor's involvement in the
+exchange business is ending and a new auditor is responsible for
+future denomnations. So this must be read with a keen eye on the
+business situation.
+
+
+{% if coins.unsigned_denominations() == 0 %}
+ {\bf All denominations officially audited by this auditor.}
+{% else %}
+ \begin{longtable}{p{6cm}|r|r|r}
+ {\bf Denomination} & {\bf Value} & {\bf Start} & {\bf End} \\ \hline \hline
+\endfirsthead
+ {\bf Denomination} & {\bf Value} & {\bf Start} & {\bf End} \\ \hline \hline
+\endhead
+ \hline \hline
+ {\bf Denomination} & {\bf Value} & {\bf Start} & {\bf End} \\ \hline \hline
+\endfoot
+ \caption{Denominations not officially audited by this auditor.}
+ \label{table:denominations:denoms_without_signatures}
+\endlastfoot
+{% for item in coins.unsigned_denominations %}
+ {\tt \tiny {{ item.denomination }} } &
+ {{ item.value }} &
+ {{ item.start_time }} &
+ {{ item.end_time }} \\ \hline
+{% endfor %}
+ \end{longtable}
+{% endif %}
+
\subsection{Incorrect reserve balance summary in database}
This section highlights cases where the reserve balance summary
diff --git a/src/auditor/taler-helper-auditor-coins.c b/src/auditor/taler-helper-auditor-coins.c
index fe9cf7744..a63426f7a 100644
--- a/src/auditor/taler-helper-auditor-coins.c
+++ b/src/auditor/taler-helper-auditor-coins.c
@@ -75,6 +75,11 @@ static json_t *report_emergencies_by_count;
static json_t *report_row_inconsistencies;
/**
+ * Array of reports about denominations not counter-signed by the auditor.
+ */
+static json_t *report_denominations_without_sigs;
+
+/**
* Report about amount calculation differences (causing profit
* or loss at the exchange).
*/
@@ -2262,10 +2267,19 @@ check_denomination (
&TALER_ARL_auditor_pub,
&auditor_sig))
{
- // FIXME: add properly to audit report!
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Exchange has invalid signature from this auditor for denomination `%s' in its database!\n",
- GNUNET_h2s (&issue->denom_hash));
+ TALER_ARL_report (report_denominations_without_sigs,
+ json_pack ("{s:o, s:o, s:o, s:o}",
+ "denomination",
+ GNUNET_JSON_from_data_auto (
+ &issue->denom_hash),
+ "value",
+ TALER_JSON_from_amount (&coin_value),
+ "start_time",
+ TALER_ARL_json_from_time_abs_nbo (
+ issue->start),
+ "end_time",
+ TALER_ARL_json_from_time_abs_nbo (
+ issue->expire_legal)));
}
}
}
@@ -2581,6 +2595,8 @@ run (void *cls,
GNUNET_assert (NULL !=
(report_row_inconsistencies = json_array ()));
GNUNET_assert (NULL !=
+ (report_denominations_without_sigs = json_array ()));
+ GNUNET_assert (NULL !=
(report_amount_arithmetic_inconsistencies =
json_array ()));
GNUNET_assert (NULL !=
@@ -2602,7 +2618,8 @@ run (void *cls,
" s:o, s:o, s:o, s:o, s:o,"
" s:I, s:I, s:I, s:I, s:I,"
" s:I, s:I, s:I, s:I, s:I,"
- " s:I, s:I, s:o, s:o, s:o}",
+ " s:I, s:I, s:o, s:o, s:o,"
+ " s:o}",
/* Block #1 */
"total_escrow_balance",
TALER_JSON_from_amount (&total_escrow_balance),
@@ -2703,7 +2720,10 @@ run (void *cls,
GNUNET_TIME_absolute_get ()),
"total_irregular_recoups",
TALER_JSON_from_amount (
- &total_irregular_recoups)
+ &total_irregular_recoups),
+ /* Block #8 */
+ "unsigned_denominations",
+ report_denominations_without_sigs
);
GNUNET_break (NULL != report);
TALER_ARL_done (report);