org.mozilla.jss.crypto

Interface KeyWrapper

public interface KeyWrapper

Deprecated: Use the JCA interface instead (javax.crypto.Cipher)

Method Summary
voidinitUnwrap(SymmetricKey unwrappingKey, AlgorithmParameterSpec parameters)
voidinitUnwrap(PrivateKey unwrappingKey, AlgorithmParameterSpec parameters)
voidinitUnwrap()
For plaintext-wrapped keys.
voidinitWrap(SymmetricKey wrappingKey, AlgorithmParameterSpec parameters)
voidinitWrap(PublicKey wrappingKey, AlgorithmParameterSpec parameters)
voidinitWrap()
For wrapping keys in plaintext.
PrivateKeyunwrapPrivate(byte[] wrapped, PrivateKey.Type type, PublicKey publicKey)
Unwraps a private key, creating a permanent private key object.
SymmetricKeyunwrapSymmetric(byte[] wrapped, SymmetricKey.Type type, SymmetricKey.Usage usage, int keyLength)
SymmetricKeyunwrapSymmetric(byte[] wrapped, SymmetricKey.Type type, int keyLength)
Unwraps a key and allows it to be used for all operations.
PrivateKeyunwrapTemporaryPrivate(byte[] wrapped, PrivateKey.Type type, PublicKey publicKey)
Unwraps a private key, creating a temporary private key object.
byte[]wrap(PrivateKey toBeWrapped)
byte[]wrap(SymmetricKey toBeWrapped)

Method Detail

initUnwrap

public void initUnwrap(SymmetricKey unwrappingKey, AlgorithmParameterSpec parameters)

initUnwrap

public void initUnwrap(PrivateKey unwrappingKey, AlgorithmParameterSpec parameters)

initUnwrap

public void initUnwrap()
For plaintext-wrapped keys.

initWrap

public void initWrap(SymmetricKey wrappingKey, AlgorithmParameterSpec parameters)

initWrap

public void initWrap(PublicKey wrappingKey, AlgorithmParameterSpec parameters)

initWrap

public void initWrap()
For wrapping keys in plaintext.

unwrapPrivate

public PrivateKey unwrapPrivate(byte[] wrapped, PrivateKey.Type type, PublicKey publicKey)
Unwraps a private key, creating a permanent private key object. A permanent private key object resides on a token until it is explicitly deleted from the token.

Parameters: publicKey Used to calculate the key identifier that must be stored with the private key. Must be a RSAPublicKey or a DSAPublicKey.

Throws: InvalidKeyException If the type of the public key does not match the type of the private key to be unwrapped.

unwrapSymmetric

public SymmetricKey unwrapSymmetric(byte[] wrapped, SymmetricKey.Type type, SymmetricKey.Usage usage, int keyLength)

Parameters: keyLength The expected length of the key in bytes. This is only used for variable-length keys (RC4) and non-padding algorithms. Otherwise, it can be set to anything(like 0). usage The operation the key will be used for after it is unwrapped. You have to specify this so that the key can be properly marked with the operation it supports. Some PKCS #11 tokens require that a key be marked for an operation before it can perform that operation.

unwrapSymmetric

public SymmetricKey unwrapSymmetric(byte[] wrapped, SymmetricKey.Type type, int keyLength)
Unwraps a key and allows it to be used for all operations.

Parameters: keyLength The expected length of the key in bytes. This is only used for variable-length keys (RC4) and non-padding algorithms. Otherwise, it can be set to anything(like 0).

unwrapTemporaryPrivate

public PrivateKey unwrapTemporaryPrivate(byte[] wrapped, PrivateKey.Type type, PublicKey publicKey)
Unwraps a private key, creating a temporary private key object. A temporary private key is one that does not permanently reside on a token. As soon as it is garbage-collected, it is gone forever.

Parameters: publicKey Used to calculate the key identifier that must be stored with the private key. Must be a RSAPublicKey or a DSAPublicKey.

Throws: InvalidKeyException If the type of the public key does not match the type of the private key to be unwrapped.

wrap

public byte[] wrap(PrivateKey toBeWrapped)

wrap

public byte[] wrap(SymmetricKey toBeWrapped)