private static void TestSoftwareOnly() { var key = new SimulatedU2FKey( TestVectors.VENDOR_CERTIFICATE, TestVectors.VENDOR_CERTIFICATE_PRIVATE_KEY, new TestKeyPairGenerator(), new GuidKeyHandleGenerator(), new InMemoryKeyDataStore(), new ConsolePresenceVerifier(), new BouncyCastleKeyCrypto()); var server = new U2FServerReferenceImpl( new ChallengeGenerator(), new InMemoryServerDataStore(new GuidSessionIdGenerator()), new BouncyCastleServerCrypto(), new [] { "http://example.com", "https://example.com" }); var client = new U2FClientReferenceImpl( BouncyCastleClientCrypto.Instance, new SimpleOriginVerifier(new[] { "http://example.com", "https://example.com" }), new ChannelProvider(), server, key, SystemClock.Instance); client.Register("http://example.com", "vbfox"); client.Authenticate("http://example.com", "vbfox"); Console.WriteLine("Done."); Console.ReadLine(); }
public virtual void TestRegister() { mockU2FServer.Setup(x => x.GetRegistrationRequest(ACCOUNT_NAME, APP_ID_ENROLL)) .Returns(new RegisterRequest(U2FConsts.U2Fv2, SERVER_CHALLENGE_ENROLL_BASE64, APP_ID_ENROLL, SESSION_ID)); mockOriginVerifier.Setup(x => x.ValidateOrigin(APP_ID_ENROLL, ORIGIN)); mockU2FKey.Setup(x => x.Register(new KeyRegisterRequest(APP_ID_ENROLL_SHA256, BROWSER_DATA_ENROLL_SHA256))) .Returns(new KeyRegisterResponse(USER_PUBLIC_KEY_ENROLL_HEX, KEY_HANDLE, VENDOR_CERTIFICATE, SIGNATURE_ENROLL)); mockU2FServer.Setup(x => x.ProcessRegistrationResponse(new RegisterResponse(REGISTRATION_DATA_BASE64, BROWSER_DATA_ENROLL_BASE64, SESSION_ID), 0L)) .Returns(new SecurityKeyData(0L, KEY_HANDLE, USER_PUBLIC_KEY_ENROLL_HEX, VENDOR_CERTIFICATE, 0)); u2FClient.Register(ORIGIN, ACCOUNT_NAME); }