コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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));
        }