コード例 #1
0
        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();
        }
コード例 #2
0
        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");
        }
コード例 #3
0
        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();
        }