org.logi.crypto.protocols
Class DHKeyExClient

java.lang.Object
  |
  +--org.logi.crypto.Crypto
        |
        +--org.logi.crypto.protocols.DHKeyEx
              |
              +--org.logi.crypto.protocols.DHKeyExClient
All Implemented Interfaces:
InterKeyExClient, InterProtocolClient

public class DHKeyExClient
extends DHKeyEx
implements InterKeyExClient

Diffie-Hellman key exchange client. It expects to talk to a DHKeyExServer object.

Author:
Logi Ragnarsson (logir@logi.org)
See Also:
DHKeyExServer

Fields inherited from class org.logi.crypto.Crypto
BIT, cdsPath, EMPTY_ARRAY, FOUR, keySource, NIBBLE, ONE, primeCertainty, random, TWO, ZERO
 
Constructor Summary
DHKeyExClient(DHKey pri, java.lang.String keyType)
          Create a new DHKeyExClient object.
DHKeyExClient(int n, java.lang.String keyType)
          Create a new DHKeyExClient object.
 
Method Summary
 byte[] message(byte[] received)
          Get the next message in the protocol.
 
Methods inherited from class org.logi.crypto.protocols.DHKeyEx
completed, maxMessageSize, sessionKey
 
Methods inherited from class org.logi.crypto.Crypto
binString, binString, equal, equalRelaxed, equalSub, fromHexNibble, fromHexString, fromString, fromString, hexString, hexString, hexString, hexString, hexString, initRandom, initRandom, makeClass, makeInt, makeLong, makeSessionKey, pastSpace, pickBits, pickBits, readBlock, readInt, writeBytes, writeBytes, writeInt
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.logi.crypto.protocols.InterKeyExClient
sessionKey
 
Methods inherited from interface org.logi.crypto.protocols.InterProtocolClient
completed, maxMessageSize
 

Constructor Detail

DHKeyExClient

public DHKeyExClient(DHKey pri,
                     java.lang.String keyType)
              throws KeyException
Create a new DHKeyExClient object. It uses the private DH key from pri.
Throws:
KeyException - if the key is not private.

DHKeyExClient

public DHKeyExClient(int n,
                     java.lang.String keyType)
Create a new DHKeyExClient object. It uses an n bit modulus and the named key type.

There are pre-computed public modulus and gnerator pairs for these values of n: 256, 512, 1024, 2048. Using one of these values saves you from a rather long wait.

Method Detail

message

public byte[] message(byte[] received)
               throws CryptoProtocolException
Get the next message in the protocol.

received is the last message received form the server and has not yet been sent to the client.

The returned value is the next message to send to the server or null if no more messages need to be sent and the protocol is terminated.

Specified by:
message in interface InterProtocolClient
Throws:
CryptoProtocolException - if a problem arises with the protocol.


Copyright 1997-2000 Logi Ragnarsson