From 4bf18120573ccb93efcf3bea8a9854d46afe7571 Mon Sep 17 00:00:00 2001 From: swrup Date: Sun, 8 Feb 2026 16:27:30 +0100 Subject: [PATCH] . --- include/taler_signatures.ml | 210 +++++++++- registry.rec | 668 ------------------------------- tools/dune | 5 +- tools/gen_signatures_registry.ml | 46 ++- 4 files changed, 237 insertions(+), 692 deletions(-) delete mode 100644 registry.rec diff --git a/include/taler_signatures.ml b/include/taler_signatures.ml index d9211977..8715b472 100644 --- a/include/taler_signatures.ml +++ b/include/taler_signatures.ml @@ -1,78 +1,280 @@ -(* This file was generated by using data and/or code from the GNU Taler project, - under the AGPL-v3 licence. - Do not edit it. *) +(* This file was generated from the GANA database: + https://git-www.gnunet.org/gana.git/tree/gnunet-signatures/registry.rec *) +(** Initialize or update the status of an AML key for an AML officer *) let master_aml_key : int32 = 1017_l + +(** Affirm wiring of exchange profits to operator account. *) let master_drain_profit : int32 = 1018_l + +(** Signature affirming a partner configuration for wads. *) let master_partner_details : int32 = 1019_l + +(** The given revocation key was revoked and must no longer be used. *) let master_signing_key_revoked : int32 = 1020_l + +(** Add payto URI to the list of our wire methods. *) let master_add_wire : int32 = 1021_l + +(** Signature over global set of fees charged by the exchange. *) let master_global_fees : int32 = 1022_l + +(** Remove payto URI from the list of our wire methods. *) let master_del_wire : int32 = 1023_l + +(** Purpose for signing public keys signed by the exchange master key. *) let master_signing_key_validity : int32 = 1024_l + +(** Purpose for denomination keys signed by the exchange master key. *) let master_denomination_key_validity : int32 = 1025_l + +(** Add an auditor to the list of our auditors. *) let master_add_auditor : int32 = 1026_l + +(** Remove an auditor from the list of our auditors. *) let master_del_auditor : int32 = 1027_l + +(** Fees charged per (aggregate) wire transfer to the merchant. *) let master_wire_fees : int32 = 1028_l + +(** The given revocation key was revoked and must no longer be used. *) let master_denomination_key_revoked : int32 = 1029_l + +(** Signature where the Exchange confirms its IBAN details in the /wire + response. *) let master_wire_details : int32 = 1030_l + +(** Set the configuration of an extension (age-restriction or peer2peer) *) let master_extension : int32 = 1031_l + +(** Purpose for the state of a reserve, signed by the exchange's signing key. *) let exchange_reserve_status : int32 = 1032_l + +(** Signature where the Exchange confirms a deposit request. *) let exchange_confirm_deposit : int32 = 1033_l + +(** Signature where the exchange (current signing key) confirms the no-reveal + index for cut-and-choose and the validity of the melted coins. *) let exchange_confirm_melt : int32 = 1034_l + +(** Signature where the Exchange confirms the full /keys response set. *) let exchange_key_set : int32 = 1035_l + +(** Signature where the Exchange confirms the /track/transaction response. *) let exchange_confirm_wire : int32 = 1036_l + +(** Signature where the Exchange confirms the /wire/deposit response. *) let exchange_confirm_wire_deposit : int32 = 1037_l + +(** Signature where the Exchange confirms a refund request. *) let exchange_confirm_refund : int32 = 1038_l + +(** Signature where the Exchange confirms a recoup. *) let exchange_confirm_recoup : int32 = 1039_l + +(** Signature where the Exchange confirms it closed a reserve. *) let exchange_reserve_closed : int32 = 1040_l + +(** Signature where the Exchange confirms a recoup-refresh operation. *) let exchange_confirm_recoup_refresh : int32 = 1041_l + +(** Signature where the Exchange confirms that it does not know a denomination + (hash). *) let exchange_affirm_denom_unknown : int32 = 1042_l + +(** Signature where the Exchange confirms that it does not consider a + denomination valid for the given operation at this time. *) let exchange_affirm_denom_expired : int32 = 1043_l + +(** Signature by which the exchange affirms that a purse was created with a + certain amount deposited into it. *) let exchange_confirm_purse_creation : int32 = 1045_l + +(** Signature by which the exchange affirms that a purse was merged into a + reserve with a certain amount in it. *) let exchange_confirm_purse_merged : int32 = 1046_l + +(** Purpose for the state of a purse, signed by the exchange's signing key. *) let exchange_purse_status : int32 = 1047_l + +(** Signature by which the exchange attests identity attributes of a particular + reserve owner. *) let exchange_reserve_attest_details : int32 = 1048_l + +(** Signature by which the exchange confirms that a purse expired and a coin was + refunded. *) let exchange_confirm_purse_refund : int32 = 1049_l + +(** Signature where the Exchange confirms an (age-)withdraw. *) let exchange_confirm_withdraw : int32 = 1050_l + +(** Signature where the auditor confirms that he is aware of certain + denomination keys from the exchange. *) let auditor_exchange_keys : int32 = 1064_l + +(** Signature where the merchant confirms a contract (to the customer). *) let merchant_contract : int32 = 1101_l + +(** Signature where the merchant confirms a refund (of a coin). *) let merchant_refund : int32 = 1102_l + +(** Signature where the merchant confirms that he needs the wire transfer + identifier for a deposit operation. *) let merchant_track_transaction : int32 = 1103_l + +(** Signature where the merchant confirms that the payment was successful *) let merchant_payment_ok : int32 = 1104_l + +(** Signature where the merchant confirms its own (salted) wire details (not yet + really used). *) let merchant_wire_details : int32 = 1107_l + +(** Signature where the merchant issues a token by blindly signing it. Signed + with the token issue private key. *) let merchant_token_issue : int32 = 1108_l + +(** Signature where the reserve key confirms a withdraw request. Signed with the + reserve private key. *) let wallet_reserve_withdraw : int32 = 1200_l + +(** Signature made by the wallet of a user to confirm a deposit of a coin. *) let wallet_coin_deposit : int32 = 1201_l + +(** Signature using a coin key confirming the melting of a coin. Signed with the + coin's private key. *) let wallet_coin_melt : int32 = 1202_l + +(** Signature using a coin key requesting recoup. Signed with the coin's private + key. *) let wallet_coin_recoup : int32 = 1203_l + +(** Signature using a coin key authenticating link data. Signed with the old + coin's private key. *) let wallet_coin_link : int32 = 1204_l + +(** Signature using a reserve key by which a wallet requests a payment target + UUID for itself. Signs over just a purpose (no body), as the signature only + serves to demonstrate that the request comes from the wallet controlling the + private key, and not some third party. *) let wallet_account_setup : int32 = 1205_l + +(** Signature using a coin key requesting recoup-refresh. Signed with the coin + private key. *) let wallet_coin_recoup_refresh : int32 = 1206_l + +(** Signature using a age restriction key for attestation of a particular + age/age-group. *) let wallet_age_attestation : int32 = 1207_l + +(** Request full or partial reserve history. Signed with the reserve private + key. *) let wallet_reserve_history : int32 = 1208_l + +(** Request full or partial coin history. Signed with the coin private key. *) let wallet_coin_history : int32 = 1209_l + +(** Request purse creation (without reserve). Signed by the purse private key. +*) let wallet_purse_create : int32 = 1210_l + +(** Request coin to be deposited into a purse. Signed with the coin private key. +*) let wallet_purse_deposit : int32 = 1211_l + +(** Request purse status. Signed with the purse private key. *) let wallet_purse_status : int32 = 1212_l + +(** Request purse to be merged with a reserve. Signed with the purse private + key. *) let wallet_purse_merge : int32 = 1213_l + +(** Request purse to be merged with a reserve. Signed by the reserve private + key. *) let wallet_account_merge : int32 = 1214_l + +(** Request account to be closed. Signed with the reserve private key. *) let wallet_reserve_close : int32 = 1215_l + +(** Associates encrypted contract with a purse. Signed with the purse private + key. *) let wallet_purse_econtract : int32 = 1216_l + +(** Request reserve to be kept open. Signed with the reserve private key. *) let wallet_reserve_open : int32 = 1217_l + +(** Request coin to be used to pay for reserve to be kept open. Signed with the + coin private key. *) let wallet_reserve_open_deposit : int32 = 1218_l + +(** Request attestation about reserve owner. Signed by the reserve private key. +*) let wallet_reserve_attest_details : int32 = 1219_l + +(** Signature by which a wallet requests a purse to be deleted. *) let wallet_purse_delete : int32 = 1220_l + +(** Signature where the reserve key confirms an age-withdraw request. Signed + with the reserve private key. *) let wallet_reserve_age_withdraw : int32 = 1221_l + +(** Signature where the token use key confirms the usage of a token on a pay + request. Signed with the token use private key. *) let wallet_token_use : int32 = 1222_l -let mailbox_messages_delete : int32 = 1223_l + +(** Signature used to unclaim an order, allowing other wallets to claim it. + Signed with the private key of the claim nonce. *) +let wallet_order_unclaim : int32 = 1223_l + +(** Signature on a denomination key announcement. *) let sm_rsa_denomination_key : int32 = 1250_l + +(** Signature on an exchange message signing key announcement. *) let sm_signing_key : int32 = 1251_l + +(** Signature on a denomination key announcement. *) let sm_cs_denomination_key : int32 = 1252_l + +(** EdDSA test signature. *) let client_test_eddsa : int32 = 1302_l + +(** EdDSA test signature. *) let exchange_test_eddsa : int32 = 1303_l + +(** Signature by which an AML officer signs an AML decision. *) let aml_decision : int32 = 1350_l + +(** Signature by which an AML officer requests AML data. *) let aml_query : int32 = 1351_l + +(** Signature by which an account owner authorizes access to a KYC operation. *) let kyc_auth : int32 = 1360_l + +(** EdDSA signature for a policy upload. *) let anastasis_policy_upload : int32 = 1400_l + +(** EdDSA signature for a backup upload. *) let sync_backup_upload : int32 = 1450_l + +(** The signature is done by the Donau. The Donau signes over the total amount + of the corresponding year, the corresponding year and the donation + identifier of a specific donor. The statement confirms that the donor made + this total in donations for the given year. *) +let donau_donation_statement : int32 = 1500_l + +(** The signature is made by a charity and shows that the charity is in + agreement with the donation request which it sends to the Donau. The charity + signs over all blinded identifiers and key pairs which it has received from + the donor. The signature affirms that the charity wants the donation + receipts to be issued on its behalf. *) +let charity_donation_confirmation : int32 = 1501_l + +(** The signature is made by a charity to request information about its status + from a Donau. It is not over anything in particular and is just there for + access control. *) +let charity_get_info : int32 = 1502_l + +(** Signature over messages to delete in the mailbox service *) +let mailbox_messages_delete : int32 = 1551_l + +(** Signature for mailbox registration request *) +let mailbox_register : int32 = 1552_l diff --git a/registry.rec b/registry.rec deleted file mode 100644 index e7f5bb41..00000000 --- a/registry.rec +++ /dev/null @@ -1,668 +0,0 @@ -# -*- mode: rec -*- -# -# Registry for Signature purposes -# - -%rec: SignaturePurpose -%key: Number -%type: Number int -%mandatory: Number -%typedef: Name_t regexp /^[ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_][ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*$/ -%type: Name Name_t -%unique: Name -%mandatory: Name -%mandatory: Comment -%mandatory: Package -%allowed: Subsystem -%sort: Number Name - - -#----------------------------------------------------------------------------- -# GNUnet - -Number: 0 -Name: TEST -Comment: Test signature, not valid for anything other than writing a test. (Note that the signature verification code will accept this value). -Package: GNUnet -Subsystem: GNUnet - -Number: 1 -Name: TRANSPORT_PONG_OWN -Comment: Signature for confirming that this peer uses a particular address. -Package: GNUnet -Subsystem: GNUnet-TRANSPORT - -Number: 2 -Name: TRANSPORT_DISCONNECT -Comment: Signature for confirming that this peer intends to disconnect. -Package: GNUnet -Subsystem: GNUnet-TRANSPORT - -Number: 3 -Name: GNS_REVOCATION -Comment: GNS zone key revocation -Package: GNUnet -Subsystem: GNS - -Number: 4 -Name: NAMESPACE_ADVERTISEMENT -Comment: Signature for a namespace/pseudonym advertisement (by the namespace owner). -Package: GNUnet -Subsystem: GNUnet-FS - -Number: 5 -Name: PEER_PLACEMENT -Comment: Signature by which a peer affirms that it is providing a certain bit of content for use in LOCation URIs. -Package: GNUnet -Subsystem: GNUnet-FS - -Number: 6 -Name: DHT_HOP -Comment: Signature by which a peer affirms that it forwarded a message in the DHT. -Package: GNUnet -Subsystem: GNUnet-DHT - -Number: 7 -Name: HELLO -Comment: Signature by which a peer affirms its address. -Package: GNUnet -Subsystem: GNUnet-HELLO - -Number: 11 -Name: DNS_RECORD -Comment: Signature on a GNUNET_DNS_Advertisement. -Package: GNUnet -Subsystem: GNUnet-DNS+Exit - -Number: 12 -Name: CHAT_MESSAGE -Comment: Signature of a chat message. -Package: GNUnet -Subsystem: GNUnet-MESSENGER - -Number: 13 -Name: CHAT_RECEIPT -Comment: Signature of confirmation receipt for a chat message. -Package: GNUnet -Subsystem: GNUnet-MESSENGER - -Number: 14 -Name: NSE_SEND -Comment: Signature of a network size estimate message. -Package: GNUnet -Subsystem: GNUnet-NSE - -Number: 15 -Name: GNS_RECORD_SIGN -Comment: GNS record set signature -Package: GNUnet -Subsystem: GNS - -Number: 16 -Name: SET_ECC_KEY -Comment: Purpose is to set a session key. -Package: GNUnet -Subsystem: GNUnet-CORE - -Number: 17 -Name: FS_UBLOCK -Comment: UBlock Signature, done using DSS, not ECC -Package: GNUnet -Subsystem: GNUnet-FS - -Number: 18 -Name: REGEX_ACCEPT -Comment: Accept state in regex DFA. Peer affirms that it offers the matching service. -Package: GNUnet -Subsystem: GNUnet-REGEX - -Number: 20 -Name: CONVERSATION_RING -Comment: Signature of a conversation ring. -Package: GNUnet -Subsystem: GNUnet-CONVERSATION - -Number: 21 -Name: SECRETSHARING_DKG1 -Comment: Signature for the first round of distributed key generation. -Package: GNUnet -Subsystem: GNUnet-SECRETSHARING - -Number: 22 -Name: SECRETSHARING_DKG2 -Comment: Signature for the second round of distributed key generation. -Package: GNUnet -Subsystem: GNUnet-SECRETSHARING - -Number: 23 -Name: SECRETSHARING_DECRYPTION -Comment: Signature for the cooperative decryption. -Package: GNUnet -Subsystem: GNUnet-SECRETSHARING - -Number: 27 -Name: RECLAIM_CODE_SIGN -Comment: Signature for a GNUid Ticket -Package: GNUnet -Subsystem: Reclaim - -Number: 28 -Name: DELEGATE -Comment: Signature for a GNUnet credential -Package: GNUnet -Subsystem: Reclaim - -Number: 29 -Name: TRANSPORT_ADDRESS -Comment: Signature by a peer affirming that this is one of its addresses for the given time period. -Package: GNUnet -Subsystem: GNUnet-TRANSPORT - -Number: 30 -Name: TRANSPORT_EPHEMERAL -Comment: Signature by a peer affirming that the given ephemeral key is currently in use by that peer's transport service. -Package: GNUnet -Subsystem: GNUnet-TRANSPORT - -Number: 31 -Name: COMMUNICATOR_TCP_HANDSHAKE -Comment: Signature used by TCP communicator handshake. -Package: GNUnet -Subsystem: GNUnet-TRANSPORT-TCP - -Number: 32 -Name: COMMUNICATOR_TCP_REKEY -Comment: Signature used by TCP communicator rekey. -Package: GNUnet -Subsystem: GNUnet-TRANSPORT-TCP - -Number: 33 -Name: COMMUNICATOR_UDP_HANDSHAKE -Comment: Signature used by UDP communicator handshake. -Package: GNUnet -Subsystem: GNUnet-TRANSPORT-UDP - -Number: 34 -Name: COMMUNICATOR_UDP_BROADCAST -Comment: Signature used by UDP broadcasts. -Package: GNUnet -Subsystem: GNUnet-TRANSPORT-UDP - -Number: 35 -Name: TRANSPORT_CHALLENGE -Comment: Signature by a peer affirming that it received a challenge (and stating how long it expects the address on which the challenge was received to remain valid). -Package: GNUnet -Subsystem: GNUnet-TRANSPORT - -Number: 36 -Name: TRANSPORT_DV_HOP -Comment: Signature by a peer affirming that it is on a DV path. -Package: GNUnet -Subsystem: GNUnet-TRANSPORT - -Number: 37 -Name: TRANSPORT_DV_INITIATOR -Comment: Signature by a peer affirming that it originated the DV path. -Package: GNUnet -Subsystem: GNUnet-TRANSPORT - -Number: 38 -Name: CADET_CONNECTION_INITIATOR -Comment: Signature by a peer that like to create a connection. -Package: GNUnet -Subsystem: GNUnet-CADET - -Number: 39 -Name: COMMUNICATOR_TCP_HANDSHAKE_ACK -Comment: Signature by a peer sending back the nonce received at initial handshake. -Package: GNUnet -Subsystem: GNUnet-TRANSPORT-TCP - -#----------------------------------------------------------------------------- -# GNU Taler, >= 1000 - -# -# Exchange offline signatures (with master key) -# - -Number: 1017 -Name: MASTER_AML_KEY -Comment: Initialize or update the status of an AML key for an AML officer -Package: GNU Taler - -Number: 1018 -Name: MASTER_DRAIN_PROFIT -Comment: Affirm wiring of exchange profits to operator account. -Package: GNU Taler - -Number: 1019 -Name: MASTER_PARTNER_DETAILS -Comment: Signature affirming a partner configuration for wads. -Package: GNU Taler - -Number: 1020 -Name: MASTER_SIGNING_KEY_REVOKED -Comment: The given revocation key was revoked and must no longer be used. -Package: GNU Taler - -Number: 1021 -Name: MASTER_ADD_WIRE -Comment: Add payto URI to the list of our wire methods. -Package: GNU Taler - -Number: 1022 -Name: MASTER_GLOBAL_FEES -Comment: Signature over global set of fees charged by the exchange. -Package: GNU Taler - -Number: 1023 -Name: MASTER_DEL_WIRE -Comment: Remove payto URI from the list of our wire methods. -Package: GNU Taler - -Number: 1024 -Name: MASTER_SIGNING_KEY_VALIDITY -Comment: Purpose for signing public keys signed by the exchange master key. -Package: GNU Taler - -Number: 1025 -Name: MASTER_DENOMINATION_KEY_VALIDITY -Comment: Purpose for denomination keys signed by the exchange master key. -Package: GNU Taler - -Number: 1026 -Name: MASTER_ADD_AUDITOR -Comment: Add an auditor to the list of our auditors. -Package: GNU Taler - -Number: 1027 -Name: MASTER_DEL_AUDITOR -Comment: Remove an auditor from the list of our auditors. -Package: GNU Taler - -Number: 1028 -Name: MASTER_WIRE_FEES -Comment: Fees charged per (aggregate) wire transfer to the merchant. -Package: GNU Taler - -Number: 1029 -Name: MASTER_DENOMINATION_KEY_REVOKED -Comment: The given revocation key was revoked and must no longer be used. -Package: GNU Taler - -Number: 1030 -Name: MASTER_WIRE_DETAILS -Comment: Signature where the Exchange confirms its IBAN details in the /wire response. -Package: GNU Taler - -Number: 1031 -Name: MASTER_EXTENSION -Comment: Set the configuration of an extension (age-restriction or peer2peer) -Package: GNU Taler - - -# -# Exchange online signatures (with signing key) -# - -Number: 1032 -Name: EXCHANGE_RESERVE_STATUS -Comment: Purpose for the state of a reserve, signed by the exchange's signing key. -Package: GNU Taler - -Number: 1033 -Name: EXCHANGE_CONFIRM_DEPOSIT -Comment: Signature where the Exchange confirms a deposit request. -Package: GNU Taler - -Number: 1034 -Name: EXCHANGE_CONFIRM_MELT -Comment: Signature where the exchange (current signing key) confirms the no-reveal index for cut-and-choose and the validity of the melted coins. -Package: GNU Taler - -Number: 1035 -Name: EXCHANGE_KEY_SET -Comment: Signature where the Exchange confirms the full /keys response set. -Package: GNU Taler - -Number: 1036 -Name: EXCHANGE_CONFIRM_WIRE -Comment: Signature where the Exchange confirms the /track/transaction response. -Package: GNU Taler - -Number: 1037 -Name: EXCHANGE_CONFIRM_WIRE_DEPOSIT -Comment: Signature where the Exchange confirms the /wire/deposit response. -Package: GNU Taler - -Number: 1038 -Name: EXCHANGE_CONFIRM_REFUND -Comment: Signature where the Exchange confirms a refund request. -Package: GNU Taler - -Number: 1039 -Name: EXCHANGE_CONFIRM_RECOUP -Comment: Signature where the Exchange confirms a recoup. -Package: GNU Taler - -Number: 1040 -Name: EXCHANGE_RESERVE_CLOSED -Comment: Signature where the Exchange confirms it closed a reserve. -Package: GNU Taler - -Number: 1041 -Name: EXCHANGE_CONFIRM_RECOUP_REFRESH -Comment: Signature where the Exchange confirms a recoup-refresh operation. -Package: GNU Taler - -Number: 1042 -Name: EXCHANGE_AFFIRM_DENOM_UNKNOWN -Comment: Signature where the Exchange confirms that it does not know a denomination (hash). -Package: GNU Taler - -Number: 1043 -Name: EXCHANGE_AFFIRM_DENOM_EXPIRED -Comment: Signature where the Exchange confirms that it does not consider a denomination valid for the given operation at this time. -Package: GNU Taler - -Number: 1045 -Name: EXCHANGE_CONFIRM_PURSE_CREATION -Comment: Signature by which the exchange affirms that a purse was created with a certain amount deposited into it. -Package: GNU Taler - -Number: 1046 -Name: EXCHANGE_CONFIRM_PURSE_MERGED -Comment: Signature by which the exchange affirms that a purse was merged into a reserve with a certain amount in it. -Package: GNU Taler - -Number: 1047 -Name: EXCHANGE_PURSE_STATUS -Comment: Purpose for the state of a purse, signed by the exchange's signing key. -Package: GNU Taler - -Number: 1048 -Name: EXCHANGE_RESERVE_ATTEST_DETAILS -Comment: Signature by which the exchange attests identity attributes of a particular reserve owner. -Package: GNU Taler - -Number: 1049 -Name: EXCHANGE_CONFIRM_PURSE_REFUND -Comment: Signature by which the exchange confirms that a purse expired and a coin was refunded. -Package: GNU Taler - -Number: 1050 -Name: EXCHANGE_CONFIRM_WITHDRAW -Comment: Signature where the Exchange confirms an (age-)withdraw. -Package: GNU Taler - -# -# Auditor signatures -# - -Number: 1064 -Name: AUDITOR_EXCHANGE_KEYS -Comment: Signature where the auditor confirms that he is aware of certain denomination keys from the exchange. -Package: GNU Taler - -# -# Merchant signatures -# - -Number: 1101 -Name: MERCHANT_CONTRACT -Comment: Signature where the merchant confirms a contract (to the customer). -Package: GNU Taler - -Number: 1102 -Name: MERCHANT_REFUND -Comment: Signature where the merchant confirms a refund (of a coin). -Package: GNU Taler - -Number: 1103 -Name: MERCHANT_TRACK_TRANSACTION -Comment: Signature where the merchant confirms that he needs the wire transfer identifier for a deposit operation. -Package: GNU Taler - -Number: 1104 -Name: MERCHANT_PAYMENT_OK -Comment: Signature where the merchant confirms that the payment was successful -Package: GNU Taler - -Number: 1107 -Name: MERCHANT_WIRE_DETAILS -Comment: Signature where the merchant confirms its own (salted) wire details (not yet really used). -Package: GNU Taler - -Number: 1108 -Name: MERCHANT_TOKEN_ISSUE -Comment: Signature where the merchant issues a token by blindly signing it. Signed with the token issue private key. -Package: GNU Taler - -# -# Wallet signatures -# - -Number: 1200 -Name: WALLET_RESERVE_WITHDRAW -Comment: Signature where the reserve key confirms a withdraw request. Signed with the reserve private key. -Package: GNU Taler - -Number: 1201 -Name: WALLET_COIN_DEPOSIT -Comment: Signature made by the wallet of a user to confirm a deposit of a coin. -Package: GNU Taler - -Number: 1202 -Name: WALLET_COIN_MELT -Comment: Signature using a coin key confirming the melting of a coin. Signed with the coin's private key. -Package: GNU Taler - -Number: 1203 -Name: WALLET_COIN_RECOUP -Comment: Signature using a coin key requesting recoup. Signed with the coin's private key. -Package: GNU Taler - -Number: 1204 -Name: WALLET_COIN_LINK -Comment: Signature using a coin key authenticating link data. Signed with the old coin's private key. -Package: GNU Taler - -Number: 1205 -Name: WALLET_ACCOUNT_SETUP -Comment: Signature using a reserve key by which a wallet requests a payment target UUID for itself. Signs over just a purpose (no body), as the signature only serves to demonstrate that the request comes from the wallet controlling the private key, and not some third party. -Package: GNU Taler - -Number: 1206 -Name: WALLET_COIN_RECOUP_REFRESH -Comment: Signature using a coin key requesting recoup-refresh. Signed with the coin private key. -Package: GNU Taler - -Number: 1207 -Name: WALLET_AGE_ATTESTATION -Comment: Signature using a age restriction key for attestation of a particular age/age-group. -Package: GNU Taler - -Number: 1208 -Name: WALLET_RESERVE_HISTORY -Comment: Request full or partial reserve history. Signed with the reserve private key. -Package: GNU Taler - -Number: 1209 -Name: WALLET_COIN_HISTORY -Comment: Request full or partial coin history. Signed with the coin private key. -Package: GNU Taler - -Number: 1210 -Name: WALLET_PURSE_CREATE -Comment: Request purse creation (without reserve). Signed by the purse private key. -Package: GNU Taler - -Number: 1211 -Name: WALLET_PURSE_DEPOSIT -Comment: Request coin to be deposited into a purse. Signed with the coin private key. -Package: GNU Taler - -Number: 1212 -Name: WALLET_PURSE_STATUS -Comment: Request purse status. Signed with the purse private key. -Package: GNU Taler - -Number: 1213 -Name: WALLET_PURSE_MERGE -Comment: Request purse to be merged with a reserve. Signed with the purse private key. -Package: GNU Taler - -Number: 1214 -Name: WALLET_ACCOUNT_MERGE -Comment: Request purse to be merged with a reserve. Signed by the reserve private key. -Package: GNU Taler - -Number: 1215 -Name: WALLET_RESERVE_CLOSE -Comment: Request account to be closed. Signed with the reserve private key. -Package: GNU Taler - -Number: 1216 -Name: WALLET_PURSE_ECONTRACT -Comment: Associates encrypted contract with a purse. Signed with the purse private key. -Package: GNU Taler - -Number: 1217 -Name: WALLET_RESERVE_OPEN -Comment: Request reserve to be kept open. Signed with the reserve private key. -Package: GNU Taler - -Number: 1218 -Name: WALLET_RESERVE_OPEN_DEPOSIT -Comment: Request coin to be used to pay for reserve to be kept open. Signed with the coin private key. -Package: GNU Taler - -Number: 1219 -Name: WALLET_RESERVE_ATTEST_DETAILS -Comment: Request attestation about reserve owner. Signed by the reserve private key. -Package: GNU Taler - -Number: 1220 -Name: WALLET_PURSE_DELETE -Comment: Signature by which a wallet requests a purse to be deleted. -Package: GNU Taler - -Number: 1221 -Name: WALLET_RESERVE_AGE_WITHDRAW -Comment: Signature where the reserve key confirms an age-withdraw request. Signed with the reserve private key. -Package: GNU Taler - -Number: 1222 -Name: WALLET_TOKEN_USE -Comment: Signature where the token use key confirms the usage of a token on a pay request. Signed with the token use private key. -Package: GNU Taler - -Number: 1223 -Name: WALLET_ORDER_UNCLAIM -Comment: Signature used to unclaim an order, allowing other wallets to claim it. Signed with the private key of the claim nonce. -Package: GNU Taler - -# -# Security module signatures -# - -Number: 1250 -Name: SM_RSA_DENOMINATION_KEY -Comment: Signature on a denomination key announcement. -Package: GNU Taler - -Number: 1251 -Name: SM_SIGNING_KEY -Comment: Signature on an exchange message signing key announcement. -Package: GNU Taler - -Number: 1252 -Name: SM_CS_DENOMINATION_KEY -Comment: Signature on a denomination key announcement. -Package: GNU Taler - -# -# Test signatures -# - -Number: 1302 -Name: CLIENT_TEST_EDDSA -Comment: EdDSA test signature. -Package: GNU Taler - -Number: 1303 -Name: EXCHANGE_TEST_EDDSA -Comment: EdDSA test signature. -Package: GNU Taler - -# -# AML officer signatures -# - -Number: 1350 -Name: AML_DECISION -Comment: Signature by which an AML officer signs an AML decision. -Package: GNU Taler - -Number: 1351 -Name: AML_QUERY -Comment: Signature by which an AML officer requests AML data. -Package: GNU Taler - -Number: 1360 -Name: KYC_AUTH -Comment: Signature by which an account owner authorizes access to a KYC operation. -Package: GNU Taler - - -# -# GNU Anastasis signatures, >= 1400 -# - -Number: 1400 -Name: ANASTASIS_POLICY_UPLOAD -Comment: EdDSA signature for a policy upload. -Package: GNU Taler - -# -# Sync signatures, >= 1450 -# - -Number: 1450 -Name: SYNC_BACKUP_UPLOAD -Comment: EdDSA signature for a backup upload. -Package: GNU Taler - - -# -# Donau signatures, >= 1500 -# - -Number: 1500 -Name: DONAU_DONATION_STATEMENT -Comment: The signature is done by the Donau. The Donau signes over the total amount of the corresponding year, the corresponding year and the donation identifier of a specific donor. The statement confirms that the donor made this total in donations for the given year. -Package: Donau - -Number: 1501 -Name: CHARITY_DONATION_CONFIRMATION -Comment: The signature is made by a charity and shows that the charity is in agreement with the donation request which it sends to the Donau. The charity signs over all blinded identifiers and key pairs which it has received from the donor. The signature affirms that the charity wants the donation receipts to be issued on its behalf. -Package: Donau - -Number: 1502 -Name: CHARITY_GET_INFO -Comment: The signature is made by a charity to request information about its status from a Donau. It is not over anything in particular and is just there for access control. -Package: Donau - -# -# Mailbox signatures, >= 1550 -# - -Number: 1551 -Name: MAILBOX_MESSAGES_DELETE -Comment: Signature over messages to delete in the mailbox service -Package: GNU Taler - -Number: 1552 -Name: MAILBOX_REGISTER -Comment: Signature for mailbox registration request -Package: GNU Taler diff --git a/tools/dune b/tools/dune index 628fe14d..906889a7 100644 --- a/tools/dune +++ b/tools/dune @@ -8,7 +8,4 @@ (public_name gen_signatures_registry) (name gen_signatures_registry) (modules gen_signatures_registry) - (libraries angstrom fmt)) - -; fetch `gnunet-signatures/registry.rec` with: -; curl -s -o registry.rec -X GET "https://git-www.gnunet.org/gana.git/plain/gnunet-signatures/registry.rec" + (libraries angstrom bos fmt)) diff --git a/tools/gen_signatures_registry.ml b/tools/gen_signatures_registry.ml index 15dd0ad8..97556917 100644 --- a/tools/gen_signatures_registry.ml +++ b/tools/gen_signatures_registry.ml @@ -51,13 +51,29 @@ let parse s = parse_string ~consume:All recfile s (* -- *) +let url = + "https://git-www.gnunet.org/gana.git/plain/gnunet-signatures/registry.rec" + +let registry_file = "registry.rec" + +let download () = + let open Bos in + let res = + OS.Cmd.run Cmd.(v "curl" % "-s" % "-o" % registry_file % "-X" % "GET" % url) + in + match res with + | Error (`Msg s) -> Fmt.failwith "download failure: %s" s + | Ok () -> () + +let read_file file = In_channel.with_open_bin file In_channel.input_all + type purpose = { number: int32; name: string; comment: string; } -let f records = +let parse_purposes records = records |> List.filter_map (fun l -> match l with @@ -68,27 +84,25 @@ let f records = Some { number= Int32.of_int (int_of_string a.v); - name= b.v; + name= String.lowercase_ascii b.v; comment= c.v; }) | _ -> None) - |> - (*GNU Taler, >= 1000*) - List.filter (fun v -> v.number >= 1000_l) - -let read_file file = In_channel.with_open_bin file In_channel.input_all -let file_header = {|...|} + |> List.filter (fun v -> v.number >= 1000_l) let () = - let content = read_file "registry.rec" in + download (); + let content = read_file registry_file in match parse content with - | Error msg -> Fmt.failwith "Parse error: %s" msg + | Error msg -> Fmt.failwith "Recfile parse error: %s" msg | Ok records -> - let purposes = f records in - - let pp_purpose ppf { number; name; comment } = - Fmt.pf ppf "(** %s *)\nlet %s : int32 = %ld\n\n" comment name number + let purposes = parse_purposes records in + let header = + {|(* This file was generated from the GANA database: + https://git-www.gnunet.org/gana.git/tree/gnunet-signatures/registry.rec *)|} in - - Fmt.pr "%a@." (Fmt.list ~sep:Fmt.nop pp_purpose) purposes; + let pp ppf { number; name; comment } = + Fmt.pf ppf "(** %s *)\nlet %s : int32 = %ld_l\n\n" comment name number + in + Fmt.pr "%s\n\n%a@." header (Fmt.list ~sep:Fmt.nop pp) purposes; ()