#!/usr/bin/env lua local curve25519 = dofile("curve25519.lua") local function print_hex(a) for _, h in pairs(a) do io.write(string.format("%02x", h)) end print() end local base_point = { 9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } local client_private = { 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08, 0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10, 0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18, 0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20 } local server_private = { 0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8, 0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0, 0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8, 0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xc0 } local client_public = curve25519(client_private, base_point) local server_public = curve25519(server_private, base_point) print("client_public") print_hex(client_public) print("server_public") print_hex(server_public) local client_shared = curve25519(client_private, server_public) local server_shared = curve25519(server_private, client_public) print("client_shared") print_hex(client_shared) print("server_shared") print_hex(server_shared)