Class McElieceFujisakiCipherSpi
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.McElieceFujisakiCipherSpi
- All Implemented Interfaces:
PKCSObjectIdentifiers
,X509ObjectIdentifiers
- Direct Known Subclasses:
McElieceFujisakiCipherSpi.McElieceFujisaki
public class McElieceFujisakiCipherSpi
extends AsymmetricHybridCipher
implements PKCSObjectIdentifiers, X509ObjectIdentifiers
-
Nested Class Summary
-
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_asymmDecryptKeyID, id_aa_cmsAlgorithmProtect, id_aa_commitmentType, id_aa_communityIdentifiers, id_aa_contentHint, id_aa_contentIdentifier, id_aa_contentReference, id_aa_decryptKeyID, 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_implCompressAlgs, id_aa_implCryptoAlgs, 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_AEADChaCha20Poly1305, id_alg_CMS3DESwrap, id_alg_CMSRC2wrap, id_alg_ESDH, id_alg_hkdf_with_sha256, id_alg_hkdf_with_sha384, id_alg_hkdf_with_sha512, id_alg_hss_lms_hashsig, id_alg_PWRI_KEK, id_alg_SSDH, id_alg_zlibCompress, 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_hmacWithSHA512_224, id_hmacWithSHA512_256, id_mgf1, id_PBES2, id_PBKDF2, id_PBMAC1, id_pSpecified, id_rsa_KEM, id_RSAES_OAEP, id_RSASSA_PSS, id_smime, id_spq, id_spq_ets_unotice, id_spq_ets_uri, id_spq_oid, 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_binarySigningTime, 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, sha512_224WithRSAEncryption, sha512_256WithRSAEncryption, sha512WithRSAEncryption, signedAndEnvelopedData, signedData, smime_alg, sMIMECapabilitiesVersions, srsaOAEPEncryptionSET, x509Certificate, x509certType, x509Crl
Fields inherited from interface org.bouncycastle.asn1.x509.X509ObjectIdentifiers
attributeType, commonName, countryName, crlAccessMethod, id_ad, id_ad_caIssuers, id_ad_ocsp, id_at_name, id_at_organizationIdentifier, id_at_telephoneNumber, id_ce, id_ea_rsa, id_ecdsa_with_shake128, id_ecdsa_with_shake256, id_PasswordBasedMac, id_pda, id_pe, id_pkix, id_rsassa_pss_shake128, id_rsassa_pss_shake256, id_SHA1, localityName, ocspAccessMethod, organization, organizationalUnitName, pkix_algorithms, ripemd160, ripemd160WithRSAEncryption, stateOrProvinceName
-
Constructor Summary
ModifierConstructorDescriptionprotected
McElieceFujisakiCipherSpi
(Digest digest, McElieceFujisakiCipher cipher) -
Method Summary
Modifier and TypeMethodDescriptionprotected 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
(Key key) Return the key size of the given key object in bits.getName()
protected void
initCipherDecrypt
(Key key, AlgorithmParameterSpec params) Initialize the AsymmetricHybridCipher with a certain key for data encryption.protected void
initCipherEncrypt
(Key key, AlgorithmParameterSpec params, SecureRandom sr) Initialize the AsymmetricHybridCipher with a certain key for data encryption.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
-
Constructor Details
-
McElieceFujisakiCipherSpi
-
-
Method Details
-
update
public byte[] update(byte[] input, int inOff, int inLen) Continue a multiple-part encryption or decryption operation.- Specified by:
update
in classAsymmetricHybridCipher
- Parameters:
input
- byte array containing the next part of the inputinOff
- index in the array where the input startsinLen
- length of the input- Returns:
- the processed byte array.
-
doFinal
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 classAsymmetricHybridCipher
- Parameters:
input
- the input bufferinOff
- the offset in input where the input startsinLen
- the input length- Returns:
- the new buffer with the result
- Throws:
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 classAsymmetricHybridCipher
- 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 classAsymmetricHybridCipher
- Parameters:
inLen
- the length of the input- Returns:
- the output size
-
initCipherEncrypt
protected void initCipherEncrypt(Key key, AlgorithmParameterSpec params, SecureRandom sr) throws InvalidKeyException, InvalidAlgorithmParameterException Description copied from class:AsymmetricHybridCipher
Initialize the AsymmetricHybridCipher with a certain key for data encryption.- Specified by:
initCipherEncrypt
in classAsymmetricHybridCipher
- Parameters:
key
- the key which has to be used to encrypt dataparams
- the algorithm parameterssr
- the source of randomness- Throws:
InvalidKeyException
- if the given key is inappropriate for initializing this cipher.InvalidAlgorithmParameterException
- if the given parameters are inappropriate for initializing this cipher.
-
initCipherDecrypt
protected void initCipherDecrypt(Key key, AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException Description copied from class:AsymmetricHybridCipher
Initialize the AsymmetricHybridCipher with a certain key for data encryption.- Specified by:
initCipherDecrypt
in classAsymmetricHybridCipher
- Parameters:
key
- the key which has to be used to decrypt dataparams
- the algorithm parameters- Throws:
InvalidKeyException
- if the given key is inappropriate for initializing this cipherInvalidAlgorithmParameterException
- if the given parameters are inappropriate for initializing this cipher.
-
getName
- Specified by:
getName
in classCipherSpiExt
- Returns:
- the name of this cipher
-
getKeySize
Description copied from class:CipherSpiExt
Return the key size of the given key object in bits.- Specified by:
getKeySize
in classCipherSpiExt
- Parameters:
key
- the key object- Returns:
- the key size in bits of the given key object
- Throws:
InvalidKeyException
- if key is invalid.
-