Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
giordanirocha Novato
Registrado: Sexta-Feira, 25 de Novembro de 2005 Mensagens: 27
|
Enviada: Ter Jun 08, 2010 3:34 pm Assunto: Alguem assinou o RPS de SP ? |
|
|
Preciso assinar o RPS para a pref. de SP. Alguém já fez isso ?
Valeu. |
|
Voltar ao Topo |
|
|
giordanirocha Novato
Registrado: Sexta-Feira, 25 de Novembro de 2005 Mensagens: 27
|
Enviada: Sex Jun 11, 2010 10:56 am Assunto: Re: Alguem assinou o RPS de SP ? |
|
|
giordanirocha escreveu: | Preciso assinar o RPS para a pref. de SP. Alguém já fez isso ?
Valeu. |
Pessoal, consegui assinar o RPS. Comecei a fazer os testes e depois vou reportar.
A assinatura ficou em C# (em dll), pois não consegui fazer em delphi 2007.
Vou transcrever o código abaixo:
Citação: |
public string SignRPS(X509Certificate2 cert, String sAssinatura)
{
//recebe o certificado e a string a ser assinada
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
//pega a chave privada do certificado digital
rsa = cert. PrivateKey as RSACryptoServiceProvider;
//cria o array de bytes e realiza a conversao da string em array de bytes
byte[] sAssinaturaByte = enc.GetBytes(sAssinatura);
RSAPKCS1SignatureFormatter rsaf = new RSAPKCS1SignatureFormatter(rsa);
SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
//cria a variavel hash que armazena o resultado do sha1
byte[] hash;
hash = sha1.ComputeHash(sAssinaturaByte);
//definimos o metodo a ser utilizado na criptografia e assinamos
rsaf.SetHashAlgorithm("SHA1");
sAssinaturaByte = rsaf.CreateSignature(hash);
//por fim fazemos a conversao do array de bytes para string
string convertido;
convertido = Convert.ToBase64String(sAssinaturaByte);
return convertido;
} |
Esta solução foi baseado em intensa pesquisa. E o pontapé inicial veio do manual da prefeitura de RECIFE.
bye. |
|
Voltar ao Topo |
|
|
|