Exemplo de divisão e recuperação de um segredo utilizando M de N.
using System;
using System.Text;
using System.IO;
namespace MofN
{
class Program
{
private static String addr = "127.0.0.1";
static void Main(string[] args)
{
DinamoClient api = new DinamoClient();
try {
api.ConnectAnonymously(addr);
Console.Out.WriteLine("Conectado anonimamente com sucesso!");
var splitInfo = api.MofNSplit(2, 6, null);
Console.Out.WriteLine("Segredo dividido com sucesso!");
Console.Out.WriteLine("Segredo: " + BitConverter.ToString(splitInfo.pbSecret).Replace("-", ""));
Console.Out.WriteLine("Total de partes: " + splitInfo.dwPartCount);
for (UInt32 i = 0; i < splitInfo.dwPartCount; i++) {
Console.Out.WriteLine("Parte " + (i + 1) + ": " + BitConverter.ToString(splitInfo.pstParts[i].pbPart).Replace("-", ""));
}
DinamoApi.DN_M_OF_N_PART []parts = new DinamoApi.DN_M_OF_N_PART[2];
parts[0] = splitInfo.pstParts[0];
parts[1] = splitInfo.pstParts[1];
var recoveredSecret = api.MofNRecover(parts);
Console.Out.WriteLine("Segredo recuperado com sucesso!");
Console.Out.WriteLine("Segredo recuperado: " + BitConverter.ToString(recoveredSecret).Replace("-", ""));
} catch (DinamoException e) {
Console.Out.WriteLine(e.Message);
} finally{
api.Disconnect();
Console.Out.WriteLine("Desconectado com sucesso!");
}
}
}
}
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