Example of signing and verifying JWS in the PIX format defined in the SPI (Instant Payment System).
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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}";
string keyId = "key";
string chainId = "key_chain";
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));
bool signatureStatus = din.
CheckPIXJWS(chainId,
null, signedJWS);
Console.Out.WriteLine("Status da verificação da assinatura: {0}", signatureStatus);
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));
}
}
}
Classe de API para acesso às funcionalidades do HSM Dinamo. Nessa classe é possível programar utiliza...
Definição DinamoClient.cs:93
Classe que encapsula os componentes de assinatura JWS.
Definição DinamoClient.cs:18
byte[] Payload
Definição DinamoClient.cs:20
byte[] Header
Definição DinamoClient.cs:19
Int32 ReturnCode
Definição DinamoClient.cs:21
JwsComponents CheckPIXJWS(string Chain, string CRL, byte[] byJWS, Int32 flags)
Valida um JWS assinado RFC 7515 seguindo o padrão PIX definido no SPI (Sistema de Pagamentos Instantâ...
Definição DinamoClient.cs:5115
byte[] SignPIXJWS(string KeyId, byte[] byHeader, byte[] byPayload)
Faz uma assinatura JWS RFC 7515 seguindo o padrão PIX definido no SPI (Sistema de Pagamentos Instantâ...
Definição DinamoClient.cs:5033
void Connect(string User, string Password)
Estabelece uma conexão cifrada com o HSM utilizando as configurações de load balance.
Definição DinamoClient.cs:562
Namespace que denota um conjunto de funções para acesso ao HSM Dinamo e suas respectivas exceptions.
Definição DinamoClient.cs:12