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

Exemplo de assinatura e verificação de JWS no formato PIX definido no SPI(Sistema de Pagamentos Instantâneos).

Veja Nota sobre os exemplos.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Dinamo.Hsm;
namespace JWSSignCheck
{
class Program
{
static void Main(string[] args)
{
string address = "10.0.0.1";
string user = "usuario";
string pass = "senha";
string header = "{\"alg\":\"RS256\"}";
string payload = "{\"iss\":\"joe\",\"exp\":1300819380,\"http://example.com/is_root\":true}";
DinamoClient din = new DinamoClient();
//Conecta ao HSM
din.Connect(address, user, pass);
string keyId = "key";
string chainId = "key_chain";
//Assina PIX JWS
byte[] signedJWS = din.SignPIXJWS(keyId, Encoding.UTF8.GetBytes(header), Encoding.UTF8.GetBytes(payload));
Console.Out.WriteLine("JWS:\n {0}", System.Text.Encoding.Default.GetString(signedJWS));
//Opção 1 de validação de assinatura PIX JWS
bool signatureStatus = din.CheckPIXJWS(chainId, null, signedJWS);
Console.Out.WriteLine("Status da verificação da assinatura: {0}", signatureStatus);
//Opção 2 de validação de assinatura PIX JWS
JwsComponents jwsComponents = din.CheckPIXJWS(chainId, null, signedJWS, 0);
Console.Out.WriteLine("Header:\n {0}", System.Text.Encoding.Default.GetString(jwsComponents.Header));
Console.Out.WriteLine("Payload:\n {0}", System.Text.Encoding.Default.GetString(jwsComponents.Payload));
Console.Out.WriteLine("Status da verificação da assinatura: {0}", (jwsComponents.ReturnCode == 0));
}
}
}
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