aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <grothoff@gnunet.org>2022-12-27 09:05:45 +0100
committerChristian Grothoff <grothoff@gnunet.org>2022-12-27 09:05:45 +0100
commit5dcad73d29bb431c7ae4529cc3755b56edbbb402 (patch)
treee7ac3573fce0e8b6e6a5ef0672ddd6b93d4fa8f9
parent871d010637205965dabb7f29e43679756a4449a6 (diff)
downloadexchange-5dcad73d29bb431c7ae4529cc3755b56edbbb402.tar.xz
-prepare for AML staff PKI
-rw-r--r--src/exchangedb/0003-aml_history.sql13
-rw-r--r--src/exchangedb/0003-aml_staff.sql37
-rw-r--r--src/exchangedb/exchange-0003.sql.in2
3 files changed, 49 insertions, 3 deletions
diff --git a/src/exchangedb/0003-aml_history.sql b/src/exchangedb/0003-aml_history.sql
index 60382cc26..2d6298ed8 100644
--- a/src/exchangedb/0003-aml_history.sql
+++ b/src/exchangedb/0003-aml_history.sql
@@ -32,7 +32,8 @@ BEGIN
',new_status INT4 NOT NULL DEFAULT(0)'
',decision_time INT8 NOT NULL DEFAULT(0)'
',justification VARCHAR NOT NULL'
- ',decider VARCHAR NOT NULL'
+ ',decider_pub BYTEA PRIMARY KEY CHECK (LENGTH(decider_pub)=32)'
+ ',decider_sig BYTEA PRIMARY KEY CHECK (LENGTH(decider_sig)=64)'
') %s ;'
,table_name
,'PARTITION BY HASH (h_payto)'
@@ -74,8 +75,14 @@ BEGIN
,partition_suffix
);
PERFORM comment_partitioned_column(
- 'Name of the staff member who made the AML decision'
- ,'decider'
+ 'Public key of the staff member who made the AML decision'
+ ,'decider_pub'
+ ,table_name
+ ,partition_suffix
+ );
+ PERFORM comment_partitioned_column(
+ 'Signature key of the staff member affirming the AML decision; of type AML_DECISION'
+ ,'decider_sig'
,table_name
,partition_suffix
);
diff --git a/src/exchangedb/0003-aml_staff.sql b/src/exchangedb/0003-aml_staff.sql
new file mode 100644
index 000000000..3c538df1d
--- /dev/null
+++ b/src/exchangedb/0003-aml_staff.sql
@@ -0,0 +1,37 @@
+--
+-- This file is part of TALER
+-- Copyright (C) 2014--2022 Taler Systems SA
+--
+-- TALER is free software; you can redistribute it and/or modify it under the
+-- terms of the GNU General Public License as published by the Free Software
+-- Foundation; either version 3, or (at your option) any later version.
+--
+-- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
+-- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+-- A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License along with
+-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+--
+
+
+CREATE TABLE aml_staff
+ (aml_staff_uuid BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE
+ ,decider_pub BYTEA PRIMARY KEY CHECK (LENGTH(decider_pub)=32)
+ ,master_sig BYTEA PRIMARY KEY CHECK (LENGTH(master_sig)=64)
+ ,decider_name VARCHAR NOT NULL
+ ,is_active BOOLEAN NOT NULL
+ ,last_change INT8 NOT NULL
+ );
+COMMENT ON TABLE aml_staff
+ IS 'Table with AML staff members the exchange uses or has used in the past. Entries never expire as we need to remember the last_change column indefinitely.';
+COMMENT ON COLUMN aml_staff.decider_pub
+ IS 'Public key of the AML staff member.';
+COMMENT ON COLUMN aml_staff.master_sig
+ IS 'The master public key signature on the AML staff member status.';
+COMMENT ON COLUMN aml_staff.decider_name
+ IS 'Name of the staff member.';
+COMMENT ON COLUMN aml_staff.is_active
+ IS 'true if we are currently supporting the use of this AML staff member.';
+COMMENT ON COLUMN aml_staff.last_change
+ IS 'Latest time when active status changed. Used to detect replays of old messages.';
diff --git a/src/exchangedb/exchange-0003.sql.in b/src/exchangedb/exchange-0003.sql.in
index 59f79968e..5461c0dd3 100644
--- a/src/exchangedb/exchange-0003.sql.in
+++ b/src/exchangedb/exchange-0003.sql.in
@@ -23,6 +23,8 @@ SET search_path TO exchange;
#include "0003-purse_deletion.sql"
#include "0003-kyc_attributes.sql"
#include "0003-aml_status.sql"
+#include "0003-aml_staff.sql"
#include "0003-aml_history.sql"
+
COMMIT;