org.mozilla.jss.pkcs11
Class PK11PrivKey

java.lang.Object
  extended by org.mozilla.jss.pkcs11.PK11PrivKey
All Implemented Interfaces:
java.io.Serializable, java.security.Key, java.security.PrivateKey

public class PK11PrivKey
extends java.lang.Object
implements PrivateKey

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.mozilla.jss.crypto.PrivateKey
PrivateKey.Type
 
Field Summary
protected  org.mozilla.jss.pkcs11.KeyProxy keyProxy
           
 
Fields inherited from interface org.mozilla.jss.crypto.PrivateKey
DiffieHellman, DSA, RSA
 
Fields inherited from interface java.security.PrivateKey
serialVersionUID
 
Constructor Summary
protected PK11PrivKey(byte[] pointer)
           
 
Method Summary
static PK11PrivKey fromPrivateKeyInfo(byte[] pki, CryptoToken token)
          Imports a PrivateKeyInfo, storing it as a temporary PrivateKey on the given token.
static PK11PrivKey fromPrivateKeyInfo(byte[] pki, CryptoToken token, byte[] publicValue)
          Imports a PrivateKeyInfo, storing it as a temporary PrivateKey on the given token.
static PK11PrivKey fromPrivateKeyInfo(java.security.spec.PKCS8EncodedKeySpec spec, CryptoToken token)
          Imports a PrivateKeyInfo, storing it as a temporary PrivateKey on the given token.
 java.lang.String getAlgorithm()
           
protected  java.security.spec.DSAParameterSpec getDSAParams()
           
 byte[] getEncoded()
          Subclasses that support encoding can overload this method.
 java.lang.String getFormat()
          Subclasses that support encoding can overload this method.
 org.mozilla.jss.pkcs11.KeyType getKeyType()
           
 CryptoToken getOwningToken()
          Returns a new CryptoToken where this key resides.
 int getStrength()
          Returns the size in bits of the modulus of an RSA Private key.
 PrivateKey.Type getType()
          Returns the type (RSA or DSA) of this private key.
 byte[] getUniqueID()
          Returns the unique ID of this key.
 void verifyKeyIsOnToken(PK11Token token)
          Make sure this key lives on the given token.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.security.Key
getEncoded, getFormat
 

Field Detail

keyProxy

protected org.mozilla.jss.pkcs11.KeyProxy keyProxy
Constructor Detail

PK11PrivKey

protected PK11PrivKey(byte[] pointer)
Method Detail

verifyKeyIsOnToken

public void verifyKeyIsOnToken(PK11Token token)
                        throws NoSuchItemOnTokenException
Make sure this key lives on the given token.

Throws:
NoSuchItemOnTokenException

getOwningToken

public CryptoToken getOwningToken()
Returns a new CryptoToken where this key resides.

Returns:
The PK11Token that owns this key.

getUniqueID

public byte[] getUniqueID()
                   throws TokenException
Description copied from interface: PrivateKey
Returns the unique ID of this key. Unique IDs can be used to match certificates to keys.

Throws:
TokenException
See Also:
TokenCertificate.getUniqueID()

getKeyType

public org.mozilla.jss.pkcs11.KeyType getKeyType()

getType

public PrivateKey.Type getType()
Description copied from interface: PrivateKey
Returns the type (RSA or DSA) of this private key.


getAlgorithm

public java.lang.String getAlgorithm()
Specified by:
getAlgorithm in interface java.security.Key

getStrength

public int getStrength()
Returns the size in bits of the modulus of an RSA Private key. Returns -1 for other types of keys.


fromPrivateKeyInfo

public static PK11PrivKey fromPrivateKeyInfo(java.security.spec.PKCS8EncodedKeySpec spec,
                                             CryptoToken token)
                                      throws TokenException
Imports a PrivateKeyInfo, storing it as a temporary PrivateKey on the given token. The key will be a temporary (session) key until it is imported into a KeyStore, at which point it will be made a permanent (token) object.

Throws:
TokenException

fromPrivateKeyInfo

public static PK11PrivKey fromPrivateKeyInfo(byte[] pki,
                                             CryptoToken token)
                                      throws TokenException
Imports a PrivateKeyInfo, storing it as a temporary PrivateKey on the given token. The key will be a temporary (session) key until it is imported into a KeyStore, at which point it will be made a permanent (token) object.

Throws:
TokenException

fromPrivateKeyInfo

public static PK11PrivKey fromPrivateKeyInfo(byte[] pki,
                                             CryptoToken token,
                                             byte[] publicValue)
                                      throws TokenException
Imports a PrivateKeyInfo, storing it as a temporary PrivateKey on the given token. The key will be a temporary (session) key until it is imported into a KeyStore, at which point it will be made a permanent (token) object.

Parameters:
publicValue - An encoding of the public key, as used by the NSS pk11wrap code. Don't use this unless you know what you're doing.
Throws:
TokenException

getDSAParams

protected java.security.spec.DSAParameterSpec getDSAParams()
                                                    throws TokenException
Throws:
TokenException

getEncoded

public byte[] getEncoded()
Subclasses that support encoding can overload this method.


getFormat

public java.lang.String getFormat()
Subclasses that support encoding can overload this method.