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 classMcEliecePKCSCipherSpi.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 intgetKeySize(java.security.Key key)Return the key size of the given key object in bits.java.lang.StringgetName()protected voidinitCipherDecrypt(java.security.Key key, java.security.spec.AlgorithmParameterSpec params)Initialize the AsymmetricBlockCipher with a certain key for data encryption.protected voidinitCipherEncrypt(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.InvalidAlgorithmParameterExceptionDescription copied from class:AsymmetricBlockCipherInitialize the AsymmetricBlockCipher with a certain key for data encryption.- Specified by:
initCipherEncryptin 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.InvalidAlgorithmParameterExceptionDescription copied from class:AsymmetricBlockCipherInitialize the AsymmetricBlockCipher with a certain key for data encryption.- Specified by:
initCipherDecryptin 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.BadPaddingExceptionDescription copied from class:AsymmetricBlockCipherEncrypt the message stored in input. The method should also perform an additional length check.- Specified by:
messageEncryptin 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.BadPaddingExceptionDescription copied from class:AsymmetricBlockCipherDecrypt the ciphertext stored in input. The method should also perform an additional length check.- Specified by:
messageDecryptin 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:
getNamein classCipherSpiExt- Returns:
- the name of this cipher
-
getKeySize
public int getKeySize(java.security.Key key) throws java.security.InvalidKeyExceptionDescription copied from class:CipherSpiExtReturn the key size of the given key object in bits.- Specified by:
getKeySizein 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.
-
-