diff options
Diffstat (limited to 'libraries/spongycastle/pg/src/main/java/org/spongycastle/openpgp/examples/RSAKeyPairGenerator.java')
-rw-r--r-- | libraries/spongycastle/pg/src/main/java/org/spongycastle/openpgp/examples/RSAKeyPairGenerator.java | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/libraries/spongycastle/pg/src/main/java/org/spongycastle/openpgp/examples/RSAKeyPairGenerator.java b/libraries/spongycastle/pg/src/main/java/org/spongycastle/openpgp/examples/RSAKeyPairGenerator.java deleted file mode 100644 index 99042fd38..000000000 --- a/libraries/spongycastle/pg/src/main/java/org/spongycastle/openpgp/examples/RSAKeyPairGenerator.java +++ /dev/null @@ -1,114 +0,0 @@ -package org.spongycastle.openpgp.examples; - -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.security.InvalidKeyException; -import java.security.KeyPair; -import java.security.KeyPairGenerator; -import java.security.NoSuchProviderException; -import java.security.PrivateKey; -import java.security.PublicKey; -import java.security.Security; -import java.security.SignatureException; -import java.util.Date; - -import org.spongycastle.bcpg.ArmoredOutputStream; -import org.spongycastle.bcpg.HashAlgorithmTags; -import org.spongycastle.jce.provider.BouncyCastleProvider; -import org.spongycastle.openpgp.PGPEncryptedData; -import org.spongycastle.openpgp.PGPException; -import org.spongycastle.openpgp.PGPKeyPair; -import org.spongycastle.openpgp.PGPPublicKey; -import org.spongycastle.openpgp.PGPSecretKey; -import org.spongycastle.openpgp.PGPSignature; -import org.spongycastle.openpgp.operator.PGPDigestCalculator; -import org.spongycastle.openpgp.operator.jcajce.JcaPGPContentSignerBuilder; -import org.spongycastle.openpgp.operator.jcajce.JcaPGPDigestCalculatorProviderBuilder; -import org.spongycastle.openpgp.operator.jcajce.JcePBESecretKeyEncryptorBuilder; - -/** - * A simple utility class that generates a RSA PGPPublicKey/PGPSecretKey pair. - * <p> - * usage: RSAKeyPairGenerator [-a] identity passPhrase - * <p> - * Where identity is the name to be associated with the public key. The keys are placed - * in the files pub.[asc|bpg] and secret.[asc|bpg]. - */ -public class RSAKeyPairGenerator -{ - private static void exportKeyPair( - OutputStream secretOut, - OutputStream publicOut, - PublicKey publicKey, - PrivateKey privateKey, - String identity, - char[] passPhrase, - boolean armor) - throws IOException, InvalidKeyException, NoSuchProviderException, SignatureException, PGPException - { - if (armor) - { - secretOut = new ArmoredOutputStream(secretOut); - } - - PGPDigestCalculator sha1Calc = new JcaPGPDigestCalculatorProviderBuilder().build().get(HashAlgorithmTags.SHA1); - PGPKeyPair keyPair = new PGPKeyPair(PGPPublicKey.RSA_GENERAL, publicKey, privateKey, new Date()); - PGPSecretKey secretKey = new PGPSecretKey(PGPSignature.DEFAULT_CERTIFICATION, keyPair, identity, sha1Calc, null, null, new JcaPGPContentSignerBuilder(keyPair.getPublicKey().getAlgorithm(), HashAlgorithmTags.SHA1), new JcePBESecretKeyEncryptorBuilder(PGPEncryptedData.CAST5, sha1Calc).setProvider("SC").build(passPhrase)); - - secretKey.encode(secretOut); - - secretOut.close(); - - if (armor) - { - publicOut = new ArmoredOutputStream(publicOut); - } - - PGPPublicKey key = secretKey.getPublicKey(); - - key.encode(publicOut); - - publicOut.close(); - } - - public static void main( - String[] args) - throws Exception - { - Security.addProvider(new BouncyCastleProvider()); - - KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", "SC"); - - kpg.initialize(1024); - - KeyPair kp = kpg.generateKeyPair(); - - if (args.length < 2) - { - System.out.println("RSAKeyPairGenerator [-a] identity passPhrase"); - System.exit(0); - } - - if (args[0].equals("-a")) - { - if (args.length < 3) - { - System.out.println("RSAKeyPairGenerator [-a] identity passPhrase"); - System.exit(0); - } - - FileOutputStream out1 = new FileOutputStream("secret.asc"); - FileOutputStream out2 = new FileOutputStream("pub.asc"); - - exportKeyPair(out1, out2, kp.getPublic(), kp.getPrivate(), args[1], args[2].toCharArray(), true); - } - else - { - FileOutputStream out1 = new FileOutputStream("secret.bpg"); - FileOutputStream out2 = new FileOutputStream("pub.bpg"); - - exportKeyPair(out1, out2, kp.getPublic(), kp.getPrivate(), args[0], args[1].toCharArray(), false); - } - } -} |