Class PKCS12KeyStoreSpi
java.lang.Object
java.security.KeyStoreSpi
org.bouncycastle.jcajce.provider.keystore.pkcs12.PKCS12KeyStoreSpi
- All Implemented Interfaces:
PKCSObjectIdentifiers,X509ObjectIdentifiers,BCKeyStore
public class PKCS12KeyStoreSpi
extends KeyStoreSpi
implements PKCSObjectIdentifiers, X509ObjectIdentifiers, BCKeyStore
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classstatic classstatic classstatic classstatic classstatic classstatic class -
Field Summary
FieldsFields 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, x509CrlFields 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
ConstructorsConstructorDescriptionPKCS12KeyStoreSpi(JcaJceHelper helper, ASN1ObjectIdentifier keyAlgorithm, ASN1ObjectIdentifier certAlgorithm) -
Method Summary
Modifier and TypeMethodDescriptionprotected byte[]cryptData(boolean forEncryption, AlgorithmIdentifier algId, char[] password, boolean wrongPKCS12Zero, byte[] data) booleanengineContainsAlias(String alias) voidengineDeleteEntry(String alias) this is not quite complete - we should follow up on the chain, a bit tricky if a certificate appears in more than one chain... the store method now prunes out unused certificates from the chain map if they are present.engineGetCertificate(String alias) simply return the cert for the private keyengineGetCertificateChain(String alias) engineGetCreationDate(String alias) engineGetKey(String alias, char[] password) booleanengineIsCertificateEntry(String alias) booleanengineIsKeyEntry(String alias) voidengineLoad(InputStream stream, char[] password) voidengineLoad(KeyStore.LoadStoreParameter loadStoreParameter) booleanengineProbe(InputStream stream) voidengineSetCertificateEntry(String alias, Certificate cert) voidengineSetKeyEntry(String alias, byte[] key, Certificate[] chain) voidengineSetKeyEntry(String alias, Key key, char[] password, Certificate[] chain) intvoidengineStore(OutputStream stream, char[] password) voidvoidsetRandom(SecureRandom rand) set the random source for the key storeprotected PrivateKeyunwrapKey(AlgorithmIdentifier algId, byte[] data, char[] password, boolean wrongPKCS12Zero) protected byte[]wrapKey(String algorithm, Key key, PKCS12PBEParams pbeParams, char[] password) protected byte[]wrapKey(EncryptionScheme encAlgId, Key key, PBKDF2Params pbeParams, char[] password) Methods inherited from class java.security.KeyStoreSpi
engineEntryInstanceOf, engineGetEntry, engineSetEntry
-
Field Details
-
random
-
-
Constructor Details
-
PKCS12KeyStoreSpi
public PKCS12KeyStoreSpi(JcaJceHelper helper, ASN1ObjectIdentifier keyAlgorithm, ASN1ObjectIdentifier certAlgorithm)
-
-
Method Details
-
setRandom
Description copied from interface:BCKeyStoreset the random source for the key store- Specified by:
setRandomin interfaceBCKeyStore
-
engineProbe
- Overrides:
engineProbein classKeyStoreSpi- Throws:
IOException
-
engineAliases
- Specified by:
engineAliasesin classKeyStoreSpi
-
engineContainsAlias
- Specified by:
engineContainsAliasin classKeyStoreSpi
-
engineDeleteEntry
this is not quite complete - we should follow up on the chain, a bit tricky if a certificate appears in more than one chain... the store method now prunes out unused certificates from the chain map if they are present.- Specified by:
engineDeleteEntryin classKeyStoreSpi- Throws:
KeyStoreException
-
engineGetCertificate
simply return the cert for the private key- Specified by:
engineGetCertificatein classKeyStoreSpi
-
engineGetCertificateAlias
- Specified by:
engineGetCertificateAliasin classKeyStoreSpi
-
engineGetCertificateChain
- Specified by:
engineGetCertificateChainin classKeyStoreSpi
-
engineGetCreationDate
- Specified by:
engineGetCreationDatein classKeyStoreSpi
-
engineGetKey
public Key engineGetKey(String alias, char[] password) throws NoSuchAlgorithmException, UnrecoverableKeyException - Specified by:
engineGetKeyin classKeyStoreSpi- Throws:
NoSuchAlgorithmExceptionUnrecoverableKeyException
-
engineIsCertificateEntry
- Specified by:
engineIsCertificateEntryin classKeyStoreSpi
-
engineIsKeyEntry
- Specified by:
engineIsKeyEntryin classKeyStoreSpi
-
engineSetCertificateEntry
- Specified by:
engineSetCertificateEntryin classKeyStoreSpi- Throws:
KeyStoreException
-
engineSetKeyEntry
public void engineSetKeyEntry(String alias, byte[] key, Certificate[] chain) throws KeyStoreException - Specified by:
engineSetKeyEntryin classKeyStoreSpi- Throws:
KeyStoreException
-
engineSetKeyEntry
public void engineSetKeyEntry(String alias, Key key, char[] password, Certificate[] chain) throws KeyStoreException - Specified by:
engineSetKeyEntryin classKeyStoreSpi- Throws:
KeyStoreException
-
engineSize
public int engineSize()- Specified by:
engineSizein classKeyStoreSpi
-
unwrapKey
protected PrivateKey unwrapKey(AlgorithmIdentifier algId, byte[] data, char[] password, boolean wrongPKCS12Zero) throws IOException - Throws:
IOException
-
wrapKey
protected byte[] wrapKey(String algorithm, Key key, PKCS12PBEParams pbeParams, char[] password) throws IOException - Throws:
IOException
-
wrapKey
protected byte[] wrapKey(EncryptionScheme encAlgId, Key key, PBKDF2Params pbeParams, char[] password) throws IOException - Throws:
IOException
-
cryptData
protected byte[] cryptData(boolean forEncryption, AlgorithmIdentifier algId, char[] password, boolean wrongPKCS12Zero, byte[] data) throws IOException - Throws:
IOException
-
engineLoad
public void engineLoad(KeyStore.LoadStoreParameter loadStoreParameter) throws IOException, NoSuchAlgorithmException, CertificateException - Overrides:
engineLoadin classKeyStoreSpi- Throws:
IOExceptionNoSuchAlgorithmExceptionCertificateException
-
engineLoad
- Specified by:
engineLoadin classKeyStoreSpi- Throws:
IOException
-
engineStore
public void engineStore(KeyStore.LoadStoreParameter param) throws IOException, NoSuchAlgorithmException, CertificateException - Overrides:
engineStorein classKeyStoreSpi- Throws:
IOExceptionNoSuchAlgorithmExceptionCertificateException
-
engineStore
- Specified by:
engineStorein classKeyStoreSpi- Throws:
IOException
-