Chapter 28. The javax.crypto.spec Package
The javax.crypto.spec
package contains classes that define transparent
java.security.spec.KeySpec and
java.security.spec.AlgorithmParameterSpec
representations of secret keys, Diffie-Hellman public and private
keys, and parameters used by various cryptographic algorithms. The classes in this package are used in conjunction with
java.security.KeyFactory,
javax.crypto.SecretKeyFactory and
java.security.AlgorithmParameters for converting
opaque Key, and
AlgorithmParameters objects to and from transparent
representations. Figure 28-1 shows the class hierarchy of
this package. In order to make good use of this package, you
must be familiar with the specifications of the various cryptographic
algorithms it supports and the basic mathematics that underlie those
algorithms.
Figure 28-1. The javax.crypto.spec package
DESedeKeySpec | JCE 1.2 |
|
javax.crypto.spec | |
This class is a transparent representation of a DESede (triple-DES)
key. The key is 24 bytes long.
public class DESedeKeySpec implements java.security.spec.KeySpec { |
// | Public Constructors |
| public DESedeKeySpec (byte[ ] key) throws java.security.InvalidKeyException; | |
| public DESedeKeySpec (byte[ ] key, int offset) throws java.security.InvalidKeyException; | |
// | Public Constants |
| public static final int DES_EDE_KEY_LEN ; | =24 |
// | Public Class Methods |
| public static boolean isParityAdjusted (byte[ ] key, int offset) throws java.security.InvalidKeyException; | |
// | Public Instance Methods |
| public byte[ ] getKey (); | |
} |
Hierarchy: Object-->DESedeKeySpec(java.security.spec.KeySpec)
DESKeySpec | JCE 1.2 |
|
javax.crypto.spec | |
This class is a transparent representation of a DES key. The key is
eight bytes long.
public class DESKeySpec implements java.security.spec.KeySpec { |
// | Public Constructors |
| public DESKeySpec (byte[ ] key) throws java.security.InvalidKeyException; | |
| public DESKeySpec (byte[ ] key, int offset) throws java.security.InvalidKeyException; | |
// | Public Constants |
| public static final int DES_KEY_LEN ; | =8 |
// | Public Class Methods |
| public static boolean isParityAdjusted (byte[ ] key, int offset) throws java.security.InvalidKeyException; | |
| public static boolean isWeak (byte[ ] key, int offset) throws java.security.InvalidKeyException; | |
// | Public Instance Methods |
| public byte[ ] getKey (); | |
} |
Hierarchy: Object-->DESKeySpec(java.security.spec.KeySpec)
DHGenParameterSpec | JCE 1.2 |
|
javax.crypto.spec | |
This class is a transparent representation of the values needed to
generate a set of Diffie-Hellman parameters (see
DHParameterSpec). An instance of this class can be
passed to the init() method of a
java.security.AlgorithmParameterGenerator that computes
Diffie-Hellman parameters.
public class DHGenParameterSpec implements java.security.spec.AlgorithmParameterSpec { |
// | Public Constructors |
| public DHGenParameterSpec (int primeSize, int exponentSize); | |
// | Public Instance Methods |
| public int getExponentSize (); | |
| public int getPrimeSize (); | |
} |
Hierarchy: Object-->DHGenParameterSpec(java.security.spec.AlgorithmParameterSpec)
DHParameterSpec | JCE 1.2 |
|
javax.crypto.spec | |
This class is a transparent representation of the set of parameters
required by the Diffie-Hellman key-agreement algorithm. All parties
to the key agreement must share these parameters and use them to
generate a Diffie-Hellman public/private key pair.
public class DHParameterSpec implements java.security.spec.AlgorithmParameterSpec { |
// | Public Constructors |
| public DHParameterSpec (java.math.BigInteger p, java.math.BigInteger g); | |
| public DHParameterSpec (java.math.BigInteger p, java.math.BigInteger g, int l); | |
// | Public Instance Methods |
| public java.math.BigInteger getG (); | |
| public int getL (); | |
| public java.math.BigInteger getP (); | |
} |
Hierarchy: Object-->DHParameterSpec(java.security.spec.AlgorithmParameterSpec)
Returned By: javax.crypto.interfaces.DHKey.getParams()
DHPrivateKeySpec | JCE 1.2 |
|
javax.crypto.spec | |
This java.security.spec.KeySpec is a transparent
representation of a Diffie-Hellman private key.
public class DHPrivateKeySpec implements java.security.spec.KeySpec { |
// | Public Constructors |
| public DHPrivateKeySpec (java.math.BigInteger x, java.math.BigInteger p, java.math.BigInteger g); | |
// | Public Instance Methods |
| public java.math.BigInteger getG (); | |
| public java.math.BigInteger getP (); | |
| public java.math.BigInteger getX (); | |
} |
Hierarchy: Object-->DHPrivateKeySpec(java.security.spec.KeySpec)
DHPublicKeySpec | JCE 1.2 |
|
javax.crypto.spec | |
This java.security.spec.KeySpec is a transparent
representation of a Diffie-Hellman public key.
public class DHPublicKeySpec implements java.security.spec.KeySpec { |
// | Public Constructors |
| public DHPublicKeySpec (java.math.BigInteger y, java.math.BigInteger p, java.math.BigInteger g); | |
// | Public Instance Methods |
| public java.math.BigInteger getG (); | |
| public java.math.BigInteger getP (); | |
| public java.math.BigInteger getY (); | |
} |
Hierarchy: Object-->DHPublicKeySpec(java.security.spec.KeySpec)
IvParameterSpec | JCE 1.2 |
|
javax.crypto.spec | |
This java.security.spec.AlgorithmParameterSpec
is a transparent representation of an initialization vector
or IV. An IV is required for block ciphers used in feedback mode,
such as DES in CBC mode.
public class IvParameterSpec implements java.security.spec.AlgorithmParameterSpec { |
// | Public Constructors |
| public IvParameterSpec (byte[ ] iv); | |
| public IvParameterSpec (byte[ ] iv, int offset, int len); | |
// | Public Instance Methods |
| public byte[ ] getIV (); | |
} |
Hierarchy: Object-->IvParameterSpec(java.security.spec.AlgorithmParameterSpec)
PBEKeySpec | JCE 1.2 |
|
javax.crypto.spec | |
This class is a transparent representation of a password used in
password-based encryption (PBE). The password is stored as a
char array rather than as a
String, so that the characters of the password can
be overwritten when they are no longer
needed (for increased security).
public class PBEKeySpec implements java.security.spec.KeySpec { |
// | Public Constructors |
| public PBEKeySpec (char[ ] password); | |
// | Public Instance Methods |
| public final char[ ] getPassword (); | |
} |
Hierarchy: Object-->PBEKeySpec(java.security.spec.KeySpec)
PBEParameterSpec | JCE 1.2 |
|
javax.crypto.spec | |
This class is a transparent representation of the parameters used with
the password-based encryption algorithm defined by PKCS#5.
public class PBEParameterSpec implements java.security.spec.AlgorithmParameterSpec { |
// | Public Constructors |
| public PBEParameterSpec (byte[ ] salt, int iterationCount); | |
// | Public Instance Methods |
| public int getIterationCount (); | |
| public byte[ ] getSalt (); | |
} |
Hierarchy: Object-->PBEParameterSpec(java.security.spec.AlgorithmParameterSpec)
RC2ParameterSpec | JCE 1.2 |
|
javax.crypto.spec | |
This class is a transparent representation of the parameters used by
the RC2 encryption algorithm. An object of this class
initializes a Cipher object that implements RC2. Note that the "SunJCE" provider supplied by Sun does not implement
RC2.
public class RC2ParameterSpec implements java.security.spec.AlgorithmParameterSpec { |
// | Public Constructors |
| public RC2ParameterSpec (int effectiveKeyBits); | |
| public RC2ParameterSpec (int effectiveKeyBits, byte[ ] iv); | |
| public RC2ParameterSpec (int effectiveKeyBits, byte[ ] iv, int offset); | |
// | Public Instance Methods |
| public int getEffectiveKeyBits (); | |
| public byte[ ] getIV (); | |
} |
Hierarchy: Object-->RC2ParameterSpec(java.security.spec.AlgorithmParameterSpec)
RC5ParameterSpec | JCE 1.2 |
|
javax.crypto.spec | |
This class is a transparent representation of the parameters used by
the RC5 encryption algorithm. An object of this class
initializes a Cipher object that implements RC5. Note that the "SunJCE" provider supplied by Sun does not implement
RC5.
public class RC5ParameterSpec implements java.security.spec.AlgorithmParameterSpec { |
// | Public Constructors |
| public RC5ParameterSpec (int version, int rounds, int wordSize); | |
| public RC5ParameterSpec (int version, int rounds, int wordSize, byte[ ] iv); | |
| public RC5ParameterSpec (int version, int rounds, int wordSize, byte[ ] iv, int offset); | |
// | Public Instance Methods |
| public byte[ ] getIV (); | |
| public int getRounds (); | |
| public int getVersion (); | |
| public int getWordSize (); | |
} |
Hierarchy: Object-->RC5ParameterSpec(java.security.spec.AlgorithmParameterSpec)
SecretKeySpec | JCE 1.2 |
|
javax.crypto.spec | serializable |
This class is a transparent and algorithm-independent representation
of a secret key. This class is useful only for encryption algorithms
(such as DES and DESede) whose secret keys can be represented as
arbitrary byte arrays and do not require auxiliary
parameters. Note that SecretKeySpec implements the
javax.crypto.SecretKey interface directly, so no
algorithm-specific javax.crypto.SecretKeyFactory
object is required.
public class SecretKeySpec implements java.security.spec.KeySpecjavax.crypto.SecretKey { |
// | Public Constructors |
| public SecretKeySpec (byte[ ] key, String algorithm); | |
| public SecretKeySpec (byte[ ] key, int offset, int len, String algorithm); | |
// | Methods Implementing Key |
| public String getAlgorithm (); | |
| public byte[ ] getEncoded (); | |
| public String getFormat (); | |
// | Public Methods Overriding Object |
| public boolean equals (Object obj); | |
| public int hashCode (); | |
} |
Hierarchy: Object-->SecretKeySpec(java.security.spec.KeySpec,javax.crypto.SecretKey(java.security.Key(Serializable)))
| | |
27.1. The javax.crypto.interfaces Package | | 29. Class, Method, and Field Index |
Copyright © 2001 O'Reilly & Associates. All rights reserved.
|