Continuando os estudos de WebService.
Aqui no fórum eu andei lendo sobre as chaves públicas e privadas para assinar documentos XML.
http://www.guj.com.br/posts/list/67854.java#356638
http://www.guj.com.br/java.tutorial.artigo.141.1.guj
http://www.guj.com.br/posts/list/11229.java#58649
Pelo que eu entendi, caso eu seja proprietário de um serviço, eu gero uma chave privada e a partir da chave privada gero uma pública e entrego aos usuários que desejam utilizar o meu serviço.
Só que isto se contradiz quando eu vejo os exemplos de assinaturas, pois para assinar os documentos são utilizadas as chaves privadas, que eu acretitava que só eu (que sou proprietário do serviço) deveria ter acesso.
Segue dois dos exemplos que vi:
http://www.guj.com.br/posts/list/83758.java
http://today.java.net/pub/a/today/2006/11/21/xml-signature-with-jsr-105.html?page=2
Eu tentei assinar um documento utilizanado uma chave pública, porém isto não é aceito:
DOMSignContext dsc = new DOMSignContext(privateKey, doc);//se passar a chave pública dá erro
signature.sign(dsc);
Gerei a chave pública / privada assim:
keytool -genkey -keysize 512 -sigalg DSA -dname “cn=Young Yang, ou=Architecture, o=Company, L=New York, ST=NY, c=US” -alias biz -keypass kp1234 -keystore C:\temp\assJRS105\bizkeystore -storepass sp1234 -validity 180
A partir do keystore acima eu tenho a chave pública e privada.
Pelo que li para exportar a chave pública seria assim:
keytool -export -alias biz -file C:\temp\assJRS105\bizkeystore.x509 -keystore C:\temp\assJRS105\bizkeystore
Alguém sabe como utilizar o par de chaves corretamente, eu minha concepção está errada quanto as chaves públicas e privadas.
Vamos discutir um pouco mais sobre isto, além dos posts já existentes no fórum.
Observação:
Inclusive neste exemplo ref. a assinatura da nota fical é utilizado a chave privada
http://www.guj.com.br/posts/list/83758.java ???
Desde de já agradeço a atenção de todos.