PureBasic
PureBasic
Get EC Public Key from EC Private Key
See more ECC Examples
Demonstrates how to get an EC public key from an EC private key.Chilkat PureBasic Downloads
IncludeFile "CkPublicKey.pb"
IncludeFile "CkPrivateKey.pb"
Procedure ChilkatExample()
success.i = 0
; We have an ECC private key...
; The contents of the private key PEM file look like this:
; -----BEGIN PRIVATE KEY-----
; MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg3J8q/24D1sEKGdP9
; 72MGYElLGpw/a56Y3t6pfON3uhShRANCAATlSmoizyhAwoYZAOuFBATl07/1RR54
; a1Dzfm16grxJe666AGKR+bSs24hk7TEpaeCTvT8YOOM3l+xKFg7zq6Q9
; -----END PRIVATE KEY-----
privKey.i = CkPrivateKey::ckCreate()
If privKey.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkPrivateKey::ckLoadPemFile(privKey,"qa_data/ecc/secp256r1-key-pkcs8.pem")
If success = 0
Debug CkPrivateKey::ckLastErrorText(privKey)
CkPrivateKey::ckDispose(privKey)
ProcedureReturn
EndIf
; Get the public key.
pubKey.i = CkPublicKey::ckCreate()
If pubKey.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkPrivateKey::ckToPublicKey(privKey,pubKey)
; Save the public key to a PEM file.
success = CkPublicKey::ckSavePemFile(pubKey,0,"qa_data/ecc/secp256r1-pubkey.pem")
If success = 0
Debug CkPublicKey::ckLastErrorText(pubKey)
CkPrivateKey::ckDispose(privKey)
CkPublicKey::ckDispose(pubKey)
ProcedureReturn
EndIf
; The contents of the ECC public key PEM file look like this:
; -----BEGIN PUBLIC KEY-----
; MIIBSzCCAQMGByqGSM49AgEwgfcCAQEwLAYHKoZIzj0BAQIhAP////8AAAABAAAA
; AAAAAAAAAAAA////////////////MFsEIP////8AAAABAAAAAAAAAAAAAAAA////
; ///////////8BCBaxjXYqjqT57PrvVV2mIa8ZR0GsMxTsPY7zjw+J9JgSwMVAMSd
; NgiG5wSTamZ44ROdJreBn36QBEEEaxfR8uEsQkf4vOblY6RA8ncDfYEt6zOg9KE5
; RdiYwpZP40Li/hp/m47n60p8D54WK84zV2sxXs7LtkBoN79R9QIhAP////8AAAAA
; //////////+85vqtpxeehPO5ysL8YyVRAgEBA0IABOVKaiLPKEDChhkA64UEBOXT
; v/VFHnhrUPN+bXqCvEl7rroAYpH5tKzbiGTtMSlp4JO9Pxg44zeX7EoWDvOrpD0=
; -----END PUBLIC KEY-----
Debug "Success."
CkPrivateKey::ckDispose(privKey)
CkPublicKey::ckDispose(pubKey)
ProcedureReturn
EndProcedure