Java
Chilkat2 Java
Encrypt a JWE with a Symmetric Wrapping Key
See more JSON Web Encryption (JWE) Examples
Demonstrates Jwe.SetWrappingKey, which sets the symmetric key-wrapping key for a recipient. The key bytes are supplied in a named encoding such as hex or base64.
Background. AES key wrapping protects the content-encryption key with a shared symmetric key. Both parties must possess the same wrapping key.
Chilkat Java Downloads
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.JsonObject;
import com.chilkatsoft.chilkat2.Jwe;
public class ChilkatExample {
public static void main(String[] args) {
Jwe jwe = new Jwe();
// Protected header: AES key-wrap with AES-256-GCM content encryption.
JsonObject header = new JsonObject();
header.updateString("alg", "A256KW");
header.updateString("enc", "A256GCM");
try {
jwe.setProtectedHeader(header);
} catch (ChilkatException e) {
System.out.println(e.getLastErrorText());
return;
}
// Set the symmetric key-wrapping key for recipient 0. The key bytes are provided in the named
// encoding (here base64). In production, obtain the key from a secure source rather than hard-coding
// it.
String base64Key = "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU=";
String jweCompact;
try {
jwe.setWrappingKey(0, base64Key, "base64");
jweCompact = jwe.encrypt("This is the secret content.", "utf-8");
} catch (ChilkatException e) {
System.out.println(e.getLastErrorText());
return;
}
System.out.println(jweCompact);
}
}