-
Notifications
You must be signed in to change notification settings - Fork 75
3‐Certificado A3
SW Software e Consultoria edited this page Feb 18, 2024
·
2 revisions
Exemplo de configuração Simples, onde é existem apenas 1 A3 na maquina!
import br.com.swconsultoria.certificado.Certificado;
import br.com.swconsultoria.certificado.CertificadoService;
import br.com.swconsultoria.certificado.TipoCertificadoA3;
import br.com.swconsultoria.certificado.exception.CertificadoException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
/**
* @author Samuel Oliveira - [email protected]
*/
public class A3Dll {
public static void main(String[] args) {
try{
Certificado certificado = certificadoA3Dll();
System.out.println("Alias Certificado :" +certificado.getNome());
System.out.println("Dias Restantes Certificado :" +certificado.getDiasRestantes());
System.out.println("Validade Certificado :" +certificado.getVencimento());
//PARA REGISTRAR O CERTIFICADO NA SESSAO, FAÇA SOMENTE EM PROJETOS EXTERNO
//JAVA NFE, CTE E OUTRAS APIS MINHAS JA CONTEM ESTA INICIALIZAÇÃO
CertificadoService.inicializaCertificado(certificado, new FileInputStream(new File("caminhoCacert")));
}catch (CertificadoException | FileNotFoundException e){
System.err.println(e.getMessage());
}
}
private static Certificado certificadoA3Dll() throws CertificadoException {
TipoCertificadoA3 tipoA3 = //Escolha um dos tipo A3 do Enum de acordo com seu aparelho.
//Exemplo para Java 8
ByteArrayInputStream configStream = new ByteArrayInputStream(tipoA3.getConfigA3().getBytes(StandardCharsets.UTF_8));
Provider provider = new sun.security.pkcs11.SunPKCS11(configStream);
//Exemplo para Java 9+
Path tempConfigFile = Files.createTempFile("pkcs11-config", ".cfg");
Files.write(tempConfigFile, tipoA3.getConfigA3().getBytes(StandardCharsets.UTF_8));
Provider provider = Security.getProvider("SunPKCS11").configure(tempConfigFile.toFile().getAbsolutePath());
return CertificadoService.certificadoA3("1234",provider);
}
}