PureBasic
PureBasic
RSA Encrypt with Modulus and Exponent
See more RSA Examples
Demonstrates how to RSA encrypt with a given modulus and exponent.Chilkat PureBasic Downloads
IncludeFile "CkXml.pb"
IncludeFile "CkPublicKey.pb"
IncludeFile "CkRsa.pb"
Procedure ChilkatExample()
success.i = 0
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
rsa.i = CkRsa::ckCreate()
If rsa.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Assuming you already have a base64 modulus and exponent,
; wrap it in XML like this:
modulus.s = "qMBRpdYrAy5aMmo31NErUizh5sbweguSmh4wlK6uJEIDl+kwTlROnE34KOFExeTbJSX0WygPi+vWl0yNq7buIMUKpytossAAWut5khO3CQJxTk7G2gnEPNUUXHiExGgNrLzcSLv8YIlfVALhoRWyC67KOL+a+3taNq3h+BHeWhM="
exponent.s = "AQAB"
xml.i = CkXml::ckCreate()
If xml.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkXml::setCkTag(xml, "RSAPublicKey")
CkXml::ckNewChild2(xml,"Modulus",modulus)
CkXml::ckNewChild2(xml,"Exponent",exponent)
pubKey.i = CkPublicKey::ckCreate()
If pubKey.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkPublicKey::ckLoadFromString(pubKey,xml)
If success = 0
Debug CkPublicKey::ckLastErrorText(pubKey)
CkRsa::ckDispose(rsa)
CkXml::ckDispose(xml)
CkPublicKey::ckDispose(pubKey)
ProcedureReturn
EndIf
success = CkRsa::ckUsePublicKey(rsa,pubKey)
If success = 0
Debug CkRsa::ckLastErrorText(rsa)
CkRsa::ckDispose(rsa)
CkXml::ckDispose(xml)
CkPublicKey::ckDispose(pubKey)
ProcedureReturn
EndIf
usePrivateKey.i = 0
plainText.s = "message in a bottle"
CkRsa::setCkEncodingMode(rsa, "base64")
encryptedStrBase64.s = CkRsa::ckEncryptStringENC(rsa,plainText,usePrivateKey)
Debug encryptedStrBase64
CkRsa::ckDispose(rsa)
CkXml::ckDispose(xml)
CkPublicKey::ckDispose(pubKey)
ProcedureReturn
EndProcedure