public async Task <IActionResult> SuggestContract([FromRoute] string userId) { try { var isUserAlreadyRegistered = _context.PrivateData.Where(x => x.UserId == userId).Any(); if (!isUserAlreadyRegistered) { var fingerprint = await GetFingerprint(); var keys = RsaCenter.GetKeys(); var record = new PrivateData() { UserId = userId, Fingerprint = fingerprint, RsaParameters = keys }; _context.PrivateData.Add(record); await _context.SaveChangesAsync(); return(Ok()); } else { return(Ok("The user is already registered in the system.")); } } catch { } return(BadRequest("The user is not successfully registered.")); }
public async Task <IActionResult> VerifySign([FromBody] SignatureModel signature) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var rsaParameters = _context.PrivateData.Where(x => x.UserId == signature.UserId).FirstOrDefault().RsaParameters; var isValid = RsaCenter.Verify(signature.Hash, signature.Sign, rsaParameters); return(Ok(isValid)); }
public async Task <IActionResult> SignContract([FromBody] string userId, byte[] hash) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var isUserAuthorized = await VerifyUser(userId); if (isUserAuthorized) { var rsaParameters = _context.PrivateData.Where(x => x.UserId == userId).FirstOrDefault().RsaParameters; var sign = RsaCenter.Sign(hash, rsaParameters); return(Ok(sign)); } return(BadRequest("The user is not authorized. The contract can not be signed.")); }