Class McElieceKobaraImaiCipher

java.lang.Object
org.bouncycastle.pqc.legacy.crypto.mceliece.McElieceKobaraImaiCipher
All Implemented Interfaces:
MessageEncryptor

public class McElieceKobaraImaiCipher extends Object implements MessageEncryptor
This class implements the Kobara/Imai conversion of the McEliecePKCS. This is a conversion of the McEliecePKCS which is CCA2-secure. For details, see D. Engelbert, R. Overbeck, A. Schmidt, "A Summary of McEliece-Type Cryptosystems and their Security", technical report. https://www.degruyter.com/document/doi/10.1515/JMC.2007.009/html
  • Field Details

    • OID

      public static final String OID
      The OID of the algorithm.
      See Also:
    • PUBLIC_CONSTANT

      public static final byte[] PUBLIC_CONSTANT
      A predetermined public constant.
  • Constructor Details

    • McElieceKobaraImaiCipher

      public McElieceKobaraImaiCipher()
  • Method Details

    • init

      public void init(boolean forEncryption, CipherParameters param)
      Specified by:
      init in interface MessageEncryptor
      Parameters:
      forEncryption - true if we are encrypting a signature, false otherwise.
      param - key parameters for encryption or decryption.
    • getKeySize

      public int getKeySize(McElieceCCA2KeyParameters key)
      Return the key size of the given key object.
      Parameters:
      key - the McElieceCCA2KeyParameters object
      Returns:
      the key size of the given key object
    • messageEncrypt

      public byte[] messageEncrypt(byte[] input)
      Specified by:
      messageEncrypt in interface MessageEncryptor
      Parameters:
      input - the message to be signed.
    • messageDecrypt

      public byte[] messageDecrypt(byte[] input) throws InvalidCipherTextException
      Specified by:
      messageDecrypt in interface MessageEncryptor
      Parameters:
      input - the cipher text of the message
      Throws:
      InvalidCipherTextException