Swift
Swift
RSA Sign Binary Data and Verify (Recover the Original Data)
See more RSA Examples
Demonstrates how to RSA sign binary data and then verify/recover the original data.Note: This example uses methods introduced in Chilkat v9.5.0.77.
Chilkat Swift Downloads
func chilkatTest() {
var success: Bool = false
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// Load an RSA private key for signing.
let privKey = CkoPrivateKey()!
success = privKey.loadEncryptedPemFile(path: "qa_data/pem/rsa_passwd.pem", password: "passwd")
if success == false {
print("\(privKey.lastErrorText!)")
return
}
let rsa = CkoRsa()!
rsa.usePrivateKey(privKey: privKey)
// We have some binary data (in hex) to sign
var originalData: String? = "0102030405060708090A"
let bd = CkoBinData()!
bd.appendEncoded(encData: originalData, encoding: "hex")
// If successful, the contents of bd are replaced with the RSA signature.
success = rsa.signRawBd(bd: bd)
if success == false {
print("\(rsa.lastErrorText!)")
return
}
// Show the RSA signature in base64
print("\(bd.getEncoded(encoding: "base64")!)")
// ------------------------------------------
// Get the public key from the private key
let pubKey = CkoPublicKey()!
privKey.toPublicKey(pubKey: pubKey)
// Verify the signature and extract the original data.
let rsa2 = CkoRsa()!
rsa2.usePublicKey(pubKey: pubKey)
var bVerified: Bool = rsa2.verifyRawBd(bd: bd)
print("signature verified: \(bVerified)")
// Show the original data:
print("original data: \(bd.getEncoded(encoding: "hex")!)")
}