PureBasic
PureBasic
Generate an ECDSA Key
See more ECC Examples
Demonstrates how to generate an ECDSA key.Chilkat PureBasic Downloads
IncludeFile "CkEcc.pb"
IncludeFile "CkPrng.pb"
IncludeFile "CkPrivateKey.pb"
Procedure ChilkatExample()
success.i = 0
; This requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
; Create a Fortuna PRNG and seed it with system entropy.
; This will be our source of random data for generating the ECC private key.
fortuna.i = CkPrng::ckCreate()
If fortuna.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
entropy.s = CkPrng::ckGetEntropy(fortuna,32,"base64")
success = CkPrng::ckAddEntropy(fortuna,entropy,"base64")
ecc.i = CkEcc::ckCreate()
If ecc.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Generate a random ECC private key on the secp256r1 curve.
; Chilkat also supports other curves, such as secp384r1, secp521r1, and secp256k1.
privKey.i = CkPrivateKey::ckCreate()
If privKey.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkEcc::ckGenKey(ecc,"secp256r1",fortuna,privKey)
If success = 0
Debug CkEcc::ckLastErrorText(ecc)
CkPrng::ckDispose(fortuna)
CkEcc::ckDispose(ecc)
CkPrivateKey::ckDispose(privKey)
ProcedureReturn
EndIf
Debug CkPrivateKey::ckGetXml(privKey)
; Save the private key to PKCS8 encrypted PEM
; (The private key can be saved in a variety of different formats. See the online reference documentation.)
success = CkPrivateKey::ckSavePkcs8EncryptedPemFile(privKey,"pemPassword","myPemFiles/eccKey123.pem")
If success <> 1
Debug CkPrivateKey::ckLastErrorText(privKey)
EndIf
Debug "finished."
CkPrng::ckDispose(fortuna)
CkEcc::ckDispose(ecc)
CkPrivateKey::ckDispose(privKey)
ProcedureReturn
EndProcedure