For the latest news and information visit
The GNU Crypto project

Package gnu.crypto.key

Provides a basic API for algorithms to generate Public/Private keypairs, and Key Agreement schemes.

See:
          Description

Interface Summary
IKeyAgreementParty The visible methods of an key agreement protocol participating party.
IKeyPairCodec The visible methods of an object that knows how to encode and decode cryptographic asymmetric keypairs.
IKeyPairGenerator The visible methods of every asymmetric keypair generator.
 

Class Summary
BaseKeyAgreementParty A base abstract class to facilitate implementations of concrete key agreement protocol handlers.
IncomingMessage An implementation of an incoming message for use with key agreement protocols.
KeyAgreementFactory A Factory class to generate key agreement protocol handlers.
KeyPairCodecFactory A Factory class to instantiate key encoder/decoder instances.
KeyPairGeneratorFactory A Factory to instantiate asymmetric keypair generators.
OutgoingMessage An implementation of outgoing messages for use with key agreement protocols.
 

Exception Summary
KeyAgreementException A generic exception indicating that an unexpected condition has been detected during the setup and/or processing of a key agreement protocol exchange.
 

Package gnu.crypto.key Description

Provides a basic API for algorithms to generate Public/Private keypairs, and Key Agreement schemes.

Package overview

The contents of this package hierarchy is organised as follows:

The four key-pair generation algorithms currently implemented in this library are:

The Key Agreement protocols currently implemented in this library are:

The following diagram shows the important classes participating in key-pair generation:

The next diagram shows the important classes participating in key agreements:

The next two diagrams show the sequences involved in generating a keypair, and establishing a key agreement protocol.

The following example shows the code that can be used to generate a key- pair:

import gnu.crypto.sig.rsa.RSA;
import gnu.crypto.key.rsa.RSAKeyPairGenerator;

import java.math.BigInteger;
import java.security.KeyPair;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPrivateCrtKey;
import java.security.interfaces.RSAPublicKey;
import java.util.HashMap;
import java.util.Random;

...
RSAKeyPairGenerator kpg = new RSAKeyPairGenerator();
HashMap map = new HashMap();
map.put(RSAKeyPairGenerator.MODULUS_LENGTH, new Integer(1024));
kpg.setup(map);

KeyPair kp = kpg.generate();

BigInteger n1 = ((RSAPublicKey) kp.getPublic()).getModulus();
BigInteger e =  ((RSAPublicKey) kp.getPublic()).getPublicExponent();

BigInteger n2 = ((RSAPrivateKey) kp.getPrivate()).getModulus();
BigInteger d =  ((RSAPrivateKey) kp.getPrivate()).getPrivateExponent();

BigInteger p =    ((RSAPrivateCrtKey) kp.getPrivate()).getPrimeP();
BigInteger q =    ((RSAPrivateCrtKey) kp.getPrivate()).getPrimeQ();
BigInteger dP =   ((RSAPrivateCrtKey) kp.getPrivate()).getPrimeExponentP();
BigInteger dQ =   ((RSAPrivateCrtKey) kp.getPrivate()).getPrimeExponentQ();
BigInteger qInv = ((RSAPrivateCrtKey) kp.getPrivate()).getCrtCoefficient();


For the latest news and information visit
The GNU Crypto project

Copyright © 2001, 2002, 2003 Free Software Foundation, Inc. All Rights Reserved.