Package org.mozilla.jss.pkcs11
Class PK11Cipher
java.lang.Object
org.mozilla.jss.crypto.Cipher
org.mozilla.jss.pkcs11.PK11Cipher
- All Implemented Interfaces:
AutoCloseable
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate EncryptionAlgorithmprivate CipherContextProxyprivate static final intprivate static final intprivate byte[]private SymmetricKeyprivate AlgorithmParameterSpecprivate intprivate PK11Tokenprivate static final int -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate(package private)PK11Cipher(PK11Token token, EncryptionAlgorithm algorithm) -
Method Summary
Modifier and TypeMethodDescriptionprivate voidcheckKey(SymmetricKey key) Checks for null, makes sure the key lives on the correct token, makes sure it is a PKCS #11 key, makes sure it's the right type for this algorithm.private voidcheckParams(AlgorithmParameterSpec params) Matches the params against those expected by the algorithm.voidclose()byte[]doFinal()Deprecated.isPadded() in EncryptionAlgorithm has been deprecatedbyte[]doFinal(byte[] bytes) Deprecated.isPadded() in EncryptionAlgorithm has been deprecatedbyte[]doFinal(byte[] bytes, int offset, int length) Completes an cipher operation.voidfinalize()private static byte[]finalizeContext(CipherContextProxy context, int blocksize, boolean padded) private static byte[]private static CipherContextProxyinitContext(boolean encrypt, SymmetricKey key, EncryptionAlgorithm alg, byte[] IV, boolean padded) private static CipherContextProxyinitContextWithKeyBits(boolean encrypt, SymmetricKey key, EncryptionAlgorithm alg, byte[] IV, int keyBits, boolean padded) voidinitDecrypt(SymmetricKey key) Initializes a decryption context with a symmetric key.voidinitDecrypt(SymmetricKey key, AlgorithmParameterSpec parameters) Deprecated.isPadded() in EncryptionAlgorithm has been deprecatedvoidinitEncrypt(SymmetricKey key) Initializes a encryption context with a symmetric key.voidinitEncrypt(SymmetricKey key, AlgorithmParameterSpec parameters) Deprecated.isPadded() in EncryptionAlgorithm has been deprecatedprivate voidreset()byte[]update(byte[] bytes) Updates the encryption context with additional input.byte[]update(byte[] bytes, int offset, int length) Updates the encryption context with additional plaintext.private static byte[]updateContext(CipherContextProxy context, byte[] input, int blocksize)
-
Field Details
-
token
-
algorithm
-
parameters
-
key
-
IV
private byte[] IV -
contextProxy
-
state
private int state -
UNINITIALIZED
private static final int UNINITIALIZED- See Also:
-
ENCRYPT
private static final int ENCRYPT- See Also:
-
DECRYPT
private static final int DECRYPT- See Also:
-
-
Constructor Details
-
PK11Cipher
private PK11Cipher() -
PK11Cipher
PK11Cipher(PK11Token token, EncryptionAlgorithm algorithm)
-
-
Method Details
-
initEncrypt
public void initEncrypt(SymmetricKey key) throws InvalidKeyException, InvalidAlgorithmParameterException, TokenException Description copied from class:CipherInitializes a encryption context with a symmetric key.- Specified by:
initEncryptin classCipher- Throws:
InvalidKeyExceptionInvalidAlgorithmParameterExceptionTokenException
-
initDecrypt
public void initDecrypt(SymmetricKey key) throws InvalidKeyException, InvalidAlgorithmParameterException, TokenException Description copied from class:CipherInitializes a decryption context with a symmetric key.- Specified by:
initDecryptin classCipher- Throws:
InvalidKeyExceptionInvalidAlgorithmParameterExceptionTokenException
-
getIVFromParams
-
initEncrypt
@Deprecated public void initEncrypt(SymmetricKey key, AlgorithmParameterSpec parameters) throws InvalidKeyException, InvalidAlgorithmParameterException, TokenException Deprecated.isPadded() in EncryptionAlgorithm has been deprecatedDescription copied from class:CipherInitializes an encryption context with a symmetric key and algorithm parameters.- Specified by:
initEncryptin classCipher- Throws:
InvalidKeyExceptionInvalidAlgorithmParameterExceptionTokenException
-
initDecrypt
@Deprecated public void initDecrypt(SymmetricKey key, AlgorithmParameterSpec parameters) throws InvalidKeyException, InvalidAlgorithmParameterException, TokenException Deprecated.isPadded() in EncryptionAlgorithm has been deprecatedDescription copied from class:CipherInitializes a decryption context with a symmetric key and algorithm parameters.- Specified by:
initDecryptin classCipher- Throws:
InvalidKeyExceptionInvalidAlgorithmParameterExceptionTokenException
-
update
Description copied from class:CipherUpdates the encryption context with additional input.- Specified by:
updatein classCipher- Parameters:
bytes- Bytes of plaintext (if encrypting) or ciphertext (if decrypting).- Returns:
- Bytes of ciphertext (if encrypting) or plaintext (if decrypting).
- Throws:
IllegalStateExceptionTokenException
-
update
public byte[] update(byte[] bytes, int offset, int length) throws IllegalStateException, TokenException Description copied from class:CipherUpdates the encryption context with additional plaintext.- Specified by:
updatein classCipher- Parameters:
bytes- Bytes of plaintext (if encrypting) or ciphertext (if decrypting).offset- The index inbytesat which to begin reading.length- The number of bytes frombytesto read.- Returns:
- Bytes of ciphertext (if encrypting) or plaintext (if decrypting).
- Throws:
IllegalStateExceptionTokenException
-
doFinal
@Deprecated public byte[] doFinal(byte[] bytes) throws IllegalStateException, IllegalBlockSizeException, BadPaddingException, TokenException Deprecated.isPadded() in EncryptionAlgorithm has been deprecatedDescription copied from class:CipherCompletes an cipher operation. This can be called directly after the context is initialized, orupdatemay be called any number of times before callingfinal.- Specified by:
doFinalin classCipher- Parameters:
bytes- Bytes of plaintext (if encrypting) or ciphertext (if decrypting).- Returns:
- The last of the output.
- Throws:
IllegalStateExceptionIllegalBlockSizeExceptionBadPaddingExceptionTokenException
-
doFinal
public byte[] doFinal(byte[] bytes, int offset, int length) throws IllegalStateException, IllegalBlockSizeException, BadPaddingException, TokenException Description copied from class:CipherCompletes an cipher operation.- Specified by:
doFinalin classCipher- Parameters:
bytes- Bytes of plaintext (if encrypting) or ciphertext (if decrypting).offset- The index inbytesat which to begin reading.length- The number of bytes frombytesto read.- Returns:
- The last of the output.
- Throws:
IllegalStateExceptionIllegalBlockSizeExceptionBadPaddingExceptionTokenException
-
doFinal
@Deprecated public byte[] doFinal() throws IllegalStateException, IllegalBlockSizeException, BadPaddingException, TokenExceptionDeprecated.isPadded() in EncryptionAlgorithm has been deprecatedDescription copied from class:CipherCompletes an cipher operation.- Specified by:
doFinalin classCipher- Returns:
- The last of the output.
- Throws:
IllegalStateExceptionIllegalBlockSizeExceptionBadPaddingExceptionTokenException
-
initContext
private static CipherContextProxy initContext(boolean encrypt, SymmetricKey key, EncryptionAlgorithm alg, byte[] IV, boolean padded) throws TokenException - Throws:
TokenException
-
initContextWithKeyBits
private static CipherContextProxy initContextWithKeyBits(boolean encrypt, SymmetricKey key, EncryptionAlgorithm alg, byte[] IV, int keyBits, boolean padded) throws TokenException - Throws:
TokenException
-
updateContext
private static byte[] updateContext(CipherContextProxy context, byte[] input, int blocksize) throws TokenException - Throws:
TokenException
-
finalizeContext
private static byte[] finalizeContext(CipherContextProxy context, int blocksize, boolean padded) throws TokenException, IllegalBlockSizeException, BadPaddingException -
reset
private void reset() -
checkParams
Matches the params against those expected by the algorithm. -
checkKey
Checks for null, makes sure the key lives on the correct token, makes sure it is a PKCS #11 key, makes sure it's the right type for this algorithm.- Throws:
InvalidKeyException
-
finalize
-
close
- Specified by:
closein interfaceAutoCloseable- Throws:
Exception
-