예제 #1
0
        public void AddQueryServer(QueryServerConnection Description, Cryptography.Key MasterSeed)
        {
            MasterQueryServerConnection Connection;
            Connection = (MasterQueryServerConnection) Description;
            Connection.MasterSeed = MasterSeed;

            QueryServers.Add(Connection);
        }
예제 #2
0
 public void AddQueryServer(QueryServerConnection Description, Cryptography.Key MasterSeed)
 {
     Context.AddQueryServer(Description, MasterSeed);
 }
예제 #3
0
        public override void Bind(string Domain, string Account, string PIN)
        {
            byte [] Challenge = Cryptography.Nonce();

            OpenRequest OpenRequest = new OpenRequest ();
            OpenRequest.DeviceID = DeviceID;
            OpenRequest.DeviceURI = DeviceURI;
            OpenRequest.DeviceName = DeviceName;

            OpenRequest.Authentication = Authentication;
            OpenRequest.Encryption = Encryption;

            OpenRequest.Domain = Domain;
            OpenRequest.Account = Account;

            OpenRequest.HavePasscode = (PIN != null);
            OpenRequest.HaveDisplay = true;

            OpenRequest.Challenge = Challenge;

            OpenResponse ResponseOut = (OpenResponse) ConnectionBinding.RequestResponse (OpenRequest);

            // Check the server Response to our challenge here

            ConnectionBinding.SetCrypto (ResponseOut.Cryptographic[0]);
            TicketRequest TicketRequest = new TicketRequest ();
            TicketRequest.ChallengeResponse = Cryptography.ClientChallengeResponse(
                        PIN, Challenge, ResponseOut.Challenge, Cryptography.Authentication.Unknown);

            TicketResponse ResponseOut2 =  (TicketResponse) ConnectionBinding.RequestResponse (TicketRequest);

            ConnectionBinding.SetCrypto (ResponseOut2.Cryptographic[0]);

            QueryServers = new QueryServerConnection [ResponseOut2.Service.Count];

            foreach (OBPConnection.Connection Connection in ResponseOut2.Service) {
                QueryServerConnection QueryServerConnection = new QueryServerConnection();

                Console.WriteLine("Got a connection to {0}, type {1}",
                        Connection.Name, Connection.Transport);

                if (Connection.Transport == "WebService") {
                    WebBinding.SetCrypto (Connection.Cryptographic);
                    }
                }

            // Need to add in all the rest of the parameters here

            //DNSBinding = new DirectQueryBinding (Transport.DNS);
            //UDPBinding = new DirectQueryBinding (Transport.UDP);
        }