gnu.javax.crypto.key

Class BaseKeyAgreementParty

Implemented Interfaces:
IKeyAgreementParty
Known Direct Subclasses:
DiffieHellmanKeyAgreement, ElGamalKeyAgreement, SRP6KeyAgreement

public abstract class BaseKeyAgreementParty
extends Object
implements IKeyAgreementParty

A base abstract class to facilitate implementations of concrete key agreement protocol handlers.

Field Summary

protected static BigInteger
TWO
protected boolean
complete
Whether the exchange has concluded or not.
protected boolean
initialised
Whether the instance is initialised or not.
protected IRandom
irnd
The optional IRandom instance to use.
protected String
name
The canonical name of the protocol.
protected SecureRandom
rnd
The optional SecureRandom instance to use.
protected int
step
The current step index of the protocol exchange.

Constructor Summary

BaseKeyAgreementParty(String name)

Method Summary

protected abstract void
engineInit(Map<K,V> attributes)
protected abstract OutgoingMessage
engineProcessMessage(IncomingMessage in)
protected abstract void
engineReset()
protected abstract byte[]
engineSharedSecret()
byte[]
getSharedSecret()
void
init(Map<K,V> attributes)
boolean
isComplete()
String
name()
protected void
nextRandomBytes(byte[] buffer)
Fills the designated byte array with random data.
OutgoingMessage
processMessage(IncomingMessage in)
void
reset()

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

TWO

protected static final BigInteger TWO

complete

protected boolean complete
Whether the exchange has concluded or not.

initialised

protected boolean initialised
Whether the instance is initialised or not.

irnd

protected IRandom irnd
The optional IRandom instance to use.

name

protected String name
The canonical name of the protocol.

rnd

protected SecureRandom rnd
The optional SecureRandom instance to use.

step

protected int step
The current step index of the protocol exchange.

Constructor Details

BaseKeyAgreementParty

protected BaseKeyAgreementParty(String name)

Method Details

engineInit

protected abstract void engineInit(Map<K,V> attributes)
            throws KeyAgreementException

engineProcessMessage

protected abstract OutgoingMessage engineProcessMessage(IncomingMessage in)
            throws KeyAgreementException

engineReset

protected abstract void engineReset()

engineSharedSecret

protected abstract byte[] engineSharedSecret()
            throws KeyAgreementException

getSharedSecret

public byte[] getSharedSecret()
            throws KeyAgreementException
Specified by:
getSharedSecret in interface IKeyAgreementParty

init

public void init(Map<K,V> attributes)
            throws KeyAgreementException
Specified by:
init in interface IKeyAgreementParty

isComplete

public boolean isComplete()
Specified by:
isComplete in interface IKeyAgreementParty

name

public String name()
Specified by:
name in interface IKeyAgreementParty

nextRandomBytes

protected void nextRandomBytes(byte[] buffer)
Fills the designated byte array with random data.
Parameters:
buffer - the byte array to fill with random data.

processMessage

public OutgoingMessage processMessage(IncomingMessage in)
            throws KeyAgreementException
Specified by:
processMessage in interface IKeyAgreementParty

reset

public void reset()
Specified by:
reset in interface IKeyAgreementParty

BaseKeyAgreementParty.java -- Copyright (C) 2003, 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.