public async Task <IActionResult> OneTimeSignIn([FromBody] Credentials credentials) { Credentials hashedCredentials = new Credentials(); hashedCredentials.UniqueKey = CustomHashing.ComputeSha256Hash(credentials.UniqueKey); hashedCredentials.PrimaryKey = CustomEncryption.Encrypt(credentials.PrimaryKey, credentials.UniqueKey); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } GenericResponse <Credentials> response = new GenericResponse <Credentials>(); try { _context.Credentials.Add(hashedCredentials); await _context.SaveChangesAsync(); response.HasError = false; response.Messege = "successfull"; response.Result = hashedCredentials; response.StatusCode = 200; } catch (Exception e) { response.HasError = true; response.Messege = e.ToString(); response.Result = null; response.StatusCode = 400; } return(Ok(response)); }
private Credentials getPrivateKey(string UniqueKey) { var password = CustomHashing.ComputeSha256Hash(UniqueKey); var model = _context.Credentials.Where(p => p.UniqueKey == password).FirstOrDefault(); if (model != null) { model.PrimaryKey = CustomEncryption.Decrypt(model.PrimaryKey, UniqueKey); } return(model); }
public async Task <IActionResult> CreateWallet(string uniqueKey) { GenericResponse <Account> response = new GenericResponse <Account>(); Credentials model = new Credentials(); BlockChainController chainController = new BlockChainController(); try { var account = await chainController .CreateWallet(uniqueKey); model.UniqueKey = CustomHashing.ComputeSha256Hash(uniqueKey); model.PrimaryKey = CustomEncryption.Encrypt(account.PrivateKey, uniqueKey); _context.Credentials.Add(model); await _context.SaveChangesAsync(); if (account != null) { response.HasError = false; response.Messege = "Sucessfull"; response.Result = account; response.StatusCode = 200; } } catch (Exception e) { response.HasError = true; response.Messege = "unsucessfull"; response.Result = null; response.StatusCode = 400; } return(Ok(response)); }