Example #1
0
        public ECPoint RandomizeToken(AnonymousTokenState state, GenerateTokenResponseModel tokenResponse, ECPoint K)
        {
            var Q = _ecParameters.Curve.DecodePoint(Convert.FromBase64String(tokenResponse.SignedPoint));
            var c = new BigInteger(Convert.FromBase64String(tokenResponse.ProofChallenge));
            var z = new BigInteger(Convert.FromBase64String(tokenResponse.ProofResponse));

            return(_initiator.RandomiseToken(_ecParameters, K, state.P, Q, c, z, state.r));
        }
Example #2
0
        public ECPoint RandomizeToken(AnonymousTokenState state, GenerateTokenResponseModel tokenResponse, ECPublicKeyParameters K)
        {
            var Q = _ecParameters.Curve.DecodePoint(Hex.Decode(tokenResponse.QAsHex));
            var c = new BigInteger(Hex.Decode(tokenResponse.ProofCAsHex));
            var z = new BigInteger(Hex.Decode(tokenResponse.ProofZAsHex));

            return(_initiator.RandomiseToken(_ecParameters, K, state.P, Q, c, z, state.r));
        }
Example #3
0
        private async Task <ECPoint> GetPublicKeyAsync(GenerateTokenResponseModel tokenResponse)
        {
            string kid      = tokenResponse.Kid;
            var    request  = new HttpRequestMessage(HttpMethod.Get, OAuthConf.OAUTH2_ANONTOKEN_URL + "/atks");
            var    response = await new HttpClient().SendAsync(request);

            if (!response.IsSuccessStatusCode)
            {
                throw new WebServiceHttpException(response, OAuthConf.OAUTH2_ANONTOKEN_URL + "/atks");
            }
            var anonTokenKeyStoreResponse = JsonConvert.DeserializeObject <AnonymousTokenKeyStoreResponseModel>(await response.Content.ReadAsStringAsync());

            return(DecodePublicKey(anonTokenKeyStoreResponse.Keys.Single(k => k.Kid == kid)));
        }