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); }
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))); }
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)); }