De acordo com os meus post nesta thread, vou começar a por ideias mais técnicas aqui.
Como disse ao undercover, a DGCI quer que enviemos o certificado gerado pelo openssl (ou pelo menos é essa a minha interpretação). Mas o busilis para quem trabalhar com .NET é que a M$ não trabalhar no mesmo formato. Continuo sem saber o porque deste desvio do standard de SSL.
Por causa disso, fiz um “parser” para a chave privada, no formato hex. Este formato obtém-se da seguinte forma, depois de gerada a chave privadaa (PEM):
openssl rsa -in privada.key -text -noout
Obviamente não postar o código, pois estou no contexto de empresa…
Protocolo de testes: Gerar a encriptação em VB e decriptar usando openssl (linux)
O que sucede é que encriptação e decriptação funciona as mil maravilhas…Mas cedo reparei que não é isso que a DGCI quer. O que eles querem é a assinatura da hash SHA1. Tudo bem, a partir do momento em que tinha uma chave válida (penso eu, uma vez que consigo encriptar e decriptar), consigo gerar a assinatura da hash sem problemas.
O problema surge em validar a assinatura no linux (openssl). As assinaturas geradas não só não são dadas como válidas, como a assinatura gerada pelo openssl é completamente diferente, para os mesmos dados (deveria ser igual).
Ideias?
Mais detalhes: http://bit.ly/94d4uJ