Sample code for 30+ languages & platforms
Swift

Decrypt a JWE into a StringBuilder

See more JSON Web Encryption (JWE) Examples

Demonstrates Jwe.DecryptSb, which decrypts a recipient of a loaded JWE and writes the plaintext into a StringBuilder.

Background. The recipient index selects which recipient's key material to use. The key for that recipient must be provided before decrypting.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

    let jwe = CkoJwe()!

    //  Load the JWE compact serialization to be decrypted.
    var jweCompact: String? = "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIn0.<...>.<iv>.<ciphertext>.<tag>"
    success = jwe.load(jwe: jweCompact)
    if success == false {
        print("\(jwe.lastErrorText!)")
        return
    }

    //  The 256-bit key-wrapping key (base64) for recipient index 0.  In production, obtain the key
    //  from a secure source rather than hard-coding it.
    var base64Key: String? = "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU="
    success = jwe.setWrappingKey(index: 0, encodedKey: base64Key, encoding: "base64")
    if success == false {
        print("\(jwe.lastErrorText!)")
        return
    }

    //  Decrypt recipient index 0, writing the plaintext into a StringBuilder.
    let sbContent = CkoStringBuilder()!
    success = jwe.decryptSb(index: 0, charset: "utf-8", contentSb: sbContent)
    if success == false {
        print("\(jwe.lastErrorText!)")
        return
    }

    print("\(sbContent.getAsString()!)")

}