Package Flaming Sword contains classes which implements an authentication protocol based on public key/private key encryption. It uses java Objects and serialization to pass messages around rather specially formatted byte streams, so it's fairly java-specific. An authentication server is included.

Table of contents

Implementation of the Flaming Sword protocol

The Flaming Sword protocol is described in detail in the Flaming Sword Assignment page. This table shows the mapping of messages to classes in this package:

Step Abstract Message Concrete Class
1 A->AS: A,B AuthenticationRequestMessage
2 AS->A: {{time,N,A,Ka}Ks*, {time,N,B,Kb}Ks*}Ka AuthenticationReplyMessage
3 A->B: {{time,N,A,Ka}Ks*, {N}Ka*}Kb ServiceContactMessage
4 B->A: {{N}Kb*}Ka ServiceAcknowledgeMessage

List of executable classes (main() functions)

Public key manager
PublicKeyList
Authentication server
AuthenticationServer

Properties used by some Celbercor classes

The following system properties should be used by Flaming Sword applications to locate the authentication server. They may be set with the -Dproperty=value command line option to the java interpretor (which must come before the name of the class with main()). If they are not set, certain defaults are used instead. (See ChatRoom.FlamingSword.ClientAuthenticationImpl for example.)
Authentication Server Host
flamingsword.authentication.host, which defaults to AuthenticationServer.DEFAULT_HOST (which is currently the local host)
Authentication Server Port
flamingsword.authentication.port, which defaults to AuthenticationServer.DEFAULT_PORT (which is currently 10305).

Last modified: Wed Jun 30 14:07:49 EDT 1999