The java.security.spec Package (Java in a Nutshell)
Chapter 21. The java.security.spec Package
The java.security.spec
package contains classes that define transparent representations
for DSA and RSA public and private keys and for X.509 and PKCS#8
encodings of those keys. It also defines a transparent representation
for DSA algorithm parameters. The classes in this package are used in
conjunction with java.security.KeyFactory and
java.security.AlgorithmParameters for converting
opaque Key and
AlgorithmParameters objects to and from transparent
representations. Figure 21-1 shows the class hierarchy of
this package.
Figure 21-1. The java.security.spec package
This package is not frequently used. To make use of it, you
must be somewhat familiar with the mathematics that underlies DSA and RSA
public-key encryption and the encoding standards that specify how
keys are encoded as byte streams.
AlgorithmParameterSpec Java 1.2
java.security.spec
This interface defines no methods; it marks classes that
define a transparent representation of cryptographic parameters. You
can use an AlgorithmParameterSpec object to
initialize an opaque
java.security.AlgorithmParameters object.
public interface AlgorithmParameterSpec {
}
Implementations: DSAParameterSpec, RSAKeyGenParameterSpec, javax.crypto.spec.DHGenParameterSpec, javax.crypto.spec.DHParameterSpec, javax.crypto.spec.IvParameterSpec, javax.crypto.spec.PBEParameterSpec, javax.crypto.spec.RC2ParameterSpec, javax.crypto.spec.RC5ParameterSpec
Passed To: Too many methods to list.
Returned By: java.security.AlgorithmParameters.getParameterSpec(), java.security.AlgorithmParametersSpi.engineGetParameterSpec()
DSAParameterSpec Java 1.2
java.security.spec
This class represents algorithm parameters used with DSA public-key
cryptography.
public class DSAParameterSpec implements AlgorithmParameterSpecjava.security.interfaces.DSAParams {
// Public Constructors
public DSAParameterSpec (java.math.BigInteger p , java.math.BigInteger q , java.math.BigInteger g );
// Methods Implementing DSAParams
public java.math.BigInteger getG ();
public java.math.BigInteger getP ();
public java.math.BigInteger getQ ();
}
Hierarchy: Object-->DSAParameterSpec(AlgorithmParameterSpec,java.security.interfaces.DSAParams)
DSAPrivateKeySpec Java 1.2
java.security.spec
This class is a transparent representation of a DSA private key.
public class DSAPrivateKeySpec implements KeySpec {
// Public Constructors
public DSAPrivateKeySpec (java.math.BigInteger x , java.math.BigInteger p , java.math.BigInteger q , java.math.BigInteger g );
// Public Instance Methods
public java.math.BigInteger getG ();
public java.math.BigInteger getP ();
public java.math.BigInteger getQ ();
public java.math.BigInteger getX ();
}
Hierarchy: Object-->DSAPrivateKeySpec(KeySpec)
DSAPublicKeySpec Java 1.2
java.security.spec
This class is a transparent representation of a DSA public key.
public class DSAPublicKeySpec implements KeySpec {
// Public Constructors
public DSAPublicKeySpec (java.math.BigInteger y , java.math.BigInteger p , java.math.BigInteger q , java.math.BigInteger g );
// Public Instance Methods
public java.math.BigInteger getG ();
public java.math.BigInteger getP ();
public java.math.BigInteger getQ ();
public java.math.BigInteger getY ();
}
Hierarchy: Object-->DSAPublicKeySpec(KeySpec)
EncodedKeySpec Java 1.2
java.security.spec
This abstract class represents a public or private key in an encoded
format. It serves as the superclass for encoding-specific classes.
public abstract class EncodedKeySpec implements KeySpec {
// Public Constructors
public EncodedKeySpec (byte[ ] encodedKey );
// Public Instance Methods
public byte[ ] getEncoded ();
public abstract String getFormat ();
}
Hierarchy: Object-->EncodedKeySpec(KeySpec)
Subclasses: PKCS8EncodedKeySpec, X509EncodedKeySpec
InvalidKeySpecException Java 1.2
java.security.spec serializable checked
Signals a problem with a KeySpec .
public class InvalidKeySpecException extends java.security.GeneralSecurityException {
// Public Constructors
public InvalidKeySpecException ();
public InvalidKeySpecException (String msg );
}
Hierarchy: Object-->Throwable(Serializable)-->Exception-->java.security.GeneralSecurityException-->InvalidKeySpecException
Thrown By: java.security.KeyFactory.{generatePrivate(), generatePublic(), getKeySpec()}, java.security.KeyFactorySpi.{engineGeneratePrivate(), engineGeneratePublic(), engineGetKeySpec()}, javax.crypto.SecretKeyFactory.{generateSecret(), getKeySpec()}, javax.crypto.SecretKeyFactorySpi.{engineGenerateSecret(), engineGetKeySpec()}
InvalidParameterSpecException Java 1.2
java.security.spec serializable checked
Signals a problem with an AlgorithmParameterSpec .
public class InvalidParameterSpecException extends java.security.GeneralSecurityException {
// Public Constructors
public InvalidParameterSpecException ();
public InvalidParameterSpecException (String msg );
}
Hierarchy: Object-->Throwable(Serializable)-->Exception-->java.security.GeneralSecurityException-->InvalidParameterSpecException
Thrown By: java.security.AlgorithmParameters.{getParameterSpec(), init()}, java.security.AlgorithmParametersSpi.{engineGetParameterSpec(), engineInit()}
KeySpec Java 1.2
java.security.spec
This interface defines no methods; it marks classes that
define a transparent representation of a cryptographic key. Use a
java.security.KeyFactory to convert a
KeySpec to and from an opaque
java.security.Key .
public interface KeySpec {
}
Implementations: DSAPrivateKeySpec, DSAPublicKeySpec, EncodedKeySpec, RSAPrivateKeySpec, RSAPublicKeySpec, javax.crypto.spec.DESedeKeySpec, javax.crypto.spec.DESKeySpec, javax.crypto.spec.DHPrivateKeySpec, javax.crypto.spec.DHPublicKeySpec, javax.crypto.spec.PBEKeySpec, javax.crypto.spec.SecretKeySpec
Passed To: java.security.KeyFactory.{generatePrivate(), generatePublic()}, java.security.KeyFactorySpi.{engineGeneratePrivate(), engineGeneratePublic()}, javax.crypto.SecretKeyFactory.generateSecret(), javax.crypto.SecretKeyFactorySpi.engineGenerateSecret()
Returned By: java.security.KeyFactory.getKeySpec(), java.security.KeyFactorySpi.engineGetKeySpec(), javax.crypto.SecretKeyFactory.getKeySpec(), javax.crypto.SecretKeyFactorySpi.engineGetKeySpec()
PKCS8EncodedKeySpec Java 1.2
java.security.spec
This class represents a private key, encoded according to the PKCS#8
standard.
public class PKCS8EncodedKeySpec extends EncodedKeySpec {
// Public Constructors
public PKCS8EncodedKeySpec (byte[ ] encodedKey );
// Public Methods Overriding EncodedKeySpec
public byte[ ] getEncoded ();
public final String getFormat ();
}
Hierarchy: Object-->EncodedKeySpec(KeySpec)-->PKCS8EncodedKeySpec
RSAKeyGenParameterSpec Java 1.3 Beta
java.security.spec
This class represents parameters that generate public/private key
pairs for RSA cryptography.
public class RSAKeyGenParameterSpec implements AlgorithmParameterSpec {
// Public Constructors
public RSAKeyGenParameterSpec (int keysize , java.math.BigInteger publicExponent );
// Public Constants
public static final java.math.BigInteger F0 ;
public static final java.math.BigInteger F4 ;
// Public Instance Methods
public int getKeysize ();
public java.math.BigInteger getPublicExponent ();
}
Hierarchy: Object-->RSAKeyGenParameterSpec(AlgorithmParameterSpec)
RSAPrivateCrtKeySpec Java 1.2
java.security.spec
This class is a transparent representation of an RSA private key
including, for convenience, the Chinese remainder theorem values
associated with the key.
public class RSAPrivateCrtKeySpec extends RSAPrivateKeySpec {
// Public Constructors
public RSAPrivateCrtKeySpec (java.math.BigInteger modulus , java.math.BigInteger publicExponent , java.math.BigInteger privateExponent , java.math.BigInteger primeP , java.math.BigInteger primeQ , java.math.BigInteger primeExponentP , java.math.BigInteger primeExponentQ , java.math.BigInteger crtCoefficient );
// Property Accessor Methods (by property name)
public java.math.BigInteger getCrtCoefficient ();
public java.math.BigInteger getPrimeExponentP ();
public java.math.BigInteger getPrimeExponentQ ();
public java.math.BigInteger getPrimeP ();
public java.math.BigInteger getPrimeQ ();
public java.math.BigInteger getPublicExponent ();
}
Hierarchy: Object-->RSAPrivateKeySpec(KeySpec)-->RSAPrivateCrtKeySpec
RSAPrivateKeySpec Java 1.2
java.security.spec
This class is a transparent representation of an RSA private key.
public class RSAPrivateKeySpec implements KeySpec {
// Public Constructors
public RSAPrivateKeySpec (java.math.BigInteger modulus , java.math.BigInteger privateExponent );
// Public Instance Methods
public java.math.BigInteger getModulus ();
public java.math.BigInteger getPrivateExponent ();
}
Hierarchy: Object-->RSAPrivateKeySpec(KeySpec)
Subclasses: RSAPrivateCrtKeySpec
RSAPublicKeySpec Java 1.2
java.security.spec
This class is a transparent representation of an RSA public key.
public class RSAPublicKeySpec implements KeySpec {
// Public Constructors
public RSAPublicKeySpec (java.math.BigInteger modulus , java.math.BigInteger publicExponent );
// Public Instance Methods
public java.math.BigInteger getModulus ();
public java.math.BigInteger getPublicExponent ();
}
Hierarchy: Object-->RSAPublicKeySpec(KeySpec)
X509EncodedKeySpec Java 1.2
java.security.spec
This class represents a public or private key encoded according to
the X.509 standard.
public class X509EncodedKeySpec extends EncodedKeySpec {
// Public Constructors
public X509EncodedKeySpec (byte[ ] encodedKey );
// Public Methods Overriding EncodedKeySpec
public byte[ ] getEncoded ();
public final String getFormat ();
}
Hierarchy: Object-->EncodedKeySpec(KeySpec)-->X509EncodedKeySpec
20.1. The java.security.interfaces Package 22. The java.text Package
Copyright © 2001 O'Reilly & Associates. All rights reserved.