Sample code for 30+ languages & platforms
Swift

Load a JWE from a String

See more JSON Web Encryption (JWE) Examples

Demonstrates Jwe.LoadJwe, which loads a JWE from its compact serialization string so it can be decrypted.

Background. JWE (JSON Web Encryption) protects content with a content-encryption algorithm (the header enc value) while the content-encryption key is managed by the key-management algorithm (the header alg value). This example uses AES key wrapping with a symmetric wrapping key.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

    let jwe = CkoJwe()!

    //  Load a JWE from its compact serialization string.
    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
    }

    //  The loaded JWE can now be decrypted.
    var content: String? = jwe.decrypt(index: 0, charset: "utf-8")
    if jwe.lastMethodSuccess == false {
        print("\(jwe.lastErrorText!)")
        return
    }

    print("\(content!)")

}