GNUnet Signature Purposes

GNUnet signature purpose registry.

Every time a signature is created or verified with libgnunetutil’s signature functions, the signer must provide a “purpose” that provides the context for the signature. By signing over the “purpose”, it is not possible for an adversary to use a signature made in one context in another context.

Policy

Developers working on GNUnet or packages based on GNUnet should feel free to extend this registry. Entries may be deleted if no code using them is still expected to be in production anywhere.

Updating the name of the package or subsystem is allowed provided that the code using the signature is being moved, as those fields are merely informational or used for code generation.

Entries

GNS Signature Purposes

Name

Number

Package

Subsystem

Comment

TEST

0

GNUnet

GNUnet

Test signature, not valid for anything other than writing a test. (Note that the signature verification code will accept this value).

TRANSPORT_PONG_OWN

1

GNUnet

GNUnet-TRANSPORT

Signature for confirming that this peer uses a particular address.

TRANSPORT_DISCONNECT

2

GNUnet

GNUnet-TRANSPORT

Signature for confirming that this peer intends to disconnect.

GNS_REVOCATION

3

GNUnet

GNS

GNS zone key revocation

NAMESPACE_ADVERTISEMENT

4

GNUnet

GNUnet-FS

Signature for a namespace/pseudonym advertisement (by the namespace owner).

PEER_PLACEMENT

5

GNUnet

GNUnet-FS

Signature by which a peer affirms that it is providing a certain bit of content for use in LOCation URIs.

DHT_HOP

6

GNUnet

GNUnet-DHT

Signature by which a peer affirms that it forwarded a message in the DHT.

HELLO

7

GNUnet

GNUnet-HELLO

Signature by which a peer affirms its address.

DNS_RECORD

11

GNUnet

GNUnet-DNS+Exit

Signature on a GNUNET_DNS_Advertisement.

CHAT_MESSAGE

12

GNUnet

GNUnet-MESSENGER

Signature of a chat message.

CHAT_RECEIPT

13

GNUnet

GNUnet-MESSENGER

Signature of confirmation receipt for a chat message.

NSE_SEND

14

GNUnet

GNUnet-NSE

Signature of a network size estimate message.

GNS_RECORD_SIGN

15

GNUnet

GNS

GNS record set signature

SET_ECC_KEY

16

GNUnet

GNUnet-CORE

Purpose is to set a session key.

FS_UBLOCK

17

GNUnet

GNUnet-FS

UBlock Signature, done using DSS, not ECC

REGEX_ACCEPT

18

GNUnet

GNUnet-REGEX

Accept state in regex DFA. Peer affirms that it offers the matching service.

CONVERSATION_RING

20

GNUnet

GNUnet-CONVERSATION

Signature of a conversation ring.

SECRETSHARING_DKG1

21

GNUnet

GNUnet-SECRETSHARING

Signature for the first round of distributed key generation.

SECRETSHARING_DKG2

22

GNUnet

GNUnet-SECRETSHARING

Signature for the second round of distributed key generation.

SECRETSHARING_DECRYPTION

23

GNUnet

GNUnet-SECRETSHARING

Signature for the cooperative decryption.

RECLAIM_CODE_SIGN

27

GNUnet

Reclaim

Signature for a GNUid Ticket

DELEGATE

28

GNUnet

Reclaim

Signature for a GNUnet credential

TRANSPORT_ADDRESS

29

GNUnet

GNUnet-TRANSPORT

Signature by a peer affirming that this is one of its addresses for the given time period.

TRANSPORT_EPHEMERAL

30

GNUnet

GNUnet-TRANSPORT

Signature by a peer affirming that the given ephemeral key is currently in use by that peer’s transport service.

COMMUNICATOR_TCP_HANDSHAKE

31

GNUnet

GNUnet-TRANSPORT-TCP

Signature used by TCP communicator handshake.

COMMUNICATOR_TCP_REKEY

32

GNUnet

GNUnet-TRANSPORT-TCP

Signature used by TCP communicator rekey.

COMMUNICATOR_UDP_HANDSHAKE

33

GNUnet

GNUnet-TRANSPORT-UDP

Signature used by UDP communicator handshake.

COMMUNICATOR_UDP_BROADCAST

34

GNUnet

GNUnet-TRANSPORT-UDP

Signature used by UDP broadcasts.

TRANSPORT_CHALLENGE

35

GNUnet

GNUnet-TRANSPORT

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).

TRANSPORT_DV_HOP

36

GNUnet

GNUnet-TRANSPORT

Signature by a peer affirming that it is on a DV path.

TRANSPORT_DV_INITIATOR

37

GNUnet

GNUnet-TRANSPORT

Signature by a peer affirming that it originated the DV path.

CADET_CONNECTION_INITIATOR

38

GNUnet

GNUnet-CADET

Signature by a peer that like to create a connection.

COMMUNICATOR_TCP_HANDSHAKE_ACK

39

GNUnet

GNUnet-TRANSPORT-TCP

Signature by a peer sending back the nonce received at initial handshake.