Example usage for org.bouncycastle.openpgp PGPPublicKeyRing encode

List of usage examples for org.bouncycastle.openpgp PGPPublicKeyRing encode

Introduction

In this page you can find the example usage for org.bouncycastle.openpgp PGPPublicKeyRing encode.

Prototype

public void encode(OutputStream outStream) throws IOException 

Source Link

Usage

From source file:com.fuzion.tools.pgp.BCPGPKeyGenTools.java

License:Open Source License

public static final void exportPublicKey(PGPKeyRingGenerator pgpKeyRingGen, File keyFile, boolean asciiArmor)
        throws IOException {
    PGPPublicKeyRing pgpPubKeyRing = pgpKeyRingGen.generatePublicKeyRing();

    if (asciiArmor) {
        ArmoredOutputStream aos = new ArmoredOutputStream(new FileOutputStream(keyFile));
        pgpPubKeyRing.encode(aos);
        aos.close();//from ww  w.  j  a v  a  2 s  . co  m
    } else {
        FileOutputStream fos = new FileOutputStream(keyFile);
        pgpPubKeyRing.encode(fos);
        fos.close();
    }
}

From source file:com.github.chrbayer84.keybits.GnuPGP.java

License:Open Source License

public String getArmored(PGPPublicKeyRing public_key_ring) throws Exception {
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    ArmoredOutputStream armored = new ArmoredOutputStream(out);

    public_key_ring.encode(armored);
    armored.close();/*from  w  w w .j ava 2  s  .c  om*/

    String ret = new String(out.toByteArray());
    out.close();

    return ret;
}

From source file:com.github.chrbayer84.keybits.GnuPGP.java

License:Open Source License

public byte[] getEncoded(PGPPublicKeyRing public_key_ring) throws Exception {
    ByteArrayOutputStream out = new ByteArrayOutputStream();

    public_key_ring.encode(out);
    byte[] ret = out.toByteArray();
    out.close();//from w  w w  . j a va 2 s .  co m

    return ret;
}

From source file:com.google.gerrit.gpg.PublicKeyStore.java

License:Apache License

private static byte[] keysToArmored(List<PGPPublicKeyRing> keys) throws IOException {
    ByteArrayOutputStream out = new ByteArrayOutputStream(4096 * keys.size());
    for (PGPPublicKeyRing kr : keys) {
        try (ArmoredOutputStream aout = new ArmoredOutputStream(out)) {
            kr.encode(aout);
        }/*  w  w  w .ja  va 2s  . com*/
    }
    return out.toByteArray();
}

From source file:crypttools.PGPCryptoBC.java

License:Open Source License

public void generateKeys(String username, String passphrase) {
    try {/*from w  w  w . j  a v a 2s .  c o  m*/
        BigInteger primeModulous = PGPTools.getSafePrimeModulus(PGPTools.PRIME_MODULUS_4096_BIT);
        BigInteger baseGenerator = PGPTools.getBaseGenerator();
        ElGamalParameterSpec paramSpecs = new ElGamalParameterSpec(primeModulous, baseGenerator);

        KeyPair dsaKeyPair = PGPTools.generateDsaKeyPair(1024);
        KeyPair elGamalKeyPair = PGPTools.generateElGamalKeyPair(paramSpecs);

        this.pgpKeyRingGen = PGPTools.createPGPKeyRingGenerator(dsaKeyPair, elGamalKeyPair, username,
                passphrase.toCharArray());
        PGPSecretKeyRing pgpSecKeyRing = this.pgpKeyRingGen.generateSecretKeyRing();
        PGPPublicKeyRing pgpPubKeyRing = this.pgpKeyRingGen.generatePublicKeyRing();

        /* Save secret key*/
        ByteArrayOutputStream pgpSecKeyRingOutputStream = new ByteArrayOutputStream();
        ArmoredOutputStream aosSecret = new ArmoredOutputStream(pgpSecKeyRingOutputStream);
        pgpSecKeyRing.encode(aosSecret);
        aosSecret.close();
        this.armoredSecretKey = pgpSecKeyRingOutputStream.toByteArray();

        /* Save public key*/
        ByteArrayOutputStream pgpPubKeyRingOutputStream = new ByteArrayOutputStream();
        ArmoredOutputStream aosPublic = new ArmoredOutputStream(pgpPubKeyRingOutputStream);
        pgpPubKeyRing.encode(aosPublic);
        aosPublic.close();
        this.armoredPublicKey = pgpPubKeyRingOutputStream.toByteArray();
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

From source file:keygenerator.KeyGenerator.java

public static void main(String[] args) {
    char pass[] = { 'h', 'e', 'l', 'l', 'o' };
    try {//w  w w. j  av a  2 s  .co  m
        PGPKeyRingGenerator krgen = generateKeyRingGenerator("alice@example.com", pass);

        // Generate public key ring, dump to file.
        PGPPublicKeyRing pkr = krgen.generatePublicKeyRing();
        BufferedOutputStream pubout = new BufferedOutputStream(new FileOutputStream("dummy.pkr"));
        pkr.encode(pubout);
        pubout.close();

        // Generate private key, dump to file.
        PGPSecretKeyRing skr = krgen.generateSecretKeyRing();
        BufferedOutputStream secout = new BufferedOutputStream(new FileOutputStream("dummy.skr"));
        skr.encode(secout);
        secout.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:net.pgp2p.cryptoservice.PGPManager.java

License:Open Source License

public static String getArmoredPublicKeyRing(PGPPublicKeyRing pubKeyRing) throws IOException {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    ArmoredOutputStream aos = new ArmoredOutputStream(baos);

    pubKeyRing.encode(aos);

    aos.close();// ww  w  .  jav  a  2  s .  c o m
    baos.close();

    String armoredPubKeyRing = baos.toString();
    return armoredPubKeyRing;
}

From source file:org.tramaci.onionmail.PGPKeyGen.java

License:Open Source License

public static String KeyGen(Date when, String ID, OutputStream Public, OutputStream Private) throws Exception {

    String pwl = J.GenPassword(DEFAULT_PASS_SIZE, DEFAULT_PASS_STRANGE);
    PGPKeyRingGenerator kg = generateKeyRingGenerator(ID, pwl.toCharArray(), when);

    PGPPublicKeyRing pkr = kg.generatePublicKeyRing();
    ArmoredOutputStream outStream = new ArmoredOutputStream(Public);
    pkr.encode(outStream);
    outStream.close();/*from  www. j a  v  a 2  s .  c o m*/

    PGPSecretKeyRing skr = kg.generateSecretKeyRing();
    outStream = new ArmoredOutputStream(Private);
    skr.encode(outStream);
    outStream.close();

    return pwl;
}

From source file:portablepgp.core.PGPTools.java

License:Open Source License

public static final void exportPublicKey(PGPKeyRingGenerator pgpKeyRingGen, File keyFile, boolean asciiArmor)
        throws IOException {
    PGPPublicKeyRing pgpPubKeyRing = pgpKeyRingGen.generatePublicKeyRing();
    if (asciiArmor) {
        ArmoredOutputStream aos = new ArmoredOutputStream(new FileOutputStream(keyFile));
        pgpPubKeyRing.encode(aos);
        aos.close();//from w  w  w  . j  av  a 2  s .  c o  m
    } else {
        FileOutputStream fos = new FileOutputStream(keyFile);
        pgpPubKeyRing.encode(fos);
        fos.close();
    }
}

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 a v a  2  s .  c  o m*/
 * @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();

}