+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+| Version String Length | |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
+| |
+~ Version String ~
+| |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Key Exchange Grp Length | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
| |
must not be set.
o Payload Length (2 bytes) - Length of the entire Key Exchange
- Start payload.
+ Start payload, not including any other field.
o Cookie (16 bytes) - Cookie that uniforms this payload so
that each of the party cannot determine the payload before
hand.
+o Version String Length (2 bytes) - The length of the Version
+ String field, not including any other field.
+
+o Version String (variable length) - Indicates the version of
+ the sender of this payload. Initiator sets this when sending
+ the payload and responder sets this when it replies by sending
+ this payload. See [SILC1] for definition of the version
+ string format.
+
o Key Exchange Grp Length (2 bytes) - The length of the
- key exchange group list, including this field as well.
+ key exchange group list, not including any other field.
o Key Exchange Group (variable length) - The list of
key exchange groups. See the section 2.1.2 SILC Key Exchange
Groups for definitions of these groups.
o PKCS Alg Length (2 bytes) - The length of the PKCS algorithms
- list, including this field as well.
+ list, not including any other field.
o PKCS Algorithms (variable length) - The list of PKCS
algorithms.
o Encryption Alg Length (2 bytes) - The length of the encryption
- algorithms list, including this field as well.
+ algorithms list, not including any other field.
o Encryption Algorithms (variable length) - The list of
encryption algorithms.
o Hash Alg Length (2 bytes) - The length of the Hash algorithms
- list, including this field as well.
+ list, not including any other field.
o Hash Algorithms (variable length) - The list of Hash algorithms.
o Compression Alg Length (2 bytes) - The length of the
- compression algorithms list, including this field as well.
+ compression algorithms list, not including any other field.
o Compression Algorithms (variable length) - The list of
compression algorithms.
.in 6
-o Public Key Length (2 bytes) - The length of the public key
- (or certificate), including this field and public key type
- field as well.
+o Public Key Length (2 bytes) - The length of the Public Key
+ (or certificate) field, not including any other field.
o Public Key Type (2 bytes) - The public key (or certificate)
type. This field indicates the type of the public key in
sending SILC_PACKET_FAILURE message.
o Public Data Length (2 bytes) - The length of the public
- data computed by the responder, including this field
- as well.
+ data computed by the responder, not including any other
+ field.
o Public Data (variable length) - The public data to be
sent to the responder. See section 2.2 Key Exchange
.in 6
-o Public Key Length (2 bytes) - The length of the public key
- (or certificate), including this field and public key type
- field as well.
+o Public Key Length (2 bytes) - The length of the Public Key
+ (or certificate) field, not including any other field.
o Public Key Type (2 bytes) - The public key (or certificate)
type. This field indicates the type of the public key in
is indicated by previous Public Key Type field.
o Public Data Length (2 bytes) - The length of the public
- data computed by the responder, including this field
- as well.
+ data computed by the responder, not including any other
+ field.
o Public Data (variable length) - The public data computed
by the responder. See section 2.2 Key Exchange Procedure
value is binary encoded.
o Signature Length (2 bytes) - The length of the signature,
- including the length of this field as well.
+ not including any other field.
o Signature Data (variable length) - The signature signed
by the responder. The receiver of this signature must
3.10.3 MAC Algorithms ..................................... 20
3.10.4 Compression Algorithms ............................. 21
3.11 SILC Public Key .......................................... 21
+ 3.12 SILC Version Detection ................................... 24
4 SILC Procedures ............................................... 24
4.1 Creating Client Connection ................................ 24
4.2 Creating Server Connection ................................ 25
order.
+.ti 0
+3.12 SILC Version Detection
+
+The version detection of both client and server is performed at the
+connection phase while executing the SILC Key Exchange protocol. The
+version identifier is exchanged between intiator and responder. The
+version identifier is of following format:
+
+.in 6
+SILC-<protocol version>-<software version>
+.in 3
+
+The version strings are of following format:
+
+.in 6
+protocol version = <major>.<minor>
+software version = <major>[.<minor>[.<build>]]
+.in 3
+
+Protocol version may provide both major and minor version. Currently
+implementations must set the protocol version and accept the protocol
+version as SILC-1.0-<sotware version>.
+
+Software version may provide major, minor and build version. The
+software version may be freely set and accepted.
+
+Thus, the version string could be, for example:
+
+.in 6
+SILC-1.0-1.2
+.in 3
+
+
.ti 0
4 SILC Procedures