Class McEliecePKCSCipherSpi
- java.lang.Object
-
- javax.crypto.CipherSpi
-
- org.bouncycastle.pqc.jcajce.provider.util.CipherSpiExt
-
- org.bouncycastle.pqc.jcajce.provider.util.AsymmetricBlockCipher
-
- org.bouncycastle.pqc.jcajce.provider.mceliece.McEliecePKCSCipherSpi
-
- All Implemented Interfaces:
PKCSObjectIdentifiers
,X509ObjectIdentifiers
- Direct Known Subclasses:
McEliecePKCSCipherSpi.McEliecePKCS
public class McEliecePKCSCipherSpi extends AsymmetricBlockCipher implements PKCSObjectIdentifiers, X509ObjectIdentifiers
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
McEliecePKCSCipherSpi.McEliecePKCS
-
Field Summary
-
Fields inherited from class org.bouncycastle.pqc.jcajce.provider.util.AsymmetricBlockCipher
buf, cipherTextSize, maxPlainTextSize, 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_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, sha512_224WithRSAEncryption, sha512_256WithRSAEncryption, 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_organizationIdentifier, id_at_telephoneNumber, id_ce, id_ea_rsa, id_ecdsa_with_shake128, id_ecdsa_with_shake256, id_pe, id_pkix, id_rsassa_pss_shake128, id_rsassa_pss_shake256, id_SHA1, localityName, ocspAccessMethod, organization, organizationalUnitName, ripemd160, ripemd160WithRSAEncryption, stateOrProvinceName
-
-
Constructor Summary
Constructors Constructor Description McEliecePKCSCipherSpi(McElieceCipher cipher)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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 AsymmetricBlockCipher 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 AsymmetricBlockCipher with a certain key for data encryption.protected byte[]
messageDecrypt(byte[] input)
Decrypt the ciphertext stored in input.protected byte[]
messageEncrypt(byte[] input)
Encrypt the message stored in input.-
Methods inherited from class org.bouncycastle.pqc.jcajce.provider.util.AsymmetricBlockCipher
checkLength, doFinal, doFinal, getBlockSize, getIV, getOutputSize, getParameters, initDecrypt, initDecrypt, initEncrypt, initEncrypt, initEncrypt, initEncrypt, setMode, setPadding, update, 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
-
-
-
-
Constructor Detail
-
McEliecePKCSCipherSpi
public McEliecePKCSCipherSpi(McElieceCipher cipher)
-
-
Method Detail
-
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:AsymmetricBlockCipher
Initialize the AsymmetricBlockCipher with a certain key for data encryption.- Specified by:
initCipherEncrypt
in classAsymmetricBlockCipher
- Parameters:
key
- the key which has to be used to encrypt dataparams
- the algorithm parameterssr
- 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:AsymmetricBlockCipher
Initialize the AsymmetricBlockCipher with a certain key for data encryption.- Specified by:
initCipherDecrypt
in classAsymmetricBlockCipher
- Parameters:
key
- the key which has to be used to decrypt dataparams
- the algorithm parameters- Throws:
java.security.InvalidKeyException
- if the given key is inappropriate for initializing this cipherjava.security.InvalidAlgorithmParameterException
- if the given parameters are inappropriate for initializing this cipher.
-
messageEncrypt
protected byte[] messageEncrypt(byte[] input) throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
Description copied from class:AsymmetricBlockCipher
Encrypt the message stored in input. The method should also perform an additional length check.- Specified by:
messageEncrypt
in classAsymmetricBlockCipher
- Parameters:
input
- the message to be encrypted (usually the message length is less than or equal to maxPlainTextSize)- Returns:
- the encrypted message (it has length equal to maxCipherTextSize_)
- Throws:
javax.crypto.IllegalBlockSizeException
- if the input is inappropriate for this cipher.javax.crypto.BadPaddingException
- if the input format is invalid.
-
messageDecrypt
protected byte[] messageDecrypt(byte[] input) throws javax.crypto.IllegalBlockSizeException, javax.crypto.BadPaddingException
Description copied from class:AsymmetricBlockCipher
Decrypt the ciphertext stored in input. The method should also perform an additional length check.- Specified by:
messageDecrypt
in classAsymmetricBlockCipher
- Parameters:
input
- the ciphertext to be decrypted (the ciphertext length is less than or equal to maxCipherTextSize)- Returns:
- the decrypted message
- Throws:
javax.crypto.IllegalBlockSizeException
- if the input is inappropriate for this cipher.javax.crypto.BadPaddingException
- if the input format is invalid.
-
getName
public java.lang.String getName()
- Specified by:
getName
in classCipherSpiExt
- 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 classCipherSpiExt
- Parameters:
key
- the key object- Returns:
- the key size in bits of the given key object
- Throws:
java.security.InvalidKeyException
- if key is invalid.
-
-