Example #1
0
        public IActionResult Index(RequestToken request)
        {
            ResponseToken token;

            if (string.IsNullOrEmpty(request.Username))
            {
                return(BadRequest(ResponseTokenError.InvalidRequest("username")));
            }
            else if (string.IsNullOrEmpty(request.Password))
            {
                return(BadRequest(ResponseTokenError.InvalidRequest("password")));
            }

            var passwordBase = _oAuth2PasswordBaseService.GetPasswordBaseByUsername(request.Username);

            if (passwordBase == null)
            {
                return(Unauthorized(ResponseTokenError.UnauthorizedClient("invalid username")));
            }
            else if (passwordBase.Password != SHA512Helper.Crip(request.Password))
            {
                return(Unauthorized(ResponseTokenError.UnauthorizedClient("invalid password")));
            }

            token = TokenHelper.GenerateToken(passwordBase, _configuration["OAuth2Configuration:Key"], int.Parse(_configuration["OAuth2Configuration:Expires:Password"]), _configuration["OAuth2Configuration:Issuer"], _configuration["OAuth2Configuration:Audience"]);
            return(Ok(token));
        }
Example #2
0
        private static bool CheckPassword(User user, string password)
        {
            var hash    = SHA512Helper.GetHash(password);
            var isValid = user.PasswordHash == hash;

            return(isValid);
        }
Example #3
0
        /// <summary>
        /// Создать пользователя
        /// </summary>
        public async Task CreateAsync(User user, string password, CancellationToken cancellationToken = default(CancellationToken))
        {
            user     = user ?? throw new ArgumentNullException(nameof(user));
            password = password ?? throw new ArgumentNullException(nameof(password));

            user.PasswordHash = SHA512Helper.GetHash(password);
            await _appDbContext.AddAsync(user, cancellationToken);

            await _appDbContext.SaveChangesAsync(cancellationToken);
        }
Example #4
0
        public void CheckPassword_Positive()
        {
            const string password = "******";

            IUserManager userManager = new UserManager(_mockDbContext.Object);
            var          user        = new User {
                PasswordHash = SHA512Helper.GetHash(password)
            };
            var isValid = userManager.CheckPassword(user, password);

            Assert.True(isValid);
        }
Example #5
0
        public void CheckPassword_Negative()
        {
            const string password1 = "123";
            const string password2 = "111";

            IUserManager userManager = new UserManager(_mockDbContext.Object);
            var          user        = new User {
                PasswordHash = SHA512Helper.GetHash(password1)
            };
            var isValid = userManager.CheckPassword(user, password2);

            Assert.False(isValid);
        }
        public void TupleHashCompute_Should_GenerateExpectedHash()
        {
            var expectedHash = "3696FB515910C43033D7BE0DD1ABFA4F3F8D8354EEC017D41F9" +
                               "3A344C9AAB02C006771824DC09C5040BEC8CE9C5FD3833D1301B62750726160098E9A1ED440E4";

            var arr1 = new byte[] { 0x00, 0x01, 0x02 };
            var arr2 = new byte[] { 0x10, 0x11, 0x12, 0x13, 0x14, 0x15 };
            var arr3 = new byte[] { 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28 };

            var domain = Bytes.FromString("My Tuple App");

            var tupleHash = new SHA512Helper();
            var hash      = tupleHash.ComputeHash(domain, arr1, arr2, arr3);

            Assert.Equal(expectedHash, Bytes.ToString(hash, StringEncoding.HEX).ToUpper());
        }
        public void HashToPoint_Should_GeneratePointOnCurve_When_RandomHashesArePassed()
        {
            var phe    = new PheCrypto();
            var swu    = new Swu(phe.Curve.Q, phe.Curve.B.ToBigInteger());
            var rng    = new SecureRandom();
            var sha512 = new SHA512Helper();

            var random = new byte[32];

            for (int i = 0; i <= 15000; i++)
            {
                rng.NextBytes(random);
                var hash = sha512.ComputeHash(null, random);
                var(x, y) = swu.DataToPoint(hash);
                Assert.True(phe.Curve.CreatePoint(x, y).IsValid());
            }
        }
        private static byte[] ComputeHash(byte[] content, string algorithm)
        {
            switch (algorithm.ToUpper())
            {
            case "MD5":
                return(MD5Helper.ComputeHash(content));

            case "SHA256":
                return(SHA256Helper.ComputeHash(content));

            case "SHA384":
                return(SHA384Helper.ComputeHash(content));

            case "SHA512":
                return(SHA512Helper.ComputeHash(content));

            default:
                return(SHA1Helper.ComputeHash(content));
            }
        }
        public void HashToPoint_Should_GeneratePointOnCurve_When_RandomHashesArePassed2()
        {
            var phe    = new PheCrypto();
            var swu    = new Swu(phe.Curve.Q, phe.Curve.B.ToBigInteger());
            var sha512 = new SHA512Helper();

            var data = new byte[]
            {
                0x80, 0x39, 0x05, 0x35, 0x49, 0x44, 0x70, 0xbe,
                0x0b, 0x29, 0x65, 0x01, 0x58, 0x6b, 0xfc, 0xd9,
                0xe1, 0x31, 0xc3, 0x9e, 0x2d, 0xec, 0xc7, 0x53,
                0xd4, 0xf2, 0x5f, 0xdd, 0xd2, 0x28, 0x1e, 0xe3,
            };

            var hash = sha512.ComputeHash(null, data);

            for (int i = 0; i <= 15000; i++)
            {
                var(x, y) = swu.DataToPoint(hash);
                Assert.True(phe.Curve.CreatePoint(x, y).IsValid());
                hash = sha512.ComputeHash(null, hash);
            }
        }
        public void HkdfGenerateBytes_Should_GenerateExpectedValue()
        {
            var expectedValue =
                "0F097707AAB66A4CD5FCC79CEB96FB4B99DE2E73DF09295E" +
                "CFF6F6CC7C1DCF169D51B62999BC206487800E8DD451518FA6C50F5C053B8B780208BE7164D3A7F2";
            var arr1 = new byte[] { 0x00, 0x01, 0x02 };
            var arr2 = new byte[] { 0x10, 0x11, 0x12, 0x13, 0x14, 0x15 };
            var arr3 = new byte[] { 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28 };

            var domain = Bytes.FromString("My Tuple App");
            var sha512 = new SHA512Helper();
            var key    = sha512.ComputeHash(null, arr1, arr2, arr3);

            var hkdf = new HkdfBytesGenerator(new Sha512Digest());
            var phe  = new PheCrypto();

            hkdf.Init(new HkdfParameters(key, domain, Domains.KdfInfoZ));
            var resultValue = new byte[64];

            hkdf.GenerateBytes(resultValue, 0, resultValue.Length);

            Assert.Equal(expectedValue, Bytes.ToString(resultValue, StringEncoding.HEX).ToUpper());
        }
Example #11
0
        public static void AdicionarDadosParaTeste(EcmDbContext context)
        {
            var conta = new ContaJuridica
            {
                Nome     = "Teste",
                Cnpj     = "12345678901234",
                Ie       = "12345678901",
                Email    = "*****@*****.**",
                Endereco = new Endereco {
                    Cep = "15000000", Bairro = "Bairro", Rua = "Rua", Numero = 0, UfId = "SP"
                }
            };

            context.Set <Conta>().Add(conta);

            var owner = new Usuario
            {
                Nome      = "OWNER",
                Senha     = SHA512Helper.Create("admin"),
                Email     = "admin",
                Sobrenome = "da Silva",
                Ativo     = true,
                Owners    = new List <UsuarioOwnerConta> {
                    new UsuarioOwnerConta {
                        Conta = conta, UsuarioId = 1
                    }
                }
            };

            owner.AssociarAConta <ContaUsuario, Usuario>(conta);

            context.Set <Usuario>().Add(owner);

            //var associacaoContaDrawer = context.Set<TecnoSet.ECM.Modelo.ImageNow.ContaDrawerImageNow>();
            //associacaoContaDrawer.Add(new Modelo.ImageNow.ContaDrawerImageNow
            //{
            //    Conta = conta,
            //    DrawerImageNowId = "321YY3Z_0006T4VBQ0001GW",
            //    DrawerImageNowNome = "TesteDesenv"
            //});


            var propriedade1 = new TipoDocumentoPropriedade {
                Nome = "Primeiro propriedade", Obrigatorio = true
            };
            var propriedade2 = new TipoDocumentoPropriedade {
                Nome = "Segunda", Obrigatorio = true
            };
            var propriedade3 = new TipoDocumentoPropriedade {
                Nome = "Terça", Obrigatorio = true
            };
            var propriedade4 = new TipoDocumentoPropriedade {
                Nome = "Quarta", Obrigatorio = true
            };
            var propriedade5 = new TipoDocumentoPropriedade {
                Nome = "Quinta", Obrigatorio = true
            };

            var tipoDocumentoDefault = new TipoDocumento
            {
                Nome         = "Padrão",
                Propriedades = new List <TipoDocumentoPropriedade> {
                    propriedade1, propriedade2, propriedade3, propriedade4, propriedade5
                }
            };

            tipoDocumentoDefault.AssociarAConta <ContaTipoDocumento, TipoDocumento>(conta);

            //var associacaoTipos = context.Set<TecnoSet.ECM.Modelo.ImageNow.TipoDocumentoImageNow>();
            //associacaoTipos.Add(new Modelo.ImageNow.TipoDocumentoImageNow
            //{
            //    DocumentTypeName = "Default",
            //    DocumentTypeId = "1000184816_1738021400",
            //    TipoDocumento = tipoDocumentoDefault
            //});

            byte i = 0;
            //var posicoesKey = context.Set<TecnoSet.ECM.Modelo.ImageNow.TipoDocumentoPosicaoPropriedadeImageNow>();
            //foreach (var propriedade in tipoDocumentoDefault.Propriedades)
            //{
            //    posicoesKey.Add(new Modelo.ImageNow.TipoDocumentoPosicaoPropriedadeImageNow { Posicao = i++, TipoDocumentoPropriedade = propriedade });
            //}

            // context.SaveChanges();


            var novasAtividades = new List <Atividade>
            {
                new Atividade {
                    Ordem = 0, Id = Claims.Documento.DoTipo(tipoDocumentoDefault.Id, Claims.ler), Nome = "Ler"
                },
                new Atividade {
                    Ordem = 1, Id = Claims.Documento.DoTipo(tipoDocumentoDefault.Id, Claims.criar), Nome = "Incluir"
                },
                new Atividade {
                    Ordem = 2, Id = Claims.Documento.DoTipo(tipoDocumentoDefault.Id, Claims.alterar), Nome = "Alterar"
                },
                new Atividade {
                    Ordem = 3, Id = Claims.Documento.DoTipo(tipoDocumentoDefault.Id, Claims.excluir), Nome = "Excluir"
                },
                new Atividade {
                    Ordem = 4, Id = Claims.Documento.DoTipo(tipoDocumentoDefault.Id, Claims.Documento.Download), Nome = "Download"
                }
            };

            context.Set <AtividadeTipoDocumento>().Add(new AtividadeTipoDocumento
            {
                AtividadePaiId  = "doc",
                Id              = string.Concat(Claims.Documento.PrefixoAtividadeTipoDoc, tipoDocumentoDefault.Id),
                TipoDocumentoId = tipoDocumentoDefault.Id,
                Atividades      = novasAtividades
            });
            //  context.SaveChanges();
        }