public virtual void TestProcessSignResponseBadOrigin() { mockDataStore.Setup(x => x.GetSignSessionData(SESSION_ID)) .Returns(new SignSessionData(ACCOUNT_NAME, APP_ID_SIGN, SERVER_CHALLENGE_SIGN, USER_PUBLIC_KEY_SIGN_HEX)); var u2FServer = new U2FServerReferenceImpl(mockChallengeGenerator.Object , mockDataStore.Object, crypto, new List<string> { "http://some-other-domain.com"}); var signResponse = new SignResponse(BROWSER_DATA_SIGN_BASE64, SIGN_RESPONSE_DATA_BASE64, SERVER_CHALLENGE_SIGN_BASE64, SESSION_ID, APP_ID_SIGN); try { u2FServer.ProcessSignResponse(signResponse); Assert.Fail("expected exception, but didn't get it"); } catch (U2FException e) { Assert.IsTrue(e.Message.Contains("is not a recognized home origin")); } }
// (currently, this test uses an enrollment browserdata during a signature) public virtual void TestProcessSignResponse2() { mockDataStore.Setup(x => x.GetSignSessionData(SESSION_ID)) .Returns(new SignSessionData(ACCOUNT_NAME, APP_ID_2, SERVER_CHALLENGE_SIGN, USER_PUBLIC_KEY_2)); mockDataStore.Setup(x => x.GetSecurityKeyData(ACCOUNT_NAME)) .Returns(new List<SecurityKeyData> { new SecurityKeyData(0L, KEY_HANDLE_2, USER_PUBLIC_KEY_2, VENDOR_CERTIFICATE, 0) }); var u2FServer = new U2FServerReferenceImpl(mockChallengeGenerator.Object, mockDataStore.Object, crypto, TRUSTED_DOMAINS); var signResponse = new SignResponse(BROWSER_DATA_2_BASE64, SIGN_DATA_2_BASE64, CHALLENGE_2_BASE64, SESSION_ID, APP_ID_2); u2FServer.ProcessSignResponse(signResponse); }
public virtual void TestProcessSignResponse() { mockDataStore.Setup(x => x.GetSignSessionData(SESSION_ID)) .Returns(new SignSessionData(ACCOUNT_NAME, APP_ID_SIGN, SERVER_CHALLENGE_SIGN, USER_PUBLIC_KEY_SIGN_HEX)); var u2FServer = new U2FServerReferenceImpl(mockChallengeGenerator.Object, mockDataStore.Object, crypto, TRUSTED_DOMAINS); var signResponse = new SignResponse(BROWSER_DATA_SIGN_BASE64, SIGN_RESPONSE_DATA_BASE64, SERVER_CHALLENGE_SIGN_BASE64, SESSION_ID, APP_ID_SIGN); u2FServer.ProcessSignResponse(signResponse); }