Class PKCS1Encoding

java.lang.Object
org.bouncycastle.crypto.encodings.PKCS1Encoding
All Implemented Interfaces:
AsymmetricBlockCipher

public class PKCS1Encoding extends Object implements AsymmetricBlockCipher
this does your basic PKCS 1 v1.5 padding - whether or not you should be using this depends on your application - see PKCS1 Version 2 for details.
  • Field Details

    • STRICT_LENGTH_ENABLED_PROPERTY

      public static final String STRICT_LENGTH_ENABLED_PROPERTY
      Deprecated.
      use NOT_STRICT_LENGTH_ENABLED_PROPERTY
      See Also:
    • NOT_STRICT_LENGTH_ENABLED_PROPERTY

      public static final String NOT_STRICT_LENGTH_ENABLED_PROPERTY
      some providers fail to include the leading zero in PKCS1 encoded blocks. If you need to work with one of these set the system property org.bouncycastle.pkcs1.not_strict to true.

      The system property is checked during construction of the encoding object, it is set to false by default.

      See Also:
  • Constructor Details

    • PKCS1Encoding

      public PKCS1Encoding(AsymmetricBlockCipher cipher)
      Basic constructor.
      Parameters:
      cipher -
    • PKCS1Encoding

      public PKCS1Encoding(AsymmetricBlockCipher cipher, int pLen)
      Constructor for decryption with a fixed plaintext length.
      Parameters:
      cipher - The cipher to use for cryptographic operation.
      pLen - Length of the expected plaintext.
    • PKCS1Encoding

      public PKCS1Encoding(AsymmetricBlockCipher cipher, byte[] fallback)
      Constructor for decryption with a fixed plaintext length and a fallback value that is returned, if the padding is incorrect.
      Parameters:
      cipher - The cipher to use for cryptographic operation.
      fallback - The fallback value, we don't do an arraycopy here.
  • Method Details

    • getUnderlyingCipher

      public AsymmetricBlockCipher getUnderlyingCipher()
    • init

      public void init(boolean forEncryption, CipherParameters param)
      Description copied from interface: AsymmetricBlockCipher
      initialise the cipher.
      Specified by:
      init in interface AsymmetricBlockCipher
      Parameters:
      forEncryption - if true the cipher is initialised for encryption, if false for decryption.
      param - the key and other data required by the cipher.
    • getInputBlockSize

      public int getInputBlockSize()
      Description copied from interface: AsymmetricBlockCipher
      returns the largest size an input block can be.
      Specified by:
      getInputBlockSize in interface AsymmetricBlockCipher
      Returns:
      maximum size for an input block.
    • getOutputBlockSize

      public int getOutputBlockSize()
      Description copied from interface: AsymmetricBlockCipher
      returns the maximum size of the block produced by this cipher.
      Specified by:
      getOutputBlockSize in interface AsymmetricBlockCipher
      Returns:
      maximum size of the output block produced by the cipher.
    • processBlock

      public byte[] processBlock(byte[] in, int inOff, int inLen) throws InvalidCipherTextException
      Description copied from interface: AsymmetricBlockCipher
      process the block of len bytes stored in in from offset inOff.
      Specified by:
      processBlock in interface AsymmetricBlockCipher
      Parameters:
      in - the input data
      inOff - offset into the in array where the data starts
      inLen - the length of the block to be processed.
      Returns:
      the resulting byte array of the encryption/decryption process.
      Throws:
      InvalidCipherTextException - data decrypts improperly.