Ejemplo n.º 1
0
        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."));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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."));
        }