Estou com um projeto de TCC onde terei que implementar certificação digital e vi que a API Bouncy Castle é uma API bem completa para a implementação, porém estava tentando fazer testes antes de usa-la e é ai que começa os meus problemas.
Baixei o .jar no site do BC e importei o mesmo no buld path para poder usar a API mas quando eu tento implementar a classe
X509V1CertificateGenerator ele da o seguinte erro:
org.bouncycastle.x509.X509V1CertificateGenerator
Note: This element has no attached source and the Javadoc could not be found in the attached Javadoc.
Já tentei de tudo e não consigo resolver. Preciso de uma solução o mais breve possível por favor.
import java.math.BigInteger;
import java.security.*;
import java.security.cert.CertificateEncodingException;
import java.security.cert.X509Certificate;
import java.util.Date;
import javax.security.auth.x500.X500Principal;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.x509.X509V1CertificateGenerator;
public class Teste {
public Teste()
{
Security.addProvider(new BouncyCastleProvider());
}
@SuppressWarnings("deprecation")
public static X509Certificate generateV1Certificate(KeyPair pair) throws InvalidKeyException, NoSuchProviderException, SecurityException, SignatureException, CertificateEncodingException, IllegalStateException, NoSuchAlgorithmException
{
X509V1CertificateGenerator certGen = new X509V1CertificateGenerator();
certGen.setSerialNumber(BigInteger.valueOf(System.currentTimeMillis()));
certGen.setIssuerDN(new X500Principal("CN=Test Certificate"));
certGen.setNotBefore(new Date(System.currentTimeMillis() - 50000));
certGen.setNotAfter(new Date(System.currentTimeMillis() + 50000));
certGen.setSubjectDN(new X500Principal("CN=Test Certificate"));
certGen.setPublicKey(pair.getPublic());
certGen.setSignatureAlgorithm("SHA256WithRSAEncryption");
return certGen.generate(pair.getPrivate(), "BC");
}
public KeyPair generateKeys() throws Exception
{
KeyPairGenerator keyGenerator = KeyPairGenerator.getInstance("RSA", "BC");//Algorítimo RSA e provedor BC
keyGenerator.initialize(1024, new SecureRandom());
return keyGenerator.generateKeyPair();
}
}
