Pessoal,
Estou desenvolvendo um programa de assinatura digital utilizando javax.xml.crypto. Analisando o código não consegui encontrar algum lugar que estivesse implícito qual certificado digital eu estaria usando para a assinatura (para o caso de eu ter mais de um instalado em minha máquina).
Alguém já teve experiência noassunto e sabe me responder?
Já gerei o documento xml assinado, mas tenho dois certificados instalados e não consigo saber qual deles foi usado para gerar a assinatura.
Obrigado
Pela sua mensagem não dá pra saber exatamente qual padrão criptográfico estás usando, entretanto é bastante provável que seja PKCS#7 e neste caso o arquivo assinado deve conter no mínimo as informações de quem (ou qual certificado) o assinou.
Também não sei onde vc está salvando ou qual sistema operacional está usando, mas se vc renomear o arquivo assinado com a extensão .p7s e der um duplo clique no windows, será apresentada uma janela com a informação dos dados de quem assinou tal arquivo.
Se vc está obtendo os certificados do Java KeyStore, é possível que exista algum certificado default dentro deste keystore, que neste caso será usado.
Olha, depois que você carrega o seu keystore, tem um método chamado getCertificate("certificateAlias, em que você passa um string com o alias do certificado que será utilizado para a assinatura.
X509Certificate certificado =
(X509Certificate ) keystore.getCertificate("certificateAlias");
Neste caso, estou utilizando o padrão PKCS#12, e pelo que me parece, você também está utilizando este padrão…
Olha, vi que vc está utilizando outra API para assinar…
O que eu passei é para a java.security