static public void SaveBlindParticipant(APIServer server, GroupRepository groupRepository) { Console.WriteLine("Enter the group for which you want to register participants:"); var groupName = Console.ReadLine(); Console.WriteLine("Enter participant email address that you want to be saved as blind participant:"); var participantEmail = Console.ReadLine(); var group = server.GetGroupByName(groupName); var factor = File.ReadAllText("BlindFactor.txt"); BigInteger blindFactor = new BigInteger(factor); var fileToRead = (participantEmail.Substring(0, participantEmail.IndexOf("@")) + "PublicKey.txt").ToString(); RsaKeyParameters participantPublicKey = (RsaKeyParameters)RsaKeyUtils.GetDeserializedKPublicKey(File.ReadAllText(fileToRead)); GroupRegistration groupRegistration = new GroupRegistration(group, new ContentBlinder(group.RsaPublicKey, blindFactor), participantPublicKey); ClientParticipant clientParticipant = new ClientParticipant(server, groupRepository); VerifiedParticipant verifiedParticipant = clientParticipant.CheckVerifiedEntity(group, participantEmail, groupRegistration); clientParticipant.AddClientCertificate(verifiedParticipant, group, participantEmail); Console.WriteLine("Enter nickname:"); var nickname = Console.ReadLine(); clientParticipant.AddBlindParticipant(group.Id, verifiedParticipant, nickname); Console.WriteLine(); Console.WriteLine("Participant was saved as a blind participant to the group"); }
public static void SendMessageOnGroup(APIServer server, GroupRepository groupRepository) { Console.WriteLine("Enter the group on which you want to send messages:"); var groupName = Console.ReadLine(); string pubKeyFile = groupName + "PublicKey.txt"; string privKeyFile = groupName + "PrivateKey.txt"; Group group = server.GetGroupByName(groupName); if (pubKeyFile != null && privKeyFile != null) { var groupCreator = GetGroupCreator(server, pubKeyFile, privKeyFile); ParticipantMessage message = new ParticipantMessage(); Console.WriteLine("Enter the message you want to send:"); message.Message = Console.ReadLine(); Console.WriteLine("Enter your nickname:"); var nickname = Console.ReadLine(); ClientParticipant clientParticipant = new ClientParticipant(server, groupRepository); var blindparticipant = groupCreator.GetBlindParticipantByNickname(group.Id, nickname); VerifiedParticipant verifiedParticipant = new VerifiedParticipant { PublicKey = blindparticipant.PublicKey, Signature = blindparticipant.Signature }; message.BlindParticipant = blindparticipant.Id.ToString(); clientParticipant.AddMessage(group.Id, message, verifiedParticipant); Console.WriteLine("Participant verified"); Console.WriteLine("Message sent"); } else { Console.WriteLine("Group creator Keys were not saved to file, please go to step 1"); } }
static public void SignCertificate(APIServer server) { Console.WriteLine("Enter the group for which you want to register participants:"); string groupName = Console.ReadLine(); string pubKeyFile = groupName + "PublicKey.txt"; string privKeyFile = groupName + "PrivateKey.txt"; var groupCreator = GetGroupCreator(server, pubKeyFile, privKeyFile); var group = server.GetGroupByName(groupName); groupCreator.SignMessages(group); Console.WriteLine("Blind message was signed"); }