public void JsonDataRoundTrip()
        {
            var date = DateTime.UtcNow;

            var claims = new PasetoInstance
            {
                Issuer           = "http://auth.example.com",
                Subject          = "2986689",
                Audience         = "audience",
                Expiration       = new DateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second, date.Kind).AddMinutes(10),
                NotBefore        = new DateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second, date.Kind).AddMinutes(-10),
                IssuedAt         = new DateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second, date.Kind),
                AdditionalClaims = new Dictionary <string, object>
                {
                    ["roles"] = new[] { "Admin", "User" }
                },
                Footer = new Dictionary <string, object>
                {
                    ["kid"] = "dpm0"
                },
            };

            string token       = PasetoUtility.Sign(_publicKey, _privateKey, claims);
            var    parsedToken = PasetoUtility.Parse(_publicKey, token);

            Assert.Equal(claims.Issuer, parsedToken.Issuer);
            Assert.Equal(claims.Subject, parsedToken.Subject);
            Assert.Equal(claims.Audience, parsedToken.Audience);
            Assert.Equal(claims.Expiration, parsedToken.Expiration);
            Assert.Equal(claims.NotBefore, parsedToken.NotBefore);
            Assert.Equal(claims.IssuedAt, parsedToken.IssuedAt);
            Assert.Equal(claims.AdditionalClaims, parsedToken.AdditionalClaims);
            Assert.Equal(claims.Footer, parsedToken.Footer);
        }
Beispiel #2
0
 protected string autenticarToken(string token, string chavePublica)
 {
     byte[] _publicKey = HexToBytes(chavePublica);
     if (Object.Equals(PasetoUtility.Parse(_publicKey, token, validateTimes: true), null))
     {
         return("Token NÃO autenticado/válido!");
     }
     return("Token autenticado/válido!");
 }
        public void Parse(string message, string payload, string footer = "")
        {
            var parsed = PasetoUtility.ParseBytes(_publicKey, message);

            Assert.Equal(payload, Encoding.UTF8.GetString(parsed.Payload));
            Assert.Equal(footer, Encoding.UTF8.GetString(parsed.Footer));

            Assert.Null(PasetoUtility.Parse(new byte[32], message));
        }
        public void FutureTokenDoesNotParse()
        {
            var testClaims = new PasetoInstance
            {
                NotBefore = DateTime.UtcNow.AddMinutes(1),
                Subject   = "2986689",
            };

            Assert.NotNull(PasetoUtility.Parse(_publicKey, PasetoUtility.Sign(_publicKey, _privateKey, claims: testClaims), validateTimes: false));
            Assert.Null(PasetoUtility.Parse(_publicKey, PasetoUtility.Sign(_publicKey, _privateKey, claims: testClaims)));
            testClaims.NotBefore = DateTime.UtcNow.AddMinutes(-1);
            Assert.NotNull(PasetoUtility.Parse(_publicKey, PasetoUtility.Sign(_publicKey, _privateKey, claims: testClaims)));
        }
Beispiel #5
0
        public static Indentificacao ValidarToken(string token)
        {
            byte[] _publicKey = HexToBytes(ConfigurationManager.AppSettings["chavePublica"]);

            var tokenDescodificado = PasetoUtility.Parse(_publicKey, token, validateTimes: true);

            if (Object.Equals(tokenDescodificado, null))
            {
                return(null);
            }

            Indentificacao ident = new Indentificacao();

            ident.Usu_codigo = converteObjStr(tokenDescodificado.AdditionalClaims["usu_codigo"]);
            ident.Pes_codigo = converteObjStr(tokenDescodificado.AdditionalClaims["pes_codigo"]);
            ident.End_codigo = converteObjStr(tokenDescodificado.AdditionalClaims["end_codigo"]);
            ident.Ins_codigo = converteObjStr(tokenDescodificado.AdditionalClaims["ins_codigo"]);
            ident.Tus_codigo = Convert.ToInt32(converteObjStr(tokenDescodificado.AdditionalClaims["tus_codigo"]));

            return(ident);
        }
        public void InvalidJsonThrows(string str)
        {
            string token = PasetoUtility.SignBytes(_publicKey, _privateKey, Encoding.UTF8.GetBytes(str));

            Assert.Throws <PasetoFormatException>(() => PasetoUtility.Parse(_publicKey, token));
        }
        public void TimezonesAreAllowed(string tokenJson)
        {
            var signedBytes = PasetoUtility.SignBytes(_publicKey, _privateKey, Encoding.UTF8.GetBytes(tokenJson));

            Assert.Equal("2018-03-20T07:00:00+00:00", PasetoUtility.Parse(_publicKey, signedBytes, validateTimes: false).Expiration.Value.ToString(Iso8601Format));
        }
 public void EmptyTokenRoundTrip()
 {
     PasetoUtility.Parse(_publicKey, PasetoUtility.SignBytes(_publicKey, _privateKey, Encoding.UTF8.GetBytes("{}")));
     Assert.Equal("{}", Encoding.UTF8.GetString(PasetoUtility.ParseBytes(_publicKey, PasetoUtility.Sign(_publicKey, _privateKey, new PasetoInstance())).Payload));
 }