Sample code for 30+ languages & platforms
Lua Requires Chilkat v9.5.0.83+

Generate an Ed25519 Key Pair

See more Ed25519 Examples

Demonstrates how to generate a new Ed25519 public/private key pair.

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

-- This example assumes the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.

local eddsa = chilkat.EdDSA.new()
local prng = chilkat.Prng.new()
local privKey = chilkat.PrivateKey.new()

-- Generates a new eddsa key and stores it in privKey.
local success = eddsa:gen_ed25519_key(prng, privKey)
if not success then
    print(eddsa.last_error_text)
    return
end

-- Examine the ed25519 key in JWK format;
local jwk = privKey:get_jwk()

local json = chilkat.JsonObject.new()
json:load(jwk)
json.emit_compact = false
print(json:emit())

-- Sample output:
-- {
--   "kty": "OKP",
--   "crv": "Ed25519",
--   "x": "SE2Kne5xt51z1eciMH2T2ftDQp96Gl6FhY6zSQujiP0",
--   "d": "O-eRXewadF0sNyB0U9omcnt8Qg2ZmeK3WSXPYgqe570",
--   "use": "sig"
-- }

-- In the above JWK, x is the public key, y is the private key.
-- Both are 32 bytes and are base64-url encoded.