work on loading/saving state
This commit is contained in:
parent
d2d59c21f3
commit
7ee829b94d
45
tests/keyringTest.cs
Normal file
45
tests/keyringTest.cs
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
using NUnit.Framework;
|
||||||
|
using System;
|
||||||
|
using chestcrypto;
|
||||||
|
using keyring;
|
||||||
|
using chestcrypto.identity;
|
||||||
|
using Sodium;
|
||||||
|
|
||||||
|
namespace keyringTests
|
||||||
|
{
|
||||||
|
public class Tests
|
||||||
|
{
|
||||||
|
[SetUp]
|
||||||
|
public void Setup()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestKeyringAddPublic()
|
||||||
|
{
|
||||||
|
DoublePublicKey key = new DoublePublicKey(PublicKeyAuth.GenerateKeyPair().PublicKey, PublicKeyBox.GenerateKeyPair().PublicKey);
|
||||||
|
PublicIdentity iden = new PublicIdentity(key, "bob");
|
||||||
|
DoublePublicKey key2 = new DoublePublicKey(PublicKeyAuth.GenerateKeyPair().PublicKey, PublicKeyBox.GenerateKeyPair().PublicKey);
|
||||||
|
PublicIdentity iden2 = new PublicIdentity(key2, "alice");
|
||||||
|
KeyRing ring = new KeyRing();
|
||||||
|
ring.addPublicIdentity(iden);
|
||||||
|
|
||||||
|
Assert.IsTrue(ring.publicIdentities.Contains(iden));
|
||||||
|
Assert.IsFalse(ring.publicIdentities.Contains(iden2));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestKeyringAddPrivate(){
|
||||||
|
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);
|
||||||
|
|
||||||
|
Assert.IsTrue(ring.privateIdentities.Contains(iden));
|
||||||
|
Assert.IsFalse(ring.privateIdentities.Contains(iden2));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
25
tests/profile/testLoad.cs
Normal file
25
tests/profile/testLoad.cs
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
using NUnit.Framework;
|
||||||
|
using chestcrypto.identity;
|
||||||
|
using chestcrypto;
|
||||||
|
using chestcrypto.profile;
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
namespace testProfileLoad
|
||||||
|
{
|
||||||
|
public class Tests
|
||||||
|
{
|
||||||
|
[SetUp]
|
||||||
|
public void Setup()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestLoad(){
|
||||||
|
RestoreKeyring restore = new RestoreKeyring("test.profile");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -12,14 +12,14 @@ namespace chestcrypto.identity
|
|||||||
private string name;
|
private string name;
|
||||||
private string comment; // human's note
|
private string comment; // human's note
|
||||||
|
|
||||||
public PublicIdentity(DoublePublicKey doublePrivateKey, string alias){
|
public PublicIdentity(DoublePublicKey doublePublicKey, string alias){
|
||||||
key = doublePrivateKey;
|
key = doublePublicKey;
|
||||||
name = alias;
|
name = alias;
|
||||||
comment = "";
|
comment = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
public PublicIdentity(DoublePublicKey doublePrivateKey, string alias, string note){
|
public PublicIdentity(DoublePublicKey doublePublicKey, string alias, string note){
|
||||||
key = doublePrivateKey;
|
key = doublePublicKey;
|
||||||
name = alias;
|
name = alias;
|
||||||
comment = note;
|
comment = note;
|
||||||
}
|
}
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
using chestcrypto;
|
|
||||||
|
|
||||||
namespace keyring{
|
|
||||||
|
|
||||||
internal class KeyRingFile
|
|
||||||
{
|
|
||||||
private string storageFile = null;
|
|
||||||
|
|
||||||
internal KeyRingFile(string filePath){
|
|
||||||
storageFile = filePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
internal void write(byte[] data){
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,19 +1,38 @@
|
|||||||
using chestcrypto;
|
|
||||||
using chestcrypto.exceptions;
|
|
||||||
using chestcrypto.identity;
|
using chestcrypto.identity;
|
||||||
|
using chestcrypto.exceptions;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace keyring{
|
namespace keyring{
|
||||||
|
|
||||||
public class KeyRing
|
public class KeyRing
|
||||||
{
|
{
|
||||||
//private List<PublicIdentity> publicIdentities;
|
public List<PublicIdentity> publicIdentities { get; set; }
|
||||||
private List<PrivateIdentity> privateIdentities;
|
public List<PrivateIdentity> privateIdentities { get; set; }
|
||||||
|
|
||||||
public KeyRing(){
|
public KeyRing(){
|
||||||
//publicIdentities = new List<PublicIdentity>();
|
publicIdentities = new List<PublicIdentity>();
|
||||||
privateIdentities = new List<PrivateIdentity>();
|
privateIdentities = new List<PrivateIdentity>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void addPublicIdentity(PublicIdentity newIden){
|
||||||
|
foreach(PublicIdentity iden in publicIdentities){
|
||||||
|
if (Enumerable.ReferenceEquals(iden.getPublicKey(), iden)){
|
||||||
|
throw new DuplicateIdentityException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
publicIdentities.Add(newIden);
|
||||||
|
}
|
||||||
|
public void addPrivateIdentity(PrivateIdentity newIden){
|
||||||
|
foreach(PrivateIdentity iden in privateIdentities){
|
||||||
|
if (Enumerable.ReferenceEquals(iden.getPrivateKey(), iden)){
|
||||||
|
throw new DuplicateIdentityException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
privateIdentities.Add(newIden);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
25
treasurechest/profile/restoreKeyring.cs
Normal file
25
treasurechest/profile/restoreKeyring.cs
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
using System.IO;
|
||||||
|
|
||||||
|
using keyring;
|
||||||
|
|
||||||
|
namespace chestcrypto.profile{
|
||||||
|
|
||||||
|
public class RestoreKeyring{
|
||||||
|
|
||||||
|
private string profileDir;
|
||||||
|
|
||||||
|
public RestoreKeyring(string profileDirectory){
|
||||||
|
profileDir = profileDirectory;
|
||||||
|
|
||||||
|
if (! Directory.Exists(profileDir)){
|
||||||
|
Directory.CreateDirectory(profileDir); // Does not error if it exists already
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void getKeyring(){
|
||||||
|
KeyRing keyRing = new KeyRing();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user