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}"); } }
public Page2() { InitializeComponent(); var challenge = AttestationVerifier.CreateChallenge(); this.TextChallenge.Text = Common.BytesToHexString(challenge); }
public Page5(byte[] creid, string pubkey) { InitializeComponent(); var challenge = AttestationVerifier.CreateChallenge(); this.TextChallenge.Text = Common.BytesToHexString(challenge); if (creid != null) { this.TextCredentialID.Text = Common.BytesToHexString(creid); } if (pubkey != null) { this.TextPublickKey.Text = pubkey; } }
private async void ButtonMakeCredential_Click(object sender, RoutedEventArgs e) { GetFirstUSBDevice(); string rpid = "test.com"; var challenge = AttestationVerifier.CreateChallenge(); var param = new g.FIDO2.CTAP.CTAPCommandMakeCredentialParam(rpid, challenge); var res = await con.MakeCredentialAsync(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.Status == 0) { if (res.CTAPResponse.Attestation != null) { // verify var v = new AttestationVerifier(); var verify = v.Verify(rpid, challenge, res.CTAPResponse.Attestation); verifyResult = $"- Verify = {verify.IsSuccess}\r\n- CredentialID = {Common.BytesToHexString(verify.CredentialID)}\r\n- PublicKey = {verify.PublicKeyPem}"; if (verify.IsSuccess) { // store creid = verify.CredentialID.ToArray(); pubkey = verify.PublicKeyPem; } } } MessageBox.Show($"MakeCredentialAsync\r\n- Status = {res.CTAPResponse.Status}\r\n- StatusMsg = {res.CTAPResponse.StatusMsg}\r\n{verifyResult}"); } }