List of usage examples for org.bouncycastle.openpgp.operator.jcajce JcePBESecretKeyEncryptorBuilder JcePBESecretKeyEncryptorBuilder
public JcePBESecretKeyEncryptorBuilder(int encAlgorithm, PGPDigestCalculator s2kDigestCalculator)
From source file:com.fuzion.tools.pgp.BCPGPKeyGenTools.java
License:Open Source License
/** * // w w w .java 2s. c o m * @param dsaKeyPair - the generated DSA key pair * @param elGamalKeyPair - the generated El Gamal key pair * @param identity - the given identity of the key pair ring * @param passphrase - the secret pass phrase to protect the key pair * @return a PGP Key Ring Generate with the El Gamal key pair added as sub key * @throws Exception */ @SuppressWarnings("deprecation") public static final PGPKeyRingGenerator createPGPKeyRingGeneratorForDSAKeyPair(KeyPair dsaKeyPair, KeyPair elGamalKeyPair, String identity, char[] passphrase) throws Exception { PGPKeyPair dsaPgpKeyPair = new PGPKeyPair(PGPPublicKey.DSA, dsaKeyPair, new Date()); PGPKeyPair elGamalPgpKeyPair = new PGPKeyPair(PGPPublicKey.ELGAMAL_ENCRYPT, elGamalKeyPair, new Date()); PGPDigestCalculator sha1Calc = new JcaPGPDigestCalculatorProviderBuilder().build() .get(HashAlgorithmTags.SHA1); PGPKeyRingGenerator keyRingGen = new PGPKeyRingGenerator(PGPSignature.POSITIVE_CERTIFICATION, dsaPgpKeyPair, identity, sha1Calc, null, null, new JcaPGPContentSignerBuilder(dsaPgpKeyPair.getPublicKey().getAlgorithm(), HashAlgorithmTags.SHA1), new JcePBESecretKeyEncryptorBuilder(PGPEncryptedData.AES_256, sha1Calc).setProvider("BC") .build(passphrase)); keyRingGen.addSubKey(elGamalPgpKeyPair); return keyRingGen; }
From source file:com.fuzion.tools.pgp.BCPGPKeyGenTools.java
License:Open Source License
/** * /*w ww.ja v a2 s . c om*/ * @param signKeyPair - the generated signing RSA key pair * @param encryptKeyPair - the generated encrypting RSA key pair * @param identity - the given identity of the key pair ring * @param passphrase - the secret pass phrase to protect the key pair * @return a PGP Key Ring Generate with the RSA key pair added as sub key * @throws Exception */ @SuppressWarnings("deprecation") public static final PGPKeyRingGenerator createPGPKeyRingGeneratorForRSAKeyPair(KeyPair signKeyPair, KeyPair encryptKeyPair, String identity, char[] passphrase) throws Exception { PGPKeyPair signPgpKeyPair = new PGPKeyPair(PGPPublicKey.RSA_SIGN, signKeyPair, new Date()); PGPKeyPair encryptPgpKeyPair = new PGPKeyPair(PGPPublicKey.RSA_ENCRYPT, encryptKeyPair, new Date()); PGPDigestCalculator sha1Calc = new JcaPGPDigestCalculatorProviderBuilder().build() .get(HashAlgorithmTags.SHA1); PGPKeyRingGenerator keyRingGen = new PGPKeyRingGenerator(PGPSignature.POSITIVE_CERTIFICATION, signPgpKeyPair, identity, sha1Calc, null, null, new JcaPGPContentSignerBuilder(signPgpKeyPair.getPublicKey().getAlgorithm(), HashAlgorithmTags.SHA1), new JcePBESecretKeyEncryptorBuilder(PGPEncryptedData.AES_256, sha1Calc).setProvider("BC") .build(passphrase)); keyRingGen.addSubKey(encryptPgpKeyPair); return keyRingGen; }
From source file:crypttools.PGPTools.java
License:Open Source License
/** * /*from w w w. j av a2s .c o m*/ * @param dsaKeyPair - the generated DSA key pair * @param elGamalKeyPair - the generated El Gamal key pair * @param identity - the given identity of the key pair ring * @param passphrase - the secret pass phrase to protect the key pair * @return a PGP Key Ring Generate with the El Gamal key pair added as sub key * @throws Exception */ @SuppressWarnings("deprecation") public static final PGPKeyRingGenerator createPGPKeyRingGenerator(KeyPair dsaKeyPair, KeyPair elGamalKeyPair, String identity, char[] passphrase) throws Exception { PGPKeyPair dsaPgpKeyPair = new PGPKeyPair(PGPPublicKey.DSA, dsaKeyPair, new Date()); PGPKeyPair elGamalPgpKeyPair = new PGPKeyPair(PGPPublicKey.ELGAMAL_ENCRYPT, elGamalKeyPair, new Date()); PGPDigestCalculator sha1Calc = new JcaPGPDigestCalculatorProviderBuilder().build() .get(HashAlgorithmTags.SHA1); PGPContentSignerBuilder pgpCSB = new JcaPGPContentSignerBuilder(dsaPgpKeyPair.getPublicKey().getAlgorithm(), HashAlgorithmTags.SHA1); PBESecretKeyEncryptor pbeSKE = new JcePBESecretKeyEncryptorBuilder(PGPEncryptedData.AES_256, sha1Calc) .setProvider("BC").build(passphrase); PGPKeyRingGenerator keyRingGen = new PGPKeyRingGenerator(PGPSignature.POSITIVE_CERTIFICATION, dsaPgpKeyPair, identity, sha1Calc, null, null, pgpCSB, pbeSKE); keyRingGen.addSubKey(elGamalPgpKeyPair); return keyRingGen; }
From source file:org.elasticsearch.plugins.InstallPluginCommandTests.java
License:Apache License
public PGPSecretKey newSecretKey() throws NoSuchAlgorithmException, NoSuchProviderException, PGPException { final KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); kpg.initialize(2048);//w w w . ja v a 2 s . c om final KeyPair pair = kpg.generateKeyPair(); final PGPDigestCalculator sha1Calc = new JcaPGPDigestCalculatorProviderBuilder().build() .get(HashAlgorithmTags.SHA1); final PGPKeyPair pkp = new JcaPGPKeyPair(PGPPublicKey.RSA_GENERAL, pair, new Date()); return new PGPSecretKey(PGPSignature.DEFAULT_CERTIFICATION, pkp, "example@example.com", sha1Calc, null, null, new JcaPGPContentSignerBuilder(pkp.getPublicKey().getAlgorithm(), HashAlgorithmTags.SHA1), new JcePBESecretKeyEncryptorBuilder(PGPEncryptedData.CAST5, sha1Calc) .setProvider(new BouncyCastleProvider()).build("passphrase".toCharArray())); }
From source file:org.kontalk.certgen.PGP.java
License:Open Source License
/** Creates public and secret keyring for a given keypair. */ public static PGPKeyPairRing store(PGPDecryptedKeyPairRing pair, String id, String passphrase) throws PGPException { PGPDigestCalculator sha1Calc = new JcaPGPDigestCalculatorProviderBuilder().build() .get(HashAlgorithmTags.SHA1); PGPKeyRingGenerator keyRingGen = new PGPKeyRingGenerator(PGPSignature.POSITIVE_CERTIFICATION, pair.signKey, id, sha1Calc, null, null,/* w w w . jav a 2 s .c o m*/ new JcaPGPContentSignerBuilder(pair.signKey.getPublicKey().getAlgorithm(), HashAlgorithmTags.SHA1), new JcePBESecretKeyEncryptorBuilder(PGPEncryptedData.AES_256, sha1Calc).setProvider(PROVIDER) .build(passphrase.toCharArray())); keyRingGen.addSubKey(pair.encryptKey); PGPSecretKeyRing secRing = keyRingGen.generateSecretKeyRing(); PGPPublicKeyRing pubRing = keyRingGen.generatePublicKeyRing(); return new PGPKeyPairRing(pubRing, secRing); }
From source file:org.kontalk.crypto.PGPUtils.java
License:Open Source License
public static PGPSecretKeyRing copySecretKeyRingWithNewPassword(byte[] privateKeyData, char[] oldPassphrase, char[] newPassphrase) throws PGPException, IOException { // load the secret key ring KeyFingerPrintCalculator fpr = new BcKeyFingerprintCalculator(); PGPSecretKeyRing secRing = new PGPSecretKeyRing(privateKeyData, fpr); PGPDigestCalculatorProvider sha1CalcProv = new JcaPGPDigestCalculatorProviderBuilder().build(); PBESecretKeyDecryptor decryptor = new JcePBESecretKeyDecryptorBuilder(sha1CalcProv) .setProvider(PGPUtils.PROVIDER).build(oldPassphrase); PGPDigestCalculator sha1Calc = new JcaPGPDigestCalculatorProviderBuilder().build() .get(HashAlgorithmTags.SHA1); PBESecretKeyEncryptor encryptor = new JcePBESecretKeyEncryptorBuilder(PGPEncryptedData.AES_256, sha1Calc) .setProvider(PROVIDER).build(newPassphrase); return PGPSecretKeyRing.copyWithNewPassword(secRing, decryptor, encryptor); }
From source file:portablepgp.core.PGPTools.java
License:Open Source License
/** * * @param dsaKeyPair - the generated DSA key pair * @param elGamalKeyPair - the generated El Gamal key pair * @param identity - the given identity of the key pair ring * @param passphrase - the secret pass phrase to protect the key pair * @return a PGP Key Ring Generate with the El Gamal key pair added as sub * key//from w w w . jav a 2 s. c om * @throws Exception */ @SuppressWarnings("deprecation") public static final PGPKeyRingGenerator createPGPKeyRingGenerator(KeyPair dsaKeyPair, KeyPair elGamalKeyPair, String identity, char[] passphrase) throws Exception { PGPKeyPair dsaPgpKeyPair = new JcaPGPKeyPair(PGPPublicKey.DSA, dsaKeyPair, new Date()); PGPKeyPair elGamalPgpKeyPair = new JcaPGPKeyPair(PGPPublicKey.ELGAMAL_ENCRYPT, elGamalKeyPair, new Date()); PGPDigestCalculator sha1Calc = new JcaPGPDigestCalculatorProviderBuilder().build() .get(HashAlgorithmTags.SHA1); PGPKeyRingGenerator keyRingGen = new PGPKeyRingGenerator(PGPSignature.POSITIVE_CERTIFICATION, dsaPgpKeyPair, identity, sha1Calc, null, null, new JcaPGPContentSignerBuilder(dsaPgpKeyPair.getPublicKey().getAlgorithm(), HashAlgorithmTags.SHA1), new JcePBESecretKeyEncryptorBuilder(PGPEncryptedData.AES_256, sha1Calc).setProvider("BC") .build(passphrase)); keyRingGen.addSubKey(elGamalPgpKeyPair); return keyRingGen; }
From source file:uk.co.platosys.dinigma.LockSmith.java
License:Open Source License
/** * * @param keyDirectory the directory in which the private key is to be saved. This could be on a removable drive. * @param lockDirectory the directory in which the Lock(the public key) is to be saved. * @param userName/* w w w . j av a2 s .com*/ * @param passPhrase * @return The key_id of the signing key. * @throws MinigmaException */ public static long createLockset(File keyDirectory, File lockDirectory, String userName, char[] passPhrase) throws MinigmaException, DuplicateNameException { String filename; File lockFile; File keyFile; //test that parameters have been set: if (keyDirectory == null) { throw new MinigmaException("Locksmith - key directory is null"); } if (!keyDirectory.isDirectory()) { throw new MinigmaException("Locksmith: " + keyDirectory.toString() + " is not a directory"); } if (!keyDirectory.canWrite()) { throw new MinigmaException("Locksmith: can't write to " + keyDirectory.toString()); } if (lockDirectory == null) { throw new MinigmaException("Locksmith - lock directory is null"); } if (!lockDirectory.isDirectory()) { throw new MinigmaException("Locksmith: " + keyDirectory.toString() + " is not a directory"); } if (!lockDirectory.canWrite()) { throw new MinigmaException("Locksmith: can't write to " + keyDirectory.toString()); } try { if (Security.getProvider(PROVIDER) == null) { Security.addProvider(new BouncyCastleProvider()); } } catch (Exception e) { throw new MinigmaException("Locksmith: problem adding security provider", e); } // KeyPairGenerator generator; KeyPair dsaKeyPair; KeyPair elgKeyPair; BigInteger g; BigInteger p; File lockFolder; File keyFolder; PGPKeyPair pgpSigKeyPair; PGPKeyPair pgpEncKeyPair; PGPKeyRingGenerator pgpKeyRingGenerator; PGPPublicKeyRing pgpPublicKeyRing; PGPSecretKeyRing pgpSecretKeyRing; try { //the DSA key for signing generator = KeyPairGenerator.getInstance(SIGNATURE_ALGORITHM, PROVIDER); generator.initialize(1024); dsaKeyPair = generator.generateKeyPair(); } catch (Exception e) { throw new MinigmaException("Locksmith: failed to generate dsa key pair", e); } try { //the strong ElGamal key for encrypting generator = KeyPairGenerator.getInstance(ASYMMETRIC_ALGORITHM, PROVIDER); g = new BigInteger( "153d5d6172adb43045b68ae8e1de1070b6137005686d29d3d73a7749199681ee5b212c9b96bfdcfa5b20cd5e3fd2044895d609cf9b410b7a0f12ca1cb9a428cc", 16); p = new BigInteger( "9494fec095f3b85ee286542b3836fc81a5dd0a0349b4c239dd38744d488cf8e31db8bcb7d33b41abb9e5a33cca9144b1cef332c94bf0573bf047a3aca98cdf3b", 16); AlgorithmParameterSpec elGamalParameters = new ElGamalParameterSpec(p, g); generator.initialize(elGamalParameters); elgKeyPair = generator.generateKeyPair(); } catch (Exception e) { throw new MinigmaException("Locksmith: failed to generate elgamal key pair", e); } try { filename = FileTools.removeFunnyCharacters(userName); lockFolder = new File(lockDirectory, Minigma.LOCK_DIRNAME); if (!lockFolder.exists()) { if (!lockFolder.mkdirs()) { throw new MinigmaException("Can't create lock folder"); } } lockFile = new File(lockFolder, filename); if (lockFile.exists()) { throw new DuplicateNameException("lockfile with name " + lockFile.getName() + " already exists"); } keyFolder = new File(keyDirectory, Minigma.KEY_DIRNAME); if (!keyFolder.exists()) { if (!keyFolder.mkdirs()) { throw new MinigmaException("Can't create key folder"); } } keyFile = new File(keyFolder, filename); if (lockFile.exists()) { throw new DuplicateNameException("keyfile with name " + keyFile.getName() + " already exists"); } } catch (Exception exc) { throw new MinigmaException("Locksmith: error setting up key files", exc); } try { pgpSigKeyPair = new JcaPGPKeyPair(PGPPublicKey.DSA, dsaKeyPair, new Date()); } catch (Exception e) { throw new MinigmaException("Locksmith: failed to generate pgp-dsa key pair", e); } try { pgpEncKeyPair = new JcaPGPKeyPair(PGPPublicKey.ELGAMAL_ENCRYPT, elgKeyPair, new Date()); } catch (Exception e) { throw new MinigmaException("Locksmith: failed to generate pgp-elgamal key pair", e); } PGPDigestCalculator pgpDigestCalculator = null; PGPContentSignerBuilder pgpContentSignerBuilder = null; PBESecretKeyEncryptor pbeSecretKeyEncryptor = null; try { pgpDigestCalculator = new JcaPGPDigestCalculatorProviderBuilder().build().get(HashAlgorithmTags.SHA1); pgpContentSignerBuilder = new JcaPGPContentSignerBuilder(SIGNATURE_ALGORITHM_TAG, HashAlgorithmTags.SHA512); pbeSecretKeyEncryptor = new JcePBESecretKeyEncryptorBuilder(PGPEncryptedData.AES_256, pgpDigestCalculator).setProvider(PROVIDER).build(passPhrase); } catch (Exception e) { throw new MinigmaException("failed to initialise KRG components", e); } try { pgpKeyRingGenerator = new PGPKeyRingGenerator(PGPSignature.POSITIVE_CERTIFICATION, //certification level pgpSigKeyPair, //master key userName, // id pgpDigestCalculator, //PGPDigestCalculator null, //PGPSignatureSubpacketsVector hashed packets null, //PGPSignatureSubpacketsVector unhashed packets pgpContentSignerBuilder, //PGPContentSignerBuilder pbeSecretKeyEncryptor//PBESecretKeyEncryptor ); } catch (PGPException e) { throw new MinigmaException("Locksmith: failed to create PGP-keyring generator", e); } try { pgpKeyRingGenerator.addSubKey(pgpEncKeyPair); } catch (Exception e) { throw new MinigmaException("Locksmith: failed to add elgamal subkey to ring", e); } try { ArmoredOutputStream secOut = new ArmoredOutputStream(new FileOutputStream(keyFile)); pgpSecretKeyRing = pgpKeyRingGenerator.generateSecretKeyRing(); pgpSecretKeyRing.encode(secOut); secOut.close(); } catch (Exception e) { throw new MinigmaException("Locksmith: failed to encode secret key output", e); } try { ArmoredOutputStream pubOut = new ArmoredOutputStream(new FileOutputStream(lockFile)); pgpPublicKeyRing = pgpKeyRingGenerator.generatePublicKeyRing(); pgpPublicKeyRing.encode(pubOut); pubOut.close(); } catch (Exception e) { throw new MinigmaException("Locksmith: failed to encode pubring output", e); } return pgpSigKeyPair.getKeyID(); }