wg-lua/src/index.ts

31 lines
766 B
TypeScript

const { generatePrivateKey, generatePublicKey } = require<{
generatePrivateKey: () => number[];
generatePublicKey: (privateKey: number[]) => number[];
}>("wg");
const { atob } = require<{ atob: (buf: number[]) => string }>("base64");
export interface Keypair {
publicKey: string;
privateKey: string;
}
export interface Wireguard {
generateKeypair(): Keypair;
generatePublicKey(privateKey: number[]): string;
}
export const wireguard: Wireguard = {
generateKeypair: function () {
const privateKey = generatePrivateKey();
const publicKey = generatePublicKey(privateKey);
return {
publicKey: atob(publicKey),
privateKey: atob(privateKey),
};
},
generatePublicKey: function (privateKey) {
return atob(generatePublicKey(privateKey));
},
};