McEliecePointchevalCipherSpi (Bouncy Castle Library 1.54 API Specification)
Date: 2015-12-29

org.bouncycastle.pqc.jcajce.provider.mceliece

## Class McEliecePointchevalCipherSpi

- java.lang.Object
- - javax.crypto.CipherSpi
  - - org.bouncycastle.pqc.jcajce.provider.util.CipherSpiExt
    - - org.bouncycastle.pqc.jcajce.provider.util.AsymmetricHybridCipher
      - - org.bouncycastle.pqc.jcajce.provider.mceliece.McEliecePointchevalCipherSpi

- All Implemented Interfaces:
    PKCSObjectIdentifiers, X509ObjectIdentifiers
  Direct Known Subclasses:
    McEliecePointchevalCipherSpi.McEliecePointcheval, McEliecePointchevalCipherSpi.McEliecePointcheval224, McEliecePointchevalCipherSpi.McEliecePointcheval256, McEliecePointchevalCipherSpi.McEliecePointcheval384, McEliecePointchevalCipherSpi.McEliecePointcheval512

      public class McEliecePointchevalCipherSpi
      extends AsymmetricHybridCipher
      implements PKCSObjectIdentifiers, X509ObjectIdentifiers

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `McEliecePointchevalCipherSpi.McEliecePointcheval`
    `static class` | `McEliecePointchevalCipherSpi.McEliecePointcheval224`
    `static class` | `McEliecePointchevalCipherSpi.McEliecePointcheval256`
    `static class` | `McEliecePointchevalCipherSpi.McEliecePointcheval384`
    `static class` | `McEliecePointchevalCipherSpi.McEliecePointcheval512`

  - ### Field Summary

    - ### Fields inherited from class org.bouncycastle.pqc.jcajce.provider.util.AsymmetricHybridCipher

      `paramSpec`

    - ### Fields inherited from class org.bouncycastle.pqc.jcajce.provider.util.CipherSpiExt

      `DECRYPT_MODE, ENCRYPT_MODE, opMode`

    - ### Fields inherited from interface org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers

      `bagtypes, canNotDecryptAny, certBag, certTypes, crlBag, crlTypes, data, des_EDE3_CBC, dhKeyAgreement, digestAlgorithm, digestedData, encryptedData, encryptionAlgorithm, envelopedData, id_aa, id_aa_cmsAlgorithmProtect, id_aa_commitmentType, id_aa_contentHint, id_aa_contentIdentifier, id_aa_contentReference, id_aa_encrypKeyPref, id_aa_ets_archiveTimestamp, id_aa_ets_certCRLTimestamp, id_aa_ets_certificateRefs, id_aa_ets_certValues, id_aa_ets_commitmentType, id_aa_ets_contentTimestamp, id_aa_ets_escTimeStamp, id_aa_ets_otherSigCert, id_aa_ets_revocationRefs, id_aa_ets_revocationValues, id_aa_ets_signerAttr, id_aa_ets_signerLocation, id_aa_ets_sigPolicyId, id_aa_msgSigDigest, id_aa_otherSigCert, id_aa_receiptRequest, id_aa_signatureTimeStampToken, id_aa_signerLocation, id_aa_signingCertificate, id_aa_signingCertificateV2, id_aa_sigPolicyId, id_alg, id_alg_CMS3DESwrap, id_alg_CMSRC2wrap, id_alg_ESDH, id_alg_PWRI_KEK, id_alg_SSDH, id_ct, id_ct_authData, id_ct_authEnvelopedData, id_ct_compressedData, id_ct_timestampedData, id_ct_TSTInfo, id_cti, id_cti_ets_proofOfApproval, id_cti_ets_proofOfCreation, id_cti_ets_proofOfDelivery, id_cti_ets_proofOfOrigin, id_cti_ets_proofOfReceipt, id_cti_ets_proofOfSender, id_hmacWithSHA1, id_hmacWithSHA224, id_hmacWithSHA256, id_hmacWithSHA384, id_hmacWithSHA512, id_mgf1, id_PBES2, id_PBKDF2, id_pSpecified, id_rsa_KEM, id_RSAES_OAEP, id_RSASSA_PSS, id_smime, id_spq, id_spq_ets_unotice, id_spq_ets_uri, keyBag, md2, md2WithRSAEncryption, md4, md4WithRSAEncryption, md5, md5WithRSAEncryption, pbeWithMD2AndDES_CBC, pbeWithMD2AndRC2_CBC, pbeWithMD5AndDES_CBC, pbeWithMD5AndRC2_CBC, pbeWithSHA1AndDES_CBC, pbeWithSHA1AndRC2_CBC, pbeWithSHAAnd128BitRC2_CBC, pbeWithSHAAnd128BitRC4, pbeWithSHAAnd2_KeyTripleDES_CBC, pbeWithSHAAnd3_KeyTripleDES_CBC, pbewithSHAAnd40BitRC2_CBC, pbeWithSHAAnd40BitRC2_CBC, pbeWithSHAAnd40BitRC4, pkcs_1, pkcs_12, pkcs_12PbeIds, pkcs_3, pkcs_5, pkcs_7, pkcs_9, pkcs_9_at_challengePassword, pkcs_9_at_contentType, pkcs_9_at_counterSignature, pkcs_9_at_emailAddress, pkcs_9_at_extendedCertificateAttributes, pkcs_9_at_extensionRequest, pkcs_9_at_friendlyName, pkcs_9_at_localKeyId, pkcs_9_at_messageDigest, pkcs_9_at_signingDescription, pkcs_9_at_signingTime, pkcs_9_at_smimeCapabilities, pkcs_9_at_unstructuredAddress, pkcs_9_at_unstructuredName, pkcs8ShroudedKeyBag, preferSignedData, RC2_CBC, rc4, rsaEncryption, safeContentsBag, sdsiCertificate, secretBag, sha1WithRSAEncryption, sha224WithRSAEncryption, sha256WithRSAEncryption, sha384WithRSAEncryption, sha512WithRSAEncryption, signedAndEnvelopedData, signedData, sMIMECapabilitiesVersions, srsaOAEPEncryptionSET, x509Certificate, x509certType, x509Crl`

    - ### Fields inherited from interface org.bouncycastle.asn1.x509.X509ObjectIdentifiers

      `commonName, countryName, crlAccessMethod, id_ad, id_ad_caIssuers, id_ad_ocsp, id_at_name, id_at_telephoneNumber, id_ce, id_ea_rsa, id_pe, id_pkix, id_SHA1, localityName, ocspAccessMethod, organization, organizationalUnitName, ripemd160, ripemd160WithRSAEncryption, stateOrProvinceName`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `McEliecePointchevalCipherSpi(Digest digest, McEliecePointchevalCipher cipher)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected int` | `decryptOutputSize(int inLen)` Compute the output size of an update() or doFinal() operation of a hybrid asymmetric cipher in decryption mode when given input of the specified length.
    `byte[]` | `doFinal(byte[] input, int inOff, int inLen)` Encrypts or decrypts data in a single-part operation, or finishes a multiple-part operation.
    `protected int` | `encryptOutputSize(int inLen)` Compute the output size of an update() or doFinal() operation of a hybrid asymmetric cipher in encryption mode when given input of the specified length.
    `int` | `getKeySize(java.security.Key key)` Return the key size of the given key object in bits.
    `java.lang.String` | `getName()`
    `protected void` | `initCipherDecrypt(java.security.Key key, java.security.spec.AlgorithmParameterSpec params)` Initialize the AsymmetricHybridCipher with a certain key for data encryption.
    `protected void` | `initCipherEncrypt(java.security.Key key, java.security.spec.AlgorithmParameterSpec params, java.security.SecureRandom sr)` Initialize the AsymmetricHybridCipher with a certain key for data encryption.
    `byte[]` | `messageDecrypt(byte[] input)`
    `byte[]` | `messageEncrypt(byte[] input)`
    `byte[]` | `update(byte[] input, int inOff, int inLen)` Continue a multiple-part encryption or decryption operation.

    - ### Methods inherited from class org.bouncycastle.pqc.jcajce.provider.util.AsymmetricHybridCipher

      `doFinal, getBlockSize, getIV, getOutputSize, getParameters, initDecrypt, initDecrypt, initEncrypt, initEncrypt, initEncrypt, initEncrypt, setMode, setPadding, update`

    - ### Methods inherited from class org.bouncycastle.pqc.jcajce.provider.util.CipherSpiExt

      `doFinal, doFinal, engineDoFinal, engineDoFinal, engineGetBlockSize, engineGetIV, engineGetKeySize, engineGetOutputSize, engineGetParameters, engineInit, engineInit, engineInit, engineSetMode, engineSetPadding, engineUpdate, engineUpdate, update`

    - ### Methods inherited from class javax.crypto.CipherSpi

      `engineDoFinal, engineUnwrap, engineUpdate, engineUpdateAAD, engineUpdateAAD, engineWrap`

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

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

- - ### Constructor Detail

    - #### McEliecePointchevalCipherSpi

          protected McEliecePointchevalCipherSpi(Digest digest,
                                      McEliecePointchevalCipher cipher)

  - ### Method Detail

    - #### update

          public byte[] update(byte[] input,
                      int inOff,
                      int inLen)

      Continue a multiple-part encryption or decryption operation.
      Specified by:
        `update` in class `AsymmetricHybridCipher`
      Parameters:
        `input` - byte array containing the next part of the input
        `inOff` - index in the array where the input starts
        `inLen` - length of the input
      Returns:
        the processed byte array.

    - #### doFinal

          public byte[] doFinal(byte[] input,
                       int inOff,
                       int inLen)
                         throws javax.crypto.BadPaddingException

      Encrypts or decrypts data in a single-part operation, or finishes a multiple-part operation. The data is encrypted or decrypted, depending on how this cipher was initialized.
      Specified by:
        `doFinal` in class `AsymmetricHybridCipher`
      Parameters:
        `input` - the input buffer
        `inOff` - the offset in input where the input starts
        `inLen` - the input length
      Returns:
        the new buffer with the result
      Throws:
        `javax.crypto.BadPaddingException` - on deryption errors.

    - #### encryptOutputSize

          protected int encryptOutputSize(int inLen)

      Description copied from class: `AsymmetricHybridCipher`
      Compute the output size of an update() or doFinal() operation of a hybrid asymmetric cipher in encryption mode when given input of the specified length.
      Specified by:
        `encryptOutputSize` in class `AsymmetricHybridCipher`
      Parameters:
        `inLen` - the length of the input
      Returns:
        the output size

    - #### decryptOutputSize

          protected int decryptOutputSize(int inLen)

      Description copied from class: `AsymmetricHybridCipher`
      Compute the output size of an update() or doFinal() operation of a hybrid asymmetric cipher in decryption mode when given input of the specified length.
      Specified by:
        `decryptOutputSize` in class `AsymmetricHybridCipher`
      Parameters:
        `inLen` - the length of the input
      Returns:
        the output size

    - #### initCipherEncrypt

          protected void initCipherEncrypt(java.security.Key key,
                               java.security.spec.AlgorithmParameterSpec params,
                               java.security.SecureRandom sr)
                                    throws java.security.InvalidKeyException,
                                           java.security.InvalidAlgorithmParameterException

      Description copied from class: `AsymmetricHybridCipher`
      Initialize the AsymmetricHybridCipher with a certain key for data encryption.
      Specified by:
        `initCipherEncrypt` in class `AsymmetricHybridCipher`
      Parameters:
        `key` - the key which has to be used to encrypt data
        `params` - the algorithm parameters
        `sr` - the source of randomness
      Throws:
        `java.security.InvalidKeyException` - if the given key is inappropriate for initializing this cipher.
        `java.security.InvalidAlgorithmParameterException` - if the given parameters are inappropriate for initializing this cipher.

    - #### initCipherDecrypt

          protected void initCipherDecrypt(java.security.Key key,
                               java.security.spec.AlgorithmParameterSpec params)
                                    throws java.security.InvalidKeyException,
                                           java.security.InvalidAlgorithmParameterException

      Description copied from class: `AsymmetricHybridCipher`
      Initialize the AsymmetricHybridCipher with a certain key for data encryption.
      Specified by:
        `initCipherDecrypt` in class `AsymmetricHybridCipher`
      Parameters:
        `key` - the key which has to be used to decrypt data
        `params` - the algorithm parameters
      Throws:
        `java.security.InvalidKeyException` - if the given key is inappropriate for initializing this cipher
        `java.security.InvalidAlgorithmParameterException` - if the given parameters are inappropriate for initializing this cipher.

    - #### getName

          public java.lang.String getName()

      Specified by:
        `getName` in class `CipherSpiExt`
      Returns:
        the name of this cipher

    - #### getKeySize

          public int getKeySize(java.security.Key key)
                         throws java.security.InvalidKeyException

      Description copied from class: `CipherSpiExt`
      Return the key size of the given key object in bits.
      Specified by:
        `getKeySize` in class `CipherSpiExt`
      Parameters:
        `key` - the key object
      Returns:
        the key size in bits of the given key object
      Throws:
        `java.security.InvalidKeyException` - if key is invalid.

    - #### messageEncrypt

          public byte[] messageEncrypt(byte[] input)
                                throws javax.crypto.IllegalBlockSizeException,
                                       javax.crypto.BadPaddingException,
                                       java.security.NoSuchAlgorithmException

      Throws:
        `javax.crypto.IllegalBlockSizeException`
        `javax.crypto.BadPaddingException`
        `java.security.NoSuchAlgorithmException`

    - #### messageDecrypt

          public byte[] messageDecrypt(byte[] input)
                                throws javax.crypto.IllegalBlockSizeException,
                                       javax.crypto.BadPaddingException,
                                       java.security.NoSuchAlgorithmException

      Throws:
        `javax.crypto.IllegalBlockSizeException`
        `javax.crypto.BadPaddingException`
        `java.security.NoSuchAlgorithmException`