public async Task <bool> Verify(VerifyTokenRequestModel model) { var k = await _privateKeyStore.GetAsync(); var t = Hex.Decode(model.tAsHex); var W = _ecParameters.Curve.DecodePoint(Hex.Decode(model.WAsHex)); var isValid = await _tokenVerifier.VerifyTokenAsync(k, _ecParameters.Curve, t, W); return(isValid); }
public async Task <bool> IsTokenValid(string anonymousToken) { var parts = anonymousToken.Split("."); var submittedPoint = _anonymousTokenKeySource.ECParameters.Curve.DecodePoint(Convert.FromBase64String(parts[0])); var tokenSeed = Convert.FromBase64String(parts[1]); var keyId = parts[2]; var privateKey = _anonymousTokenKeySource.GetPrivateKey(keyId); var isValid = await _tokenVerifier.VerifyTokenAsync(privateKey, _anonymousTokenKeySource.ECParameters.Curve, tokenSeed, submittedPoint); return(isValid); }
public async Task <Response <UserDto> > SetUserClaims(string uid) { var response = new Response <UserDto>(); try { var claimsDto = await _tokenVerifier.VerifyTokenAsync(uid); if (claimsDto == null) { return(response); } var userExist = await _authContext.Users.FirstOrDefaultAsync(x => x.GoogleId == claimsDto.Claims["user_id"].ToString()); if (userExist == null) { var user = await CreateNewUser(claimsDto); var claims = new Dictionary <string, object> { { "Id", user.Id }, { "User", true } }; await _tokenVerifier.AddClaims(claimsDto.Subject, claims); await SendNewProfileCreated(user); response.Data = _mapper.Map <User, UserDto>(user); response.Success = true; _logger.LogInformation("Set user claims of user: "******"Claims could not be added to user!"); throw; } catch (ArgumentNullException) { _logger.LogError("Claims could not be added to user!"); throw; } return(response); }