This commit is contained in:
swrup 2026-02-08 16:27:30 +01:00
parent 49352fa7ca
commit 967f7e280f
4 changed files with 237 additions and 692 deletions

View file

@ -1,78 +1,280 @@
(* This file was generated by using data and/or code from the GNU Taler project, (* This file was generated from the GANA database:
under the AGPL-v3 licence. https://git-www.gnunet.org/gana.git/tree/gnunet-signatures/registry.rec *)
Do not edit it. *)
(** Initialize or update the status of an AML key for an AML officer *)
let master_aml_key : int32 = 1017_l let master_aml_key : int32 = 1017_l
(** Affirm wiring of exchange profits to operator account. *)
let master_drain_profit : int32 = 1018_l let master_drain_profit : int32 = 1018_l
(** Signature affirming a partner configuration for wads. *)
let master_partner_details : int32 = 1019_l 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 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 let master_add_wire : int32 = 1021_l
(** Signature over global set of fees charged by the exchange. *)
let master_global_fees : int32 = 1022_l let master_global_fees : int32 = 1022_l
(** Remove payto URI from the list of our wire methods. *)
let master_del_wire : int32 = 1023_l 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 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 let master_denomination_key_validity : int32 = 1025_l
(** Add an auditor to the list of our auditors. *)
let master_add_auditor : int32 = 1026_l let master_add_auditor : int32 = 1026_l
(** Remove an auditor from the list of our auditors. *)
let master_del_auditor : int32 = 1027_l let master_del_auditor : int32 = 1027_l
(** Fees charged per (aggregate) wire transfer to the merchant. *)
let master_wire_fees : int32 = 1028_l 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 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 let master_wire_details : int32 = 1030_l
(** Set the configuration of an extension (age-restriction or peer2peer) *)
let master_extension : int32 = 1031_l 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 let exchange_reserve_status : int32 = 1032_l
(** Signature where the Exchange confirms a deposit request. *)
let exchange_confirm_deposit : int32 = 1033_l 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 let exchange_confirm_melt : int32 = 1034_l
(** Signature where the Exchange confirms the full /keys response set. *)
let exchange_key_set : int32 = 1035_l let exchange_key_set : int32 = 1035_l
(** Signature where the Exchange confirms the /track/transaction response. *)
let exchange_confirm_wire : int32 = 1036_l let exchange_confirm_wire : int32 = 1036_l
(** Signature where the Exchange confirms the /wire/deposit response. *)
let exchange_confirm_wire_deposit : int32 = 1037_l let exchange_confirm_wire_deposit : int32 = 1037_l
(** Signature where the Exchange confirms a refund request. *)
let exchange_confirm_refund : int32 = 1038_l let exchange_confirm_refund : int32 = 1038_l
(** Signature where the Exchange confirms a recoup. *)
let exchange_confirm_recoup : int32 = 1039_l let exchange_confirm_recoup : int32 = 1039_l
(** Signature where the Exchange confirms it closed a reserve. *)
let exchange_reserve_closed : int32 = 1040_l let exchange_reserve_closed : int32 = 1040_l
(** Signature where the Exchange confirms a recoup-refresh operation. *)
let exchange_confirm_recoup_refresh : int32 = 1041_l 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 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 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 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 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 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 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 let exchange_confirm_purse_refund : int32 = 1049_l
(** Signature where the Exchange confirms an (age-)withdraw. *)
let exchange_confirm_withdraw : int32 = 1050_l 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 let auditor_exchange_keys : int32 = 1064_l
(** Signature where the merchant confirms a contract (to the customer). *)
let merchant_contract : int32 = 1101_l let merchant_contract : int32 = 1101_l
(** Signature where the merchant confirms a refund (of a coin). *)
let merchant_refund : int32 = 1102_l 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 let merchant_track_transaction : int32 = 1103_l
(** Signature where the merchant confirms that the payment was successful *)
let merchant_payment_ok : int32 = 1104_l 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 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 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 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 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 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 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 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 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 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 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 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 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 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 let wallet_purse_deposit : int32 = 1211_l
(** Request purse status. Signed with the purse private key. *)
let wallet_purse_status : int32 = 1212_l 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 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 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 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 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 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 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 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 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 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 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 let sm_rsa_denomination_key : int32 = 1250_l
(** Signature on an exchange message signing key announcement. *)
let sm_signing_key : int32 = 1251_l let sm_signing_key : int32 = 1251_l
(** Signature on a denomination key announcement. *)
let sm_cs_denomination_key : int32 = 1252_l let sm_cs_denomination_key : int32 = 1252_l
(** EdDSA test signature. *)
let client_test_eddsa : int32 = 1302_l let client_test_eddsa : int32 = 1302_l
(** EdDSA test signature. *)
let exchange_test_eddsa : int32 = 1303_l let exchange_test_eddsa : int32 = 1303_l
(** Signature by which an AML officer signs an AML decision. *)
let aml_decision : int32 = 1350_l let aml_decision : int32 = 1350_l
(** Signature by which an AML officer requests AML data. *)
let aml_query : int32 = 1351_l let aml_query : int32 = 1351_l
(** Signature by which an account owner authorizes access to a KYC operation. *)
let kyc_auth : int32 = 1360_l let kyc_auth : int32 = 1360_l
(** EdDSA signature for a policy upload. *)
let anastasis_policy_upload : int32 = 1400_l let anastasis_policy_upload : int32 = 1400_l
(** EdDSA signature for a backup upload. *)
let sync_backup_upload : int32 = 1450_l 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

View file

@ -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

View file

@ -8,7 +8,4 @@
(public_name gen_signatures_registry) (public_name gen_signatures_registry)
(name gen_signatures_registry) (name gen_signatures_registry)
(modules gen_signatures_registry) (modules gen_signatures_registry)
(libraries angstrom fmt)) (libraries angstrom bos 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"

View file

@ -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 = { type purpose = {
number: int32; number: int32;
name: string; name: string;
comment: string; comment: string;
} }
let f records = let parse_purposes records =
records records
|> List.filter_map (fun l -> |> List.filter_map (fun l ->
match l with match l with
@ -68,27 +84,25 @@ let f records =
Some Some
{ {
number= Int32.of_int (int_of_string a.v); number= Int32.of_int (int_of_string a.v);
name= b.v; name= String.lowercase_ascii b.v;
comment= c.v; comment= c.v;
}) })
| _ -> None) | _ -> None)
|> |> List.filter (fun v -> v.number >= 1000_l)
(*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 = {|...|}
let () = let () =
let content = read_file "registry.rec" in download ();
let content = read_file registry_file in
match parse content with match parse content with
| Error msg -> Fmt.failwith "Parse error: %s" msg | Error msg -> Fmt.failwith "Recfile parse error: %s" msg
| Ok records -> | Ok records ->
let purposes = f records in let purposes = parse_purposes records in
let header =
let pp_purpose ppf { number; name; comment } = {|(* This file was generated from the GANA database:
Fmt.pf ppf "(** %s *)\nlet %s : int32 = %ld\n\n" comment name number https://git-www.gnunet.org/gana.git/tree/gnunet-signatures/registry.rec *)|}
in in
let pp ppf { number; name; comment } =
Fmt.pr "%a@." (Fmt.list ~sep:Fmt.nop pp_purpose) purposes; 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;
() ()