public async Task <BigInteger> GetPrism(Guid user) { var vault = await GetById(user); return(vault != null ? vault.Prismi : await _manager.GetPrism(user)); }
public async Task <ActionResult <ApplyResponse> > Apply([FromRoute] Guid uid, [FromRoute] string pass) { if (!pass.FromBase64UrlString(out byte[] bytesPass)) { _logger.LogInformation($"Apply: Invalid pass for {uid}"); return(BadRequest("Invalid parameters")); } C25519Point g; try { g = C25519Point.From(bytesPass); if (!g.IsValid) { _logger.LogInformation($"Apply: Invalid point for {uid}"); return(BadRequest("Invalid parameters")); } } catch (ArgumentException) { _logger.LogInformation($"Apply: Invalid point for {uid} with error"); return(BadRequest("Invalid parameters")); } var s = await _manager.GetPrism(uid); if (s == BigInteger.Zero) { _logger.LogInformation($"Apply: Account {uid} does not exist"); return(BadRequest("Invalid parameters")); } var gs = g * s; _logger.LogInformation($"Login attempt for {uid}", uid, pass); return(new ApplyResponse { Prism = gs.ToByteArray(), Token = new TranToken().ToByteArray() }); }