2020-05-28 22:14:45 +00:00
|
|
|
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;
|
2020-05-11 07:08:46 +00:00
|
|
|
|
|
|
|
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; }
|
2020-05-11 07:08:46 +00:00
|
|
|
|
2020-05-28 22:14:45 +00:00
|
|
|
public KeyRing(){
|
2020-06-05 04:16:05 +00:00
|
|
|
publicIdentities = new List<PublicIdentity>();
|
2020-05-28 22:14:45 +00:00
|
|
|
privateIdentities = new List<PrivateIdentity>();
|
2020-05-11 07:08:46 +00:00
|
|
|
}
|
2020-06-05 04:16:05 +00:00
|
|
|
|
|
|
|
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);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2020-05-11 07:08:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|