+Sun Jul 9 15:19:24 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Finally made the SKE implementation compliant to the protocol
+ specification. All mp integers are now binary encoded as
+ opposed being HEX encoded.
+
+ * Added lib/silcmath/mpbin.[ch]. Encoding mp intergers to and
+ from binary data.
+
+ * Added into lib/silccore/silcutil.[ch] PEM encoding/decoding
+ functions: silc_[encode/decode]_pem. Also added function
+ silc_encode_pem_file to PEM encode with newlines ('\n') for
+ saving into a file.
+
+ * SILC public keys are now encoded either PEM or binary. Same
+ option is for private keys as well. By default private keys
+ are binary encoded and public keys PEM encoded. Silly HEX
+ encoding were removed.
+
+ * Added into lib/silccrypt/silchash.[ch] silc_hash_fingerprint
+ function to create fingerprints.
+
+ * Fixed a bug in SHA1; does not change the original data anymore.
+
+ * Partly implemented INFO command on client and server side.
+ Fixed CLEAR command. Changes to SERVER command; show current
+ server(s) when giving command without arguments. Added
+ VERSION command to client.
+
+ * Added check to server that unregistered connections cannot
+ execute commands (unless it is specificly allowed).
+
Thu Jul 6 18:12:24 EEST 2000 Pekka Riikonen <priikone@poseidon.pspt.fi>
* Fixed screen refresh.
Pings server. Only locally connected server may be
pinged.
+ /INFO [<server>]
+
+ Requests information about a server. If argument is
+ not specified current server is used.
+
/QUIT
Quits session. Connection to remote server is closed.
Clears current screen.
+ /VERSION
+
+ Shows client version.
+
Features
========
be implemented (See corresponding code from server). Error handling
in the KE protocol is also in pretty bad shape in client.
- o Configuration file loading from global and from local dirs. This
- is currently missing and I guess the global is only used. Old SILC
- version (in 1997) had ~./silc directory that I guess should be done
- now as well. The code for handling those exists but not in current
- source tree.
-
o Configuration file format - could be better.
o Write help files for commands. Nice format for the help files should
TODO In SILC Libraries
======================
- o Public key verification in SKE (SILC Key Exchange) protocol is missing,
- thus currently we trust on all public keys. This probably doesn't cause
- bad problems but the mechanism of verifying it from local database
- (from files) needs to be done (it can open man-in-the-middle-attacks).
-
o Implement PFS (Perfect Forward Secrecy) flag in SKE (and in client and
server, actually). If PFS is set, re-key must cause new key exchange.
This is required by the SILC protocol.
I've done now is bad and should be removed as soon as possible (or
the protocol should then state the method of how they should be done).
- o SILC public key file type is bad. I'd like to see PEM encoded files.
- I have public domain code for base64 encoding but it needs to be
- rewritten.
-
o Slow ciphers should be removed. I think we don't need more than
the AES finalists plus blowfish and RC5.
SILC_STATUS_OK
SILC_STATUS_ERR_WILDCARDS
SILC_STATUS_ERR_NOT_REGISTERED
+ SILC_STATUS_ERR_NOT_ENOUGH_PARAMS
SILC_STATUS_ERR_TOO_MANY_PARAMS
- SILC_STATUS_ERR_NO_SUCH_SERVER_ID
SILC_STATUS_ERR_NO_SUCH_SERVER
18 SILC_COMMAND_CMODE
- Max Arguments: 6
+ Max Arguments: 8
Arguments: (1) <Channel ID> (2) <channel mode mask>
(3) [<user limit>] (4) [<passphrase>]
- (5) [<Client ID>] (6) [<cipher>[:<key len>]]
+ (5) [<ban mask>] (6) [<invite list>]
+ (7) [<Client ID>] (8) [<cipher>[:<key len>]]
This command is used by client to set or change channel flags on
a channel. Channel has several modes that set various properties
Typical implementation would use [+|-]b on user interface
to set/unset this mode.
+
+ 0x0100 SILC_CMODE_INVITE
+
+ Invite list has been set to the channel. The invite list
+ can be used to mark the clients that is able to join
+ channel without being invited when the channel is set to
+ be invite-only channel. The <invite list> argument is the
+ set invite mask. When unsetting entry from the invite list
+ the entry must be provided as argument. Channel founder and
+ channel operator may set/unset this mode.
+
+ Typical implementation would use [+|-]I on user interface
+ to set/unset this mode.
+
- 0x0100 SILC_CMODE_OPERATOR
+ 0x0200 SILC_CMODE_OPERATOR
Sets channel operator privileges on the channel for a
client on the channel. The <Client ID> argument is the
to set/unset this mode.
- 0x0200 SILC_CMODE_CIPHER
+ 0x0400 SILC_CMODE_CIPHER
Sets specific cipher to be used to protect channel
traffic. The <cipher> argument is the requested cipher.
/* Math library includes */
#include "silcmp.h"
#include "modinv.h"
+#include "mpbin.h"
#include "silcprimegen.h"
/* Crypto library includes */