Package org.apache.synapse.securevault

# Class BaseCipher

java.lang.Object
org.apache.synapse.securevault.BaseCipher

All Implemented Interfaces:
  `DecryptionProvider`, `EncryptionProvider`

Direct Known Subclasses:
  `AsymmetricCipher`, `SymmetricCipher`

public abstract class BaseCipher extends Object implements EncryptionProvider, DecryptionProvider
Wraps the cipher and expose abstraction need for synapse ciphering

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected KeyStoreWrapper`
  `keyStoreWrapper`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `BaseCipher(CipherInformation cipherInformation, Key key)`
  `protected`
  `BaseCipher(CipherInformation cipherInformation, KeyStoreInformation keystoreInformation)`
  `protected`
  `BaseCipher(CipherInformation cipherInformation, KeyStoreWrapper keyStoreWrapper)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `byte[]`
  `decrypt(byte[] cipherText)`
  Decrypts input cipher bytes
  `byte[]`
  `encrypt(byte[] plainText)`
  Encrypts a plain text
  `CipherInformation`
  `getCipherInformation()`
  `abstract Key`
  `getKey(CipherOperationMode operationMode)`
  Returns the correct key for correct operation
  `KeyStoreInformation`
  `getKeyStoreInformation()`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### keyStoreWrapper

    protected KeyStoreWrapper keyStoreWrapper

- ## Constructor Details

  - ### BaseCipher

    protected BaseCipher(CipherInformation cipherInformation, KeyStoreInformation keystoreInformation)

  - ### BaseCipher

    protected BaseCipher(CipherInformation cipherInformation, KeyStoreWrapper keyStoreWrapper)

  - ### BaseCipher

    protected BaseCipher(CipherInformation cipherInformation, Key key)

- ## Method Details

  - ### getCipherInformation

    public CipherInformation getCipherInformation()

  - ### getKeyStoreInformation

    public KeyStoreInformation getKeyStoreInformation()

  - ### getKey

    public abstract Key getKey(CipherOperationMode operationMode)
    Returns the correct key for correct operation
    Parameters:
      `operationMode` - Ciper operation
    Returns:
      A key

  - ### encrypt

    public byte[] encrypt(byte[] plainText)
    Description copied from interface: `EncryptionProvider`
    Encrypts a plain text
    Specified by:
      `encrypt` in interface `EncryptionProvider`
    Parameters:
      `plainText` - as a byte array
    Returns:
      cipher text as a byte array

  - ### decrypt

    public byte[] decrypt(byte[] cipherText)
    Description copied from interface: `DecryptionProvider`
    Decrypts input cipher bytes
    Specified by:
      `decrypt` in interface `DecryptionProvider`
    Parameters:
      `cipherText` - as a byte array
    Returns:
      plain text as byte array