DataFlex
DataFlex
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoEddsa
Variant vPrng
Handle hoPrng
Variant vPrivKey
Handle hoPrivKey
String sJwk
Handle hoJson
String sTemp1
Move False To iSuccess
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatEdDSA)) To hoEddsa
If (Not(IsComObjectCreated(hoEddsa))) Begin
Send CreateComObject of hoEddsa
End
Get Create (RefClass(cComChilkatPrng)) To hoPrng
If (Not(IsComObjectCreated(hoPrng))) Begin
Send CreateComObject of hoPrng
End
Get Create (RefClass(cComChilkatPrivateKey)) To hoPrivKey
If (Not(IsComObjectCreated(hoPrivKey))) Begin
Send CreateComObject of hoPrivKey
End
// Generates a new eddsa key and stores it in privKey.
Get pvComObject of hoPrng to vPrng
Get pvComObject of hoPrivKey to vPrivKey
Get ComGenEd25519Key Of hoEddsa vPrng vPrivKey To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoEddsa To sTemp1
Showln sTemp1
Procedure_Return
End
// Examine the ed25519 key in JWK format;
Get ComGetJwk Of hoPrivKey To sJwk
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Get ComLoad Of hoJson sJwk To iSuccess
Set ComEmitCompact Of hoJson To False
Get ComEmit Of hoJson To sTemp1
Showln sTemp1
// 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.
End_Procedure