示例#1
0
        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");
        }
示例#2
0
        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");
            }
        }
示例#3
0
        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");
        }