API .Net HSM Dinamo
API Proprietária .Net do HSM Dinamo
signxml.cs

Exemplo de assinatura XML com o HSM.

Veja Nota sobre os exemplos.
using System;
using System.Text;
using System.Collections.Generic;
using System.IO;
using Dinamo;
using Dinamo.Hsm;
namespace TesteNF
{
class Program
{
static void Main(string[] args)
{
string address = "127.0.0.1";
string user = "master";
string pass = "12345678";
string keyId = "lab";
string certId = "lab_cert";
string chainId = "lab_chain";
// Indique aqui o xml a ser assinado
string unsignedXML = @"<?xml version=""1.0""?>
<NFe xmlns=""http://www.portalfiscal.inf.br/nfe"">
<infNFe Id=""XFGR143576863578"" versao=""1.01"">
<test>asdfasd</test>
</infNFe>
</NFe>";
// Indique o filtro a ser usado na assinatura xml
string filter = "http://www.portalfiscal.inf.br/nfe|infNFe|XFGR143576863578";
Console.Out.WriteLine("NF Original:\n {0}",unsignedXML);
DinamoClient din = new DinamoClient();
// Conecta ao servidor
din.Connect(address, user, pass, true, true);
// Assina o xml
byte[] signedXML = din.SignXML(keyId, DinamoClient.HASH_ALG.ALG_SHA2_256, certId, unsignedXML, filter);
Console.Out.WriteLine("\nNF Assinada:\n {0}", System.Text.Encoding.Default.GetString(signedXML));
// Verifica a assinatura do xml
bool isValid = din.VerifySignedXML(chainId, signedXML, System.Text.Encoding.UTF8.GetBytes(filter));
Console.Out.WriteLine("\nA assinatura do XML {0}\n", isValid ? "é válida" : "é INVÁLIDA");
// Desconecta do servidor
din.Disconnect();
}
}
}
Namespace que denota um conjunto de funções para acesso ao HSM Dinamo e suas respectivas exceptions.
Definition: DinamoClient.cs:12
Definition: DinamoClient.cs:12