Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package chapter4;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.math.BigInteger;
- import java.security.InvalidKeyException;
- import java.security.KeyPair;
- import java.security.KeyPairGenerator;
- import java.security.KeyStore;
- import java.security.KeyStoreException;
- import java.security.NoSuchAlgorithmException;
- import java.security.PublicKey;
- import java.security.SecureRandom;
- import java.security.SignatureException;
- import java.security.cert.CertificateException;
- import java.security.cert.X509Certificate;
- import java.util.Date;
- import org.bouncycastle.jce.X509Principal;
- import org.bouncycastle.x509.X509V3CertificateGenerator;
- class CertGenerator {
- public static void main(String[] args) throws NoSuchAlgorithmException,
- InvalidKeyException, SecurityException, SignatureException,
- KeyStoreException, CertificateException, FileNotFoundException,
- IOException {
- CertGenerator d = new CertGenerator();
- KeyPair caPair = d.generateKeyPair();
- X509Certificate generateCertWithKeypair = d
- .generateCertWithKeypair(caPair);
- storeTheFileWithKeyStore(generateCertWithKeypair, caPair);
- }
- private static void storeTheFileWithKeyStore(X509Certificate cert,
- KeyPair caPair) throws KeyStoreException, NoSuchAlgorithmException,
- CertificateException, FileNotFoundException, IOException {
- KeyStore keyStore = KeyStore.getInstance("RSA");
- keyStore.load(null, null);
- keyStore.setKeyEntry("certificatename", caPair.getPrivate(),
- "mysecretpassword".toCharArray(),
- new java.security.cert.Certificate[] { cert });
- File file = new File(".", "keystore.test");
- keyStore.store(new FileOutputStream(file),
- "mysecretpassword".toCharArray());
- }
- KeyPair generateKeyPair() throws NoSuchAlgorithmException {
- KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
- keyPairGenerator.initialize(2048, new SecureRandom());
- KeyPair keyPair = keyPairGenerator.generateKeyPair();
- return keyPair;
- }
- public X509Certificate generateCertWithKeypair(KeyPair caPair)
- throws InvalidKeyException, SecurityException, SignatureException {
- X509V3CertificateGenerator v3CertGen = new X509V3CertificateGenerator();
- v3CertGen
- .setSerialNumber(BigInteger.valueOf(System.currentTimeMillis()));
- v3CertGen
- .setIssuerDN(new X509Principal("CN=cn, O=o, L=L, ST=il, C= c"));
- v3CertGen.setNotBefore(new Date(System.currentTimeMillis() - 1000L * 60
- * 60 * 24));
- v3CertGen.setNotAfter(new Date(System.currentTimeMillis()
- + (1000L * 60 * 60 * 24 * 365 * 10)));
- v3CertGen
- .setSubjectDN(new X509Principal("CN=cn, O=o, L=L, ST=il, C= c"));
- v3CertGen.setPublicKey(caPair.getPublic());
- v3CertGen.setSignatureAlgorithm("SHA1WithRSAEncryption");
- X509Certificate generateX509Certificate = v3CertGen
- .generateX509Certificate(caPair.getPrivate());
- return generateX509Certificate;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement