csv serialization test added
This commit is contained in:
parent
7ee829b94d
commit
280955b8e0
@ -3,6 +3,7 @@ using System;
|
|||||||
using chestcrypto;
|
using chestcrypto;
|
||||||
using keyring;
|
using keyring;
|
||||||
using chestcrypto.identity;
|
using chestcrypto.identity;
|
||||||
|
using System.Linq;
|
||||||
using Sodium;
|
using Sodium;
|
||||||
|
|
||||||
namespace keyringTests
|
namespace keyringTests
|
||||||
@ -36,6 +37,10 @@ namespace keyringTests
|
|||||||
PrivateIdentity iden2 = new PrivateIdentity(key2, "alice");
|
PrivateIdentity iden2 = new PrivateIdentity(key2, "alice");
|
||||||
KeyRing ring = new KeyRing();
|
KeyRing ring = new KeyRing();
|
||||||
ring.addPrivateIdentity(iden);
|
ring.addPrivateIdentity(iden);
|
||||||
|
foreach(PrivateIdentity id in ring.privateIdentities){
|
||||||
|
Assert.IsTrue(Enumerable.SequenceEqual(id.getPrivateKey().getRawDouble(), iden.getPrivateKey().getRawDouble()));
|
||||||
|
Assert.IsFalse(Enumerable.SequenceEqual(id.getPrivateKey().getRawDouble(), iden2.getPrivateKey().getRawDouble()));
|
||||||
|
}
|
||||||
|
|
||||||
Assert.IsTrue(ring.privateIdentities.Contains(iden));
|
Assert.IsTrue(ring.privateIdentities.Contains(iden));
|
||||||
Assert.IsFalse(ring.privateIdentities.Contains(iden2));
|
Assert.IsFalse(ring.privateIdentities.Contains(iden2));
|
||||||
|
@ -2,9 +2,14 @@ using NUnit.Framework;
|
|||||||
using chestcrypto.identity;
|
using chestcrypto.identity;
|
||||||
using chestcrypto;
|
using chestcrypto;
|
||||||
using chestcrypto.profile;
|
using chestcrypto.profile;
|
||||||
|
using keyring;
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
|
using Sodium;
|
||||||
|
using CsvHelper;
|
||||||
|
|
||||||
namespace testProfileLoad
|
namespace testProfileLoad
|
||||||
{
|
{
|
||||||
@ -17,7 +22,31 @@ namespace testProfileLoad
|
|||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TestLoad(){
|
public void TestLoad(){
|
||||||
RestoreKeyring restore = new RestoreKeyring("test.profile");
|
var temp = Path.GetTempPath();
|
||||||
|
var publicProfile = temp + "/public.keyring.csv";
|
||||||
|
var privateProfile = temp + "/private.keyring.csv";
|
||||||
|
DoublePrivateKey key = new DoublePrivateKey(PublicKeyAuth.GenerateKeyPair().PrivateKey, PublicKeyBox.GenerateKeyPair().PrivateKey);
|
||||||
|
PrivateIdentity iden = new PrivateIdentity(key, "bob");
|
||||||
|
DoublePrivateKey key2 = new DoublePrivateKey(PublicKeyAuth.GenerateKeyPair().PrivateKey, PublicKeyBox.GenerateKeyPair().PrivateKey);
|
||||||
|
PrivateIdentity iden2 = new PrivateIdentity(key2, "alice");
|
||||||
|
KeyRing ring = new KeyRing();
|
||||||
|
ring.addPrivateIdentity(iden);
|
||||||
|
|
||||||
|
|
||||||
|
using (var writer = new StreamWriter(privateProfile))
|
||||||
|
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
|
||||||
|
{
|
||||||
|
csv.WriteRecords(ring.privateIdentities);
|
||||||
|
}
|
||||||
|
using (var writer = new StreamWriter(publicProfile))
|
||||||
|
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
|
||||||
|
{
|
||||||
|
csv.WriteRecords(ring.publicIdentities);
|
||||||
|
}
|
||||||
|
|
||||||
|
KeyRing restored = new RestoreKeyring(temp);
|
||||||
|
|
||||||
|
Directory.Delete(privateProfile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,16 +1,18 @@
|
|||||||
using chestcrypto;
|
using SimpleBase;
|
||||||
|
|
||||||
namespace chestcrypto.identity
|
namespace chestcrypto.identity
|
||||||
{
|
{
|
||||||
|
|
||||||
public class PrivateIdentity{
|
public class PrivateIdentity{
|
||||||
/*
|
/*
|
||||||
PrivateIdentity is a wrapper around a DoublePrivateKey providing associated metadata such as alias and note
|
PrivateIdentity is a wrapper around a DoublePrivateKey providing associated metadata such as alias and note
|
||||||
*/
|
*/
|
||||||
|
private DoublePrivateKey key { get; set; }
|
||||||
|
public string base85Key { get {
|
||||||
|
return getEncodedKey();
|
||||||
|
}}
|
||||||
|
public string name { get; set; }
|
||||||
|
public string comment { get; set; } // human's note
|
||||||
|
|
||||||
private DoublePrivateKey key;
|
|
||||||
private string name;
|
|
||||||
private string comment; // human's note
|
|
||||||
|
|
||||||
public PrivateIdentity(DoublePrivateKey doublePrivateKey, string alias){
|
public PrivateIdentity(DoublePrivateKey doublePrivateKey, string alias){
|
||||||
key = doublePrivateKey;
|
key = doublePrivateKey;
|
||||||
@ -25,10 +27,12 @@ namespace chestcrypto.identity
|
|||||||
}
|
}
|
||||||
|
|
||||||
public DoublePrivateKey getPrivateKey(){return key;}
|
public DoublePrivateKey getPrivateKey(){return key;}
|
||||||
|
public string getEncodedKey(){
|
||||||
|
return SimpleBase.Base85.Z85.Encode(key.getRawDouble());
|
||||||
|
}
|
||||||
public string getName(){return name;}
|
public string getName(){return name;}
|
||||||
public string getNote(){return comment;}
|
public string getNote(){return comment;}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -1,5 +1,3 @@
|
|||||||
using chestcrypto;
|
|
||||||
|
|
||||||
namespace chestcrypto.identity
|
namespace chestcrypto.identity
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -7,7 +5,6 @@ namespace chestcrypto.identity
|
|||||||
/*
|
/*
|
||||||
PublicIdentity is a wrapper around a DoublePublicKey providing associated metadata such as alias and note
|
PublicIdentity is a wrapper around a DoublePublicKey providing associated metadata such as alias and note
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private DoublePublicKey key;
|
private DoublePublicKey key;
|
||||||
private string name;
|
private string name;
|
||||||
private string comment; // human's note
|
private string comment; // human's note
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<PackageReference Include="CsvHelper" Version="15.0.5" />
|
||||||
<PackageReference Include="MessagePack" Version="2.1.115" />
|
<PackageReference Include="MessagePack" Version="2.1.115" />
|
||||||
<PackageReference Include="SimpleBase" Version="3.0.1" />
|
<PackageReference Include="SimpleBase" Version="3.0.1" />
|
||||||
<PackageReference Include="Sodium.Core" Version="1.2.3" />
|
<PackageReference Include="Sodium.Core" Version="1.2.3" />
|
||||||
|
Loading…
Reference in New Issue
Block a user