Sample code for 30+ languages & platforms
Swift

Verify the RSA Signature of a SHA256 Hash

See more RSA Examples

Demonstrates how to verify an RSA signature of a SHA256 hash.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    // Let's say you have a file containing the 32-bytes of a SHA256 hash,
    // and a file that is an RSA signature of those 32 bytes.
    // Here's how you verify using the RSA public key found in a PEM.

    let pubKey = CkoPublicKey()!
    success = pubKey.load(fromFile: "rsaPubKey.pem")
    if success == false {
        print("\(pubKey.lastErrorText!)")
        return
    }

    let rsa = CkoRsa()!

    // Get the public key.
    success = rsa.usePublicKey(pubKey: pubKey)
    if success == false {
        print("\(rsa.lastErrorText!)")
        return
    }

    // Get the 32-byte SHA256 hash.
    let bdHash = CkoBinData()!
    success = bdHash.loadFile(path: "myHash.sha256")
    if success == false {
        print("Failed to load SHA256 hash.")
        return
    }

    // Get the RSA signature to be validated.
    let bdSig = CkoBinData()!
    success = bdSig.loadFile(path: "mySig.sig")
    if success == false {
        print("Failed to load RSA signature.")
        return
    }

    // Verify the signature against the SHA256 hash.
    var enc: String? = "base64"
    rsa.encodingMode = enc
    success = rsa.verifyHashENC(encodedHash: bdHash.getEncoded(encoding: enc), hashAlg: "sha256", encodedSig: bdSig.getEncoded(encoding: enc))
    if success == false {
        print("\(rsa.lastErrorText!)")
        return
    }

    print("Signature validated.")

}