Overview | Package | Class | Tree | Deprecated | Index | Help
| JSS 3.1.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.mozilla.jss.crypto
Class Cipher

    java.lang.Object
      |
      +--org.mozilla.jss.crypto.Cipher

Direct Known Subclasses:
  PK11Cipher

public abstract class Cipher
extends java.lang.Object

A context for performing symmetric encryption and decryption. First, the context must be initialized. Then, it can be updated with input through zero or more calls to `update`. Finally, `doFinal` is called to finalize the operation. Note that it is not necessary to call `update` if all of the data is available at once. In this case, all of the input can be processed with one call to `doFinal`.

Constructor Summary
`Cipher()`

Method Summary
`abstract byte[]` | `doFinal()` Completes an cipher operation.
`abstract byte[]` | `doFinal(byte[] bytes)` Completes an cipher operation.
`abstract byte[]` | `doFinal(byte[] bytes, int offset, int length)` Completes an cipher operation.
`abstract void` | `initDecrypt(SymmetricKey key)` Initializes a decryption context with a symmetric key.
`abstract void` | `initDecrypt(SymmetricKey key, java.security.spec.AlgorithmParameterSpec parameters)` Initializes a decryption context with a symmetric key and algorithm parameters.
`abstract void` | `initEncrypt(SymmetricKey key)` Initializes a encryption context with a symmetric key.
`abstract void` | `initEncrypt(SymmetricKey key, java.security.spec.AlgorithmParameterSpec parameters)` Initializes an encryption context with a symmetric key and algorithm parameters.
`static byte[]` | `pad(byte[] toBePadded, int blockSize)` Pads a byte array so that its length is a multiple of the given blocksize.
`static byte[]` | `unPad(byte[] padded)` Un-pads a byte array that is padded with PKCS padding.
`static byte[]` | `unPad(byte[] padded, int blockSize)` Un-pads a byte array that is padded with PKCS padding.
`abstract byte[]` | `update(byte[] bytes)` Updates the encryption context with additional input.
`abstract byte[]` | `update(byte[] bytes, int offset, int length)` Updates the encryption context with additional plaintext.

Methods inherited from class java.lang.Object
`, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait`

Constructor Detail

### Cipher

    public Cipher()

Method Detail

### initEncrypt

    public abstract void initEncrypt(SymmetricKey key)
                              throws java.security.InvalidKeyException,
                                     java.security.InvalidAlgorithmParameterException,
                                     TokenException

  Initializes a encryption context with a symmetric key.

### initDecrypt

    public abstract void initDecrypt(SymmetricKey key)
                              throws java.security.InvalidKeyException,
                                     java.security.InvalidAlgorithmParameterException,
                                     TokenException

  Initializes a decryption context with a symmetric key.

### initEncrypt

    public abstract void initEncrypt(SymmetricKey key,
                                     java.security.spec.AlgorithmParameterSpec parameters)
                              throws java.security.InvalidKeyException,
                                     java.security.InvalidAlgorithmParameterException,
                                     TokenException

  Initializes an encryption context with a symmetric key and algorithm parameters.

### initDecrypt

    public abstract void initDecrypt(SymmetricKey key,
                                     java.security.spec.AlgorithmParameterSpec parameters)
                              throws java.security.InvalidKeyException,
                                     java.security.InvalidAlgorithmParameterException,
                                     TokenException

  Initializes a decryption context with a symmetric key and algorithm parameters.

### update

    public abstract byte[] update(byte[] bytes)
                           throws java.lang.IllegalStateException,
                                  TokenException

  Updates the encryption context with additional input.
  Parameters:
    `bytes` - Bytes of plaintext (if encrypting) or ciphertext (if decrypting).
  Returns:
    Bytes of ciphertext (if encrypting) or plaintext (if decrypting).

### update

    public abstract byte[] update(byte[] bytes,
                                  int offset,
                                  int length)
                           throws java.lang.IllegalStateException,
                                  TokenException

  Updates the encryption context with additional plaintext.
  Parameters:
    `bytes` - Bytes of plaintext (if encrypting) or ciphertext (if decrypting).
    `offset` - The index in `bytes` at which to begin reading.
    `length` - The number of bytes from `bytes` to read.
  Returns:
    Bytes of ciphertext (if encrypting) or plaintext (if decrypting).

### doFinal

    public abstract byte[] doFinal(byte[] bytes)
                            throws java.lang.IllegalStateException,
                                   IllegalBlockSizeException,
                                   BadPaddingException,
                                   TokenException

  Completes an cipher operation. This can be called directly after the context is initialized, or `update` may be called any number of times before calling `final`.
  Parameters:
    `bytes` - Bytes of plaintext (if encrypting) or ciphertext (if decrypting).
  Returns:
    The last of the output.

### doFinal

    public abstract byte[] doFinal(byte[] bytes,
                                   int offset,
                                   int length)
                            throws java.lang.IllegalStateException,
                                   IllegalBlockSizeException,
                                   BadPaddingException,
                                   TokenException

  Completes an cipher operation.
  Parameters:
    `bytes` - Bytes of plaintext (if encrypting) or ciphertext (if decrypting).
    `offset` - The index in `bytes` at which to begin reading.
    `length` - The number of bytes from `bytes` to read.
  Returns:
    The last of the output.

### doFinal

    public abstract byte[] doFinal()
                            throws java.lang.IllegalStateException,
                                   IllegalBlockSizeException,
                                   BadPaddingException,
                                   TokenException

  Completes an cipher operation.
  Returns:
    The last of the output.

### pad

    public static byte[] pad(byte[] toBePadded,
                             int blockSize)

  Pads a byte array so that its length is a multiple of the given blocksize. The method of padding is the one defined in the RSA PKCS standards. If M is the length of the data and B is the block size, the padding string consists of B - (M mod B) octets, each having the value B - (M mod B).
  Parameters:
    `The` - block size of the encryption algorithm. Must be greater than zero.
  See Also:
    `unPad(byte[], int)`

### unPad

    public static byte[] unPad(byte[] padded,
                               int blockSize)
                        throws BadPaddingException

  Un-pads a byte array that is padded with PKCS padding.
  Parameters:
    `blockSize` - The block size of the encryption algorithm. This is only used for error checking: if the pad size is not between 1 and blockSize, a BadPaddingException is thrown.
  See Also:
    `pad(byte[], int)`

### unPad

    public static byte[] unPad(byte[] padded)
                        throws BadPaddingException

  Un-pads a byte array that is padded with PKCS padding. Since this version does not take block size as a parameter, it cannot error check.
  See Also:
    `pad(byte[], int)`

Overview | Package | Class | Tree | Deprecated | Index | Help
| JSS 3.1.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD