Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) Ed25519 Sign and VerifyDemonstrates how to create an Ed25519 signature, and then to verify it. Note: This example requires Chilkat v9.5.0.83 or greater.
IncludeFile "CkBinData.pb" IncludeFile "CkEdDSA.pb" IncludeFile "CkPrivateKey.pb" IncludeFile "CkPublicKey.pb" Procedure ChilkatExample() ; This example assumes the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. privKeyHex.s = "1498b5467a63dffa2dc9d9e069caf075d16fc33fdd4c3b01bfadae6433767d93" pubKeyHex.s = "b7a3c12dc0c8c748ab07525b701122b88bd78f600c76342d27f25e5f92444cde" privKey.i = CkPrivateKey::ckCreate() If privKey.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; 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. success.i = CkPrivateKey::ckLoadEd25519(privKey,privKeyHex,pubKeyHex) If success = 0 Debug CkPrivateKey::ckLastErrorText(privKey) CkPrivateKey::ckDispose(privKey) ProcedureReturn EndIf ; The data to be signed... bd.i = CkBinData::ckCreate() If bd.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkBinData::ckAppendString(bd,"Message for Ed25519 signing","utf-8") eddsa.i = CkEdDSA::ckCreate() If eddsa.i = 0 Debug "Failed to create object." ProcedureReturn EndIf hexSig.s = CkEdDSA::ckSignBdENC(eddsa,bd,"hexlower",privKey) Debug "signature = " + hexSig ; The expected output is: 6dd355667fae4eb43c6e0ab92e870edb2de0a88cae12dbd8591507f584fe4912babff497f1b8edf9567d2483d54ddc6459bea7855281b7a246a609e3001a4e08 ; Verify the signature.. pubKey.i = CkPublicKey::ckCreate() If pubKey.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkPublicKey::ckLoadEd25519(pubKey,pubKeyHex) If success = 0 Debug CkPublicKey::ckLastErrorText(pubKey) CkPrivateKey::ckDispose(privKey) CkBinData::ckDispose(bd) CkEdDSA::ckDispose(eddsa) CkPublicKey::ckDispose(pubKey) ProcedureReturn EndIf bVerified.i = CkEdDSA::ckVerifyBdENC(eddsa,bd,hexSig,"hexlower",pubKey) If bVerified = 0 Debug CkEdDSA::ckLastErrorText(eddsa) Debug "Failed to verify the signature." CkPrivateKey::ckDispose(privKey) CkBinData::ckDispose(bd) CkEdDSA::ckDispose(eddsa) CkPublicKey::ckDispose(pubKey) ProcedureReturn EndIf Debug "The Ed25519 signature is verified!" CkPrivateKey::ckDispose(privKey) CkBinData::ckDispose(bd) CkEdDSA::ckDispose(eddsa) CkPublicKey::ckDispose(pubKey) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.