Example #1
0
        private async void ButtonGetAssertion_Click(object sender, RoutedEventArgs e)
        {
            GetFirstUSBDevice();
            var rpid      = "test.com";
            var challenge = AttestationVerifier.CreateChallenge();
            var param     = new g.FIDO2.CTAP.CTAPCommandGetAssertionParam(rpid, challenge, creid);

            param.Option_up = true;

            var res = await con.GetAssertionAsync(param, "1234");

            if (res.DeviceStatus == g.FIDO2.CTAP.DeviceStatus.NotConnected)
            {
                // FIDOキーが接続されていない場合
                return;
            }
            else if (res.DeviceStatus == g.FIDO2.CTAP.DeviceStatus.Timeout)
            {
                // FIDOキーのタッチ待ちでTimeoutした場合
                return;
            }
            else if (res.DeviceStatus == g.FIDO2.CTAP.DeviceStatus.Ok)
            {
                string verifyResult = "";
                if (res.CTAPResponse.Assertion != null)
                {
                    // verify
                    var v      = new AssertionVerifier();
                    var verify = v.Verify(rpid, pubkey, challenge, res.CTAPResponse.Assertion);
                    verifyResult = $"- Verify = {verify.IsSuccess}";
                }
                MessageBox.Show($"GetAssertionAsync\r\n- Status = {res.CTAPResponse.Status}\r\n- StatusMsg = {res.CTAPResponse.StatusMsg}\r\n{verifyResult}");
            }
        }
Example #2
0
        private void RunAssertion(AssertionBase assertion, int fairnessIndex, int engineIndex)
        {
            AssertionVerifier verifier = new AssertionVerifier(assertion, fairnessIndex, engineIndex);
            ThreadedExecuter <DiagnosisResult> executer = new ThreadedExecuter <DiagnosisResult>(verifier.Run, gatherResults);

            executer.Start();
        }
Example #3
0
        public ClassRule Create(IFilter <IClassInfo> filter, bool negateAssertion)
        {
            var assertions = new Filter <IClassInfo>(filter.FilteredItems);
            var verifier   = new AssertionVerifier <IClassInfo>(filter, assertions, negateAssertion, new TestResultLogger());

            return(new ClassRule(verifier));
        }
Example #4
0
        public DiagnosisResult executeAssertion(SpecificationBase spec, String assertionName)
        {
            AssertionBase     assertion = spec.AssertionDatabase[assertionName];
            AssertionVerifier verifier  = new AssertionVerifier(assertion, 1, 0);

            return(verifier.Run());
        }
Example #5
0
        private async void ButtonGetAssertion_Click(object sender, RoutedEventArgs e)
        {
            addLog("<getAssertion>");

            var rpid      = "BLEtest.com";
            var challenge = Encoding.ASCII.GetBytes("this is challenge");

            byte[] creid = null;

            //Get the credential id entered in the text box (or stored from make credential)
            if (!string.IsNullOrEmpty(textBoxCreID.Text))
            {
                creid = g.FIDO2.Common.HexStringToBytes(textBoxCreID.Text);
            }
            var param = new g.FIDO2.CTAP.CTAPCommandGetAssertionParam(rpid, challenge, creid);

            param.Option_up = false;
            param.Option_uv = true;

            //param.UseHmacExtension = true;

            //var res = await con.GetAssertion(param);
            var res = await con.GetAssertionAsync(param, "");

            LogResponse(res.DeviceStatus, res.CTAPResponse);

            if (res?.CTAPResponse?.Assertion?.NumberOfCredentials > 0)
            {
                for (int intIc = 0; intIc < res.CTAPResponse.Assertion.NumberOfCredentials - 1; intIc++)
                {
                    var next = await con.GetNextAssertionAsync();

                    LogResponse(next.DeviceStatus, next.CTAPResponse);
                }
            }

            if (res.DeviceStatus == g.FIDO2.CTAP.DeviceStatus.Ok)
            {
                if (res.CTAPResponse.Assertion != null)
                {
                    // verify
                    var v      = new AssertionVerifier();
                    var verify = v.Verify(rpid, pubkey, challenge, res.CTAPResponse.Assertion);
                    addLog($"- Verify = {verify.IsSuccess}");
                }
            }
        }