Annotate

spec/util_encodings_spec.lua @ 12694:26a004c96ef8

util.paseto: Implementation of PASETO v4.public tokens PASETO provides an alternative to JWT with the promise of fewer implementation pitfalls. The v4.public algorithm allows asymmetric cryptographically-verified token issuance and validation. In summary, such tokens can be issued by one party and securely verified by any other party independently using the public key of the issuer. This has a number of potential applications in a decentralized network and ecosystem such as XMPP. For example, such tokens could be combined with XEP-0317 to allow hats to be verified even in the context of a third-party MUC service.
author Matthew Wild <mwild1@gmail.com>
date Fri, 24 Jun 2022 17:03:28 +0100
parent 8373:af7b41a0ec9e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8236
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
1
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
2 local encodings = require "util.encodings";
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
3 local utf8 = assert(encodings.utf8, "no encodings.utf8 module");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
4
8367
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
5 describe("util.encodings", function ()
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
6 describe("#encode()", function()
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
7 it("should work", function ()
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
8 assert.is.equal(encodings.base64.encode(""), "");
8371
09a1ce618ad0 spec/util.encodings: Fix syntax
Kim Alvefur <zash@zash.se>
parents: 8370
diff changeset
9 assert.is.equal(encodings.base64.encode('coucou'), "Y291Y291");
8367
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
10 assert.is.equal(encodings.base64.encode("\0\0\0"), "AAAA");
8372
872efae6e222 spec/util.encodings: Test an UTF-8 sequence
Kim Alvefur <zash@zash.se>
parents: 8371
diff changeset
11 assert.is.equal(encodings.base64.encode("\255\255\255"), "////");
8367
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
12 end);
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
13 end);
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
14 describe("#decode()", function()
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
15 it("should work", function ()
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
16 assert.is.equal(encodings.base64.decode(""), "");
8373
af7b41a0ec9e spec/util.encodings: Test a lonly padding (can appear like this in SASL)
Kim Alvefur <zash@zash.se>
parents: 8372
diff changeset
17 assert.is.equal(encodings.base64.decode("="), "");
8371
09a1ce618ad0 spec/util.encodings: Fix syntax
Kim Alvefur <zash@zash.se>
parents: 8370
diff changeset
18 assert.is.equal(encodings.base64.decode('Y291Y291'), "coucou");
8367
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
19 assert.is.equal(encodings.base64.decode("AAAA"), "\0\0\0");
8372
872efae6e222 spec/util.encodings: Test an UTF-8 sequence
Kim Alvefur <zash@zash.se>
parents: 8371
diff changeset
20 assert.is.equal(encodings.base64.decode("////"), "\255\255\255");
8367
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
21 end);
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
22 end);
60eb22fd21b8 spec/util.encodings: Add some base64 tests (Thanks Link Mavue)
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
23 end);
8236
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
24 describe("util.encodings.utf8", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
25 describe("#valid()", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
26 it("should work", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
27
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
28 for line in io.lines("spec/utf8_sequences.txt") do
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
29 local data = line:match(":%s*([^#]+)"):gsub("%s+", ""):gsub("..", function (c) return string.char(tonumber(c, 16)); end)
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
30 local expect = line:match("(%S+):");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
31
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
32 assert(expect == "pass" or expect == "fail", "unknown expectation: "..line:match("^[^:]+"));
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
33
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
34 local valid = utf8.valid(data);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
35 assert.is.equal(valid, utf8.valid(data.." "));
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
36 assert.is.equal(valid, expect == "pass", line);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
37 end
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
38
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
39 end);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
40 end);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
41 end);