public async Task Register() { var keySignRequests = new[] { new KeySignRequest(U2FVersion.V2, BROWSER_DATA_SIGN_SHA256, APP_ID_SIGN_SHA256, KEY_HANDLE) }; var keyRegisterRequests = new[] { new KeyRegisterRequest(APP_ID_ENROLL_SHA256, BROWSER_DATA_ENROLL_SHA256) }; keyOperations .Setup( x => x.Register( It.Is <ICollection <KeyRegisterRequest> >(reqs => reqs.SequenceEqual(keyRegisterRequests)), It.Is <ICollection <KeySignRequest> >(reqs => reqs.SequenceEqual(keySignRequests)), It.IsAny <CancellationToken>())) .Returns( (ICollection <KeyRegisterRequest> registerReqs, ICollection <KeySignRequest> signReqs, CancellationToken ct) => Task.FromResult( RegisterOperationResult.Success( registerReqs.Single(), new KeyRegisterResponse( USER_PUBLIC_KEY_ENROLL_HEX, KEY_HANDLE, VENDOR_CERTIFICATE, SIGNATURE_ENROLL)))); var signRequest = new SignRequest(U2FConsts.U2Fv2, SERVER_CHALLENGE_SIGN_BASE64, APP_ID_SIGN, KEY_HANDLE_BASE64, SESSION_ID); var registerRequest = new RegisterRequest(U2FConsts.U2Fv2, SERVER_CHALLENGE_ENROLL_BASE64, APP_ID_ENROLL, SESSION_ID); var result = await u2FClient.Register(new [] { registerRequest }, new[] { signRequest }, CancellationToken.None); Assert.AreEqual(new RegisterResponse(REGISTRATION_DATA_BASE64, BROWSER_DATA_ENROLL_BASE64, SESSION_ID), result); }
/// <summary> /// Executes the RegisterOperation asynchronously. The RegisterOperationCallback will be invoked when the operation has completed. /// </summary> /// <param name="registerOperationCallback">The RegisterOperationCallback to be invoked when the operation completes.</param> public void ExecuteAsync(RegisterOperationCallback registerOperationCallback) { Asserter.NotNull(registerOperationCallback, "RegisterOperation.ExecuteAsync:registerOperationCallback is null"); WebOperationCallback webOperationCallback = (ResultSet results) => { RegisterOperationResult result = CreateResultFromResultSet(results); registerOperationCallback(result); }; WebOperation.ExecuteAsync(new WebOperationCriteria(WebOperationURLs.GetURL(GetType()), CreateFieldDictionaryFromCriteria(_criteria)), webOperationCallback); }
void RegisterCallback(RegisterOperationResult result) { Debug.Log("Got response of registration!"); //Debug.Log(result.Text); }