NET API
HSM Dinamo
Loading...
Looking for...
No entries found
generate_hmac.cs

Example of the use of HMAC generation.

See Note on examples.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Dinamo;
using Dinamo.Hsm;
namespace GenerateMAC
{
class Program
{
static void Main(string[] args)
{
string address = "10.0.0.1";
string user = "master";
string pass = "12345678";
//Conecta ao HSM
din.Connect(address, user, pass);
string hmacKeyName = "hmac_key";
Console.Out.WriteLine("Generate HMAC key:\n {0}", hmacKeyName);
din.RemoveObject(hmacKeyName);
din.GenerateKey(hmacKeyName, DinamoClient.KEY_ALG.ALG_HMAC_SHA2_256, true);
byte []message1 = new byte[]
{
0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38
};
byte []message2 = new byte[]
{
0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
};
Console.Out.WriteLine("Generate HMAC in one call.\n");
byte[] hmac = din.generateMAC(DinamoClient.HASH_ALG.ALG_HMAC_SHA2_256, hmacKeyName, message1);
Console.Out.WriteLine("hmac: {0}\n", BitConverter.ToString(hmac).Replace("-", string.Empty));
Console.Out.WriteLine("Generate HMAC in multiple calls.\n");
din.initMAC(DinamoClient.HASH_ALG.ALG_HMAC_SHA2_256, hmacKeyName);
din.updateMAC(message1);
din.updateMAC(message2);
byte[] hmac2 = din.endMAC();
Console.Out.WriteLine("hmac2: {0}\n", BitConverter.ToString(hmac2).Replace("-", string.Empty));
din.Disconnect();
}
}
}
Classe de API para acesso às funcionalidades do HSM Dinamo. Nessa classe é possível programar utiliza...
Definição DinamoClient.cs:93
KEY_ALG
Definição DinamoClient.cs:227
HASH_ALG
Algoritmo de Hash para assinatura.
Definição DinamoClient.cs:137
void initMAC(HASH_ALG AlgId, String KeyId, int Flags)
Inicializa uma operação MAC por partes. Deve ser finalizada com endMAC.
Definição DinamoClient.cs:3824
byte[] generateMAC(HASH_ALG AlgId, String KeyId, byte[] Data, int Flags)
Gera um MAC em apenas uma chamada.
Definição DinamoClient.cs:3797
byte[] endMAC()
Finaliza uma operação de MAC.
Definição DinamoClient.cs:3859
void updateMAC(byte[] Data)
Atualiza uma operação de MAC com mais dados.
Definição DinamoClient.cs:3848
IntPtr GenerateKey(string KeyId, DinamoClient.KEY_ALG Alg, bool Exportable)
Gera uma chave permanente no HSM.
Definição DinamoClient.cs:1891
void RemoveObject(string ObjectId)
Remove um objeto do HSM.
Definição DinamoClient.cs:2397
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
void Disconnect(bool flagClose)
Encerra a conexão com o HSM.
Definição DinamoClient.cs:814
Namespace que denota um conjunto de funções para acesso ao HSM Dinamo e suas respectivas exceptions.
Definição DinamoClient.cs:12
Definição DinamoClient.cs:12