public async Task Verify_Should_Reject_Forged_Token() { var service = new AnonymousTokenService(ecParameters); var tokenState = service.GenerateTokenRequest(); GenerateTokenResponseModel tokenResponse = await GenerateTokenAsync(await inMemoryPrivateKeyStore.GetAsync(), publicKeyStore, ecParameters, tokenState.P); var privateKey = GeneratePrivateKey(); var token = service.RandomizeToken(tokenState, tokenResponse, await publicKeyStore.GetAsync()); (await VerifyToken(privateKey, ecParameters, tokenState, token)).Should().BeFalse(); }
public async Task RandomizeToken_Should_Reject_Token_From_Rogue_Generator() { var service = new AnonymousTokenService(ecParameters); var tokenState = service.GenerateTokenRequest(); var privateKey = GeneratePrivateKey(); GenerateTokenResponseModel tokenResponse = await GenerateTokenAsync(privateKey, publicKeyStore, ecParameters, tokenState.P); var publicKey = (await publicKeyStore.GetAsync()).Q; Assert.Throws <AnonymousTokensException>(() => service.RandomizeToken(tokenState, tokenResponse, publicKey)) .Message.Should().Contain("proof is invalid"); }
public async Task GenerateToken_Generates_Valid_Token() { var privateKey = await inMemoryPrivateKeyStore.GetAsync(); var service = new AnonymousTokenService(ecParameters); var tokenState = service.GenerateTokenRequest(); GenerateTokenResponseModel tokenResponse = await GenerateTokenAsync(privateKey, publicKeyStore, ecParameters, tokenState.P); var token = service.RandomizeToken(tokenState, tokenResponse, await publicKeyStore.GetAsync()); (await VerifyToken(privateKey, ecParameters, tokenState, token)).Should().BeTrue(); }