mirror of
https://github.com/0x5eal/wg-lua.git
synced 2024-12-12 12:50:36 +00:00
chore(tests): include tests
This commit is contained in:
parent
ad8321955d
commit
e50a64797a
7 changed files with 59 additions and 4 deletions
2
.prettierignore
Normal file
2
.prettierignore
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
out/
|
||||||
|
tests/
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "wg-lua",
|
"name": "@rbxts/wg-lua",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "A lua implementation of the wireguard keygen algorithm.",
|
"description": "A lua implementation of the wireguard keygen algorithm.",
|
||||||
"main": "out/init.lua",
|
"main": "out/init.lua",
|
||||||
|
|
|
@ -33,7 +33,7 @@ const _atob = (asc: string) => {
|
||||||
let r1: number;
|
let r1: number;
|
||||||
let r2: number;
|
let r2: number;
|
||||||
|
|
||||||
for (let i = 0; i < asc.size(); ) {
|
for (let i = 0; i < asc.size(); i++) {
|
||||||
u24 =
|
u24 =
|
||||||
(b64Table[string.byte(asc, i++)[0]] << 18) |
|
(b64Table[string.byte(asc, i++)[0]] << 18) |
|
||||||
(b64Table[string.byte(asc, i++)[0]] << 12) |
|
(b64Table[string.byte(asc, i++)[0]] << 12) |
|
||||||
|
|
|
@ -19,6 +19,8 @@ export const wireguard: Wireguard = {
|
||||||
const privateKey = generatePrivateKey();
|
const privateKey = generatePrivateKey();
|
||||||
const publicKey = generatePublicKey(privateKey);
|
const publicKey = generatePublicKey(privateKey);
|
||||||
|
|
||||||
|
print(privateKey);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
publicKey: atob(publicKey),
|
publicKey: atob(publicKey),
|
||||||
privateKey: atob(privateKey),
|
privateKey: atob(privateKey),
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
const { atob } = require<{ atob: (buf: number[]) => string }>("base64");
|
|
||||||
|
|
||||||
function gf(init?: number[]): number[] {
|
function gf(init?: number[]): number[] {
|
||||||
const r = new Array<number>(16, 0);
|
const r = new Array<number>(16, 0);
|
||||||
if (init) {
|
if (init) {
|
||||||
|
|
11
tests/generateKeypair.luau
Normal file
11
tests/generateKeypair.luau
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
local wg = require("../out/").wireguard
|
||||||
|
|
||||||
|
local BASE64_PAT = "^(?:%a%d+/?){4}*(?:%a%d+/?){2}==|(?:%a%d+/?){3}=?$"
|
||||||
|
|
||||||
|
local keypair = wg:generateKeypair()
|
||||||
|
|
||||||
|
assert(#keypair.publicKey == 44, "expected public key to be 44 bytes")
|
||||||
|
assert(#keypair.privateKey == 44, "expected private key to be 44 bytes")
|
||||||
|
|
||||||
|
assert(keypair.privateKey:match(BASE64_PAT), "expected private key to be base64 encoded")
|
||||||
|
assert(keypair.publicKey:match(BASE64_PAT), "expected public key to be base64 encoded")
|
42
tests/generatePublicKey.luau
Normal file
42
tests/generatePublicKey.luau
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
local wg = require("../out/").wireguard
|
||||||
|
|
||||||
|
local PRIVATE_KEY = {
|
||||||
|
[1] = 208,
|
||||||
|
[2] = 109,
|
||||||
|
[3] = 43,
|
||||||
|
[4] = 223,
|
||||||
|
[5] = 41,
|
||||||
|
[6] = 233,
|
||||||
|
[7] = 180,
|
||||||
|
[8] = 88,
|
||||||
|
[9] = 228,
|
||||||
|
[10] = 1,
|
||||||
|
[11] = 132,
|
||||||
|
[12] = 145,
|
||||||
|
[13] = 79,
|
||||||
|
[14] = 164,
|
||||||
|
[15] = 143,
|
||||||
|
[16] = 199,
|
||||||
|
[17] = 134,
|
||||||
|
[18] = 67,
|
||||||
|
[19] = 153,
|
||||||
|
[20] = 226,
|
||||||
|
[21] = 151,
|
||||||
|
[22] = 39,
|
||||||
|
[23] = 198,
|
||||||
|
[24] = 16,
|
||||||
|
[25] = 30,
|
||||||
|
[26] = 109,
|
||||||
|
[27] = 90,
|
||||||
|
[28] = 11,
|
||||||
|
[29] = 22,
|
||||||
|
[30] = 4,
|
||||||
|
[31] = 217,
|
||||||
|
[32] = 105,
|
||||||
|
}
|
||||||
|
local PUBLIC_KEY = "mYqWwJuiVXsXqfqXOKOKVTTZRovUXqzPkRtz1DwX1Wc="
|
||||||
|
|
||||||
|
local publicKey = wg:generatePublicKey(PRIVATE_KEY)
|
||||||
|
|
||||||
|
assert(#publicKey == 44, "expected public key to be 44 bytes")
|
||||||
|
assert(publicKey == PUBLIC_KEY, "expected the correct public key")
|
Loading…
Reference in a new issue