Sample code for 30+ languages & platforms
Visual FoxPro

Ed25519 Sign and Verify

See more Ed25519 Examples

Demonstrates how to create an Ed25519 signature, and then to verify it.

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

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL lcPrivKeyHex
LOCAL lcPubKeyHex
LOCAL loPrivKey
LOCAL loBd
LOCAL loEddsa
LOCAL lcHexSig
LOCAL loPubKey
LOCAL lnBVerified

lnSuccess = 0

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

lcPrivKeyHex = "1498b5467a63dffa2dc9d9e069caf075d16fc33fdd4c3b01bfadae6433767d93"
lcPubKeyHex = "b7a3c12dc0c8c748ab07525b701122b88bd78f600c76342d27f25e5f92444cde"

loPrivKey = CreateObject('Chilkat.PrivateKey')
* This example shows only one way of loading an Ed25519 private key.
* Chilkat can load other formats (JWK, PEM, ASN.1 DER, etc.)  
* You may do so by calling LoadAnyFormat or LoadAnyFormatFile.
lnSuccess = loPrivKey.LoadEd25519(lcPrivKeyHex,lcPubKeyHex)
IF (lnSuccess = 0) THEN
    ? loPrivKey.LastErrorText
    RELEASE loPrivKey
    CANCEL
ENDIF

* The data to be signed...
loBd = CreateObject('Chilkat.BinData')
loBd.AppendString("Message for Ed25519 signing","utf-8")

loEddsa = CreateObject('Chilkat.EdDSA')
lcHexSig = loEddsa.SignBdENC(loBd,"hexlower",loPrivKey)

? "signature = " + lcHexSig

* The expected output is: 6dd355667fae4eb43c6e0ab92e870edb2de0a88cae12dbd8591507f584fe4912babff497f1b8edf9567d2483d54ddc6459bea7855281b7a246a609e3001a4e08

* Verify the signature..
loPubKey = CreateObject('Chilkat.PublicKey')
lnSuccess = loPubKey.LoadEd25519(lcPubKeyHex)
IF (lnSuccess = 0) THEN
    ? loPubKey.LastErrorText
    RELEASE loPrivKey
    RELEASE loBd
    RELEASE loEddsa
    RELEASE loPubKey
    CANCEL
ENDIF

lnBVerified = loEddsa.VerifyBdENC(loBd,lcHexSig,"hexlower",loPubKey)
IF (lnBVerified = 0) THEN
    ? loEddsa.LastErrorText
    ? "Failed to verify the signature."
    RELEASE loPrivKey
    RELEASE loBd
    RELEASE loEddsa
    RELEASE loPubKey
    CANCEL
ENDIF

? "The Ed25519 signature is verified!"

RELEASE loPrivKey
RELEASE loBd
RELEASE loEddsa
RELEASE loPubKey