Sample code for 30+ languages & platforms
Swift

Decrypt a JWE into BinData

See more JSON Web Encryption (JWE) Examples

Demonstrates Jwe.DecryptBd, which decrypts a recipient of a loaded JWE and writes the plaintext bytes into a BinData.

Background. This is used when the decrypted content is binary. The recipient key 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 bytes into a BinData.
    let bd = CkoBinData()!
    success = jwe.decryptBd(index: 0, bd: bd)
    if success == false {
        print("\(jwe.lastErrorText!)")
        return
    }

    print("Decrypted \(bd.numBytes.intValue) bytes.")

}