assinar xml

Boa dia a todos, por favor estou tentando fazer uma assinatura digital em um XML, e esta dando super certo com a ajuda do exemples que Chris Glazier e Altair Borges me enviaram, porem esta assinando com o algoritimo RSA-SHA1 mas eu preciso assinar com algoritimo RSA-SHA256, eu achei um exemplo que eu acredite que seja o que eu preciso conforme esta abaixo em C#, mas não estou conseguindo converter o Visual COBOL for Visual Studio, se alguém conseguir me ajudar ficarei muito agradecido.

 

atenciosamente

 

Renato Soares Vieira

 

using System; using System.Security.Cryptography; class RSASample { static void Main() { try { //Create a new instance of RSACryptoServiceProvider. using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) { //The hash to sign. byte[] hash; using (SHA256 sha256 = SHA256.Create()) { byte[] data = new byte[] { 59, 4, 248, 102, 77, 97, 142, 201, 210, 12, 224, 93, 25, 41, 100, 197, 213, 134, 130, 135 }; hash = sha256.ComputeHash(data); } //Create an RSASignatureFormatter object and pass it the //RSACryptoServiceProvider to transfer the key information. RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(rsa); //Set the hash algorithm to SHA256. RSAFormatter.SetHashAlgorithm("SHA256"); //Create a signature for HashValue and return it. byte[] SignedHash = RSAFormatter.CreateSignature(hash); } } catch (CryptographicException e) { Console.WriteLine(e.Message); } } }

Parents
  • using System;

    using System.Security.Cryptography;

    class RSASample

    {

    static void Main()

    {

    try

    {

    //Create a new instance of RSACryptoServiceProvider.

    using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())

    { //The hash to sign.

    byte[] hash;

    using (SHA256 sha256 = SHA256.Create())

    {

    byte[] data = new byte[] { 59, 4, 248, 102, 77, 97, 142, 201, 210, 12, 224, 93, 25, 41, 100, 197, 213, 134, 130, 135 };

    hash = sha256.ComputeHash(data);

    }

    //Create an RSASignatureFormatter object and pass it the             

    //RSACryptoServiceProvider to transfer the key information.

    RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(rsa);

    //Set the hash algorithm to SHA256.

    RSAFormatter.SetHashAlgorithm("SHA256");

    //Create a signature for HashValue and return it.

    byte[] SignedHash = RSAFormatter.CreateSignature(hash);

    }

    }

    catch (CryptographicException e)

    {

    Console.WriteLine(e.Message);

    }

    }

    }

Reply
  • using System;

    using System.Security.Cryptography;

    class RSASample

    {

    static void Main()

    {

    try

    {

    //Create a new instance of RSACryptoServiceProvider.

    using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())

    { //The hash to sign.

    byte[] hash;

    using (SHA256 sha256 = SHA256.Create())

    {

    byte[] data = new byte[] { 59, 4, 248, 102, 77, 97, 142, 201, 210, 12, 224, 93, 25, 41, 100, 197, 213, 134, 130, 135 };

    hash = sha256.ComputeHash(data);

    }

    //Create an RSASignatureFormatter object and pass it the             

    //RSACryptoServiceProvider to transfer the key information.

    RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(rsa);

    //Set the hash algorithm to SHA256.

    RSAFormatter.SetHashAlgorithm("SHA256");

    //Create a signature for HashValue and return it.

    byte[] SignedHash = RSAFormatter.CreateSignature(hash);

    }

    }

    catch (CryptographicException e)

    {

    Console.WriteLine(e.Message);

    }

    }

    }

Children
No Data