 
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.