Sample code for 30+ languages & platforms
Xbase++

Generate an Ed25519 Key Pair

See more Ed25519 Examples

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

Note: This example requires Chilkat v9.5.0.83 or greater.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oEddsa
LOCAL oPrng
LOCAL oPrivKey
LOCAL cJwk
LOCAL oJson

nSuccess := 0

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

oEddsa := CreateObject("Chilkat.EdDSA")
oPrng := CreateObject("Chilkat.Prng")
oPrivKey := CreateObject("Chilkat.PrivateKey")

//  Generates a new eddsa key and stores it in privKey.
nSuccess := oEddsa:GenEd25519Key(oPrng, oPrivKey)
IF (nSuccess == 0)
    ? oEddsa:LastErrorText
    oEddsa:destroy()
    oPrng:destroy()
    oPrivKey:destroy()
    RETURN
ENDIF

//  Examine the ed25519 key in JWK format;
cJwk := oPrivKey:GetJwk()

oJson := CreateObject("Chilkat.JsonObject")
oJson:Load(cJwk)
oJson:EmitCompact := 0
? oJson: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.

oEddsa:destroy()
oPrng:destroy()
oPrivKey:destroy()
oJson:destroy()