treasurechest/treasurechest/keyring/keyring.cs

38 lines
1.2 KiB
C#
Raw Normal View History

using chestcrypto.identity;
2020-06-05 04:16:05 +00:00
using chestcrypto.exceptions;
2020-05-16 03:48:05 +00:00
using System.Collections.Generic;
2020-06-05 04:16:05 +00:00
using System.Linq;
namespace keyring{
public class KeyRing
{
2020-06-05 04:16:05 +00:00
public List<PublicIdentity> publicIdentities { get; set; }
public List<PrivateIdentity> privateIdentities { get; set; }
public KeyRing(){
2020-06-05 04:16:05 +00:00
publicIdentities = new List<PublicIdentity>();
privateIdentities = new List<PrivateIdentity>();
}
2020-06-05 04:16:05 +00:00
public void addPublicIdentity(PublicIdentity newIden){
foreach(PublicIdentity iden in publicIdentities){
2020-06-08 07:59:43 +00:00
if (Enumerable.SequenceEqual(iden.getPublicKey().getRawDouble(), newIden.getPublicKey().getRawDouble())){
2020-06-05 04:16:05 +00:00
throw new DuplicateIdentityException();
}
}
publicIdentities.Add(newIden);
}
public void addPrivateIdentity(PrivateIdentity newIden){
foreach(PrivateIdentity iden in privateIdentities){
2020-06-08 07:59:43 +00:00
if (Enumerable.SequenceEqual(iden.getPrivateKey().getRawDouble(), newIden.getPrivateKey().getRawDouble())){
2020-06-05 04:16:05 +00:00
throw new DuplicateIdentityException();
}
}
privateIdentities.Add(newIden);
}
}
}