Docker images / prepare-release (push) Successful in 8s
Docker images / backend-image (push) Successful in 2m1s
Docker images / frontend-image (push) Successful in 3m56s
Docker images / notify-webhook (push) Skipped
Docker images / updater-image (push) Successful in 46s
Docker images / publish-release (push) Successful in 12s
Чтобы видеть «кто с кем», а не только объём порта: IPFIX внутри WG на хосте Docker MM, REST-счётчики не трогаем. Co-authored-by: Cursor <cursoragent@cursor.com>
13 lines
575 B
TypeScript
13 lines
575 B
TypeScript
import { generateKeyPairSync } from "node:crypto"
|
|
|
|
/** WireGuard Curve25519 keypair as RouterOS/wg-quick base64 (32 bytes). */
|
|
export function generateWireGuardKeyPair(): { publicKey: string; privateKey: string } {
|
|
const { publicKey, privateKey } = generateKeyPairSync("x25519")
|
|
const pubDer = publicKey.export({ type: "spki", format: "der" })
|
|
const privDer = privateKey.export({ type: "pkcs8", format: "der" })
|
|
return {
|
|
publicKey: Buffer.from(pubDer.subarray(-32)).toString("base64"),
|
|
privateKey: Buffer.from(privDer.subarray(-32)).toString("base64"),
|
|
}
|
|
}
|