40 lines
1.1 KiB
Lua
Executable File
40 lines
1.1 KiB
Lua
Executable File
#!/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)
|