Vault7: CIA Hacking Tools Revealed
Navigation: » Latest version
tinc Protocol List
This is a complete list of TINC's meta-protocol commands. Handlers are defined in the protocol.c request_handlers array. The implementations are scattered in the protocol_* files.
('toc' missing)
Authentication
ID
Syntax: ID(0), STRING my_name, INT version
Send: Identify self to a foreign client.
Recv: Set allow_request to METAKEY and respond with a METAKEY command
METAKEY
Syntax: METAKEY(1), INT cipher, INT digest, INT mac_len, INT compression, STRING buffer
Send: Generates random session key, encrypts it w/ out's pub key, sends new key + all cipher info. All future comms will be done with this new key.
Recv: Initializes crypto w/ cipher info and, uses it's privkey to decrypt. Set's allow_request to CHALLENGE and sends a CHALLENGE command
CHALLENGE
Syntax: CHALLENGE(2), STRING buffer
Send: Fill c->hischallenge w/ random data and send it (note it will be encrypted because this comes after a METAKEY)
Recv: Write data to c->mychallenge, set allow_request to CHAL_REPLY, send a CHAL_REPLY command
CHAL_REPLY
Syntax: CHAL_REPLY(3), STRING buffer
Send: Hash c->mychallenge and send to other side
Recv: Check hash against hash of c->hischallenge. Set allow_request to ACKAcknowledge and send an ACKAcknowledge command.
ACK
Syntax: ACKAcknowledge(4), STRING my_port, INT estimated_weight, %x options
Send: Uses the difference between now() and the start of the connection as the weight.
Recv: Initialize node_t, create edge_t for this connection, send ADD_EDGE to everyone, update graph. Set allow_request to ALL
Misc
STATUS
ERROR
TERMREQ
PING
PONG
PACKET
Subnet
ADD_SUBNET
DEL_SUBNET
Edge
ADD_EDGE
DEL_EDGE
Key
KEY_CHANGED
REQ_KEY
ANS_KEY