示例#1
0
        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);
        }
示例#2
0
    /// <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);
    }
示例#3
0
 void RegisterCallback(RegisterOperationResult result)
 {
     Debug.Log("Got response of registration!");
     //Debug.Log(result.Text);
 }