4 Format: msg|channel <nickname|channel>
5 set|unset|list|agreement|negotiate [<arguments>]
7 This command is used to set and unset private keys for
8 channels, set and unset private keys for private messages
9 with remote clients and to send key agreement requests and
10 negotiate the key agreement protocol with remote client.
11 The key agreement is supported only to negotiate private
12 message keys, it currently cannot be used to negotiate
13 private keys for channels, as it is not convenient for that
18 msg The command is performed for private messages
19 affecting the <nickname>.
21 channel The command is performed for channel affecting
26 set [<key> [<cipher>] [<hmac>]]
28 Set the key into use. If the <key> is provided it
29 is used as the key material. If the <key> is not
30 provided the negotiated key material is used. If
31 the negotiation has not been performed this command
34 If the type is `msg' and the <key> is `*' then
35 random key will be generated automatically.
37 The <cipher> may be set for both private message
38 and channel private keys and the <hmac> may be set
39 only to the channel private keys.
43 Unset the key. The private key is not used after
44 this command. The key must be set again or the key
45 material must be re-negotiated to be able to use
46 the private keys again.
48 The channel may have several private keys set. The
49 <number> can be used to indicate what key is being
50 unset. If it is not provided all keys are removed.
52 list List all private keys that has been set.
54 If the type is `msg' and the <nickname> is ยด*' then
55 all private message keys that you've set will be
58 agreement [<hostname> [<port>]]
60 Send key agreement request to remote client. If
61 the <hostname> is provided it is sent in the request.
62 The receiver may use the hostname to start the
63 key agreement. If the <port> is also provided your
64 key agreement protocol server is bound to that
65 port. Note that it cannot be privileged port (<1023).
66 If the <hostname> and <port> is not provided then
67 the receiver will never initiate the key agreement.
68 In this case you may start the key agreement after
69 receiving the reply to the request, by giving the
72 This command may be used to send reply to the
73 remote client. When receiving empty key agreement
74 you can reply to the sender with the hostname and
75 port of your key agreement server with this command.
77 negotiate [<hostname> [<port>]]
79 This may be called to start the key agreement with
80 <nickname>. This command has effect only if the
81 <nickname> has replied to your key agreement request.
82 You will see a notify on the screen when the reply
83 arrives. The <hostname> and <port> is the hostname
84 and port of the remote client's key agreement