DataFlex
DataFlex
Encrypt Binary Content to a JWE
See more JSON Web Encryption (JWE) Examples
Demonstrates Jwe.EncryptBd, which encrypts binary content held in a BinData and writes the resulting JWE into a StringBuilder.
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoJwe
Variant vHeader
Handle hoHeader
String sBase64Key
Variant vBdContent
Handle hoBdContent
Variant vSbJwe
Handle hoSbJwe
String sTemp1
Move False To iSuccess
Get Create (RefClass(cComChilkatJwe)) To hoJwe
If (Not(IsComObjectCreated(hoJwe))) Begin
Send CreateComObject of hoJwe
End
// Set the JWE protected header, specifying the key-management algorithm (alg) and the content-
// encryption algorithm (enc).
Get Create (RefClass(cComChilkatJsonObject)) To hoHeader
If (Not(IsComObjectCreated(hoHeader))) Begin
Send CreateComObject of hoHeader
End
Get ComUpdateString Of hoHeader "alg" "A256KW" To iSuccess
Get ComUpdateString Of hoHeader "enc" "A256GCM" To iSuccess
Get pvComObject of hoHeader to vHeader
Get ComSetProtectedHeader Of hoJwe vHeader To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoJwe To sTemp1
Showln sTemp1
Procedure_Return
End
// 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.
Move "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU=" To sBase64Key
Get ComSetWrappingKey Of hoJwe 0 sBase64Key "base64" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoJwe To sTemp1
Showln sTemp1
Procedure_Return
End
// Encrypt binary content held in a BinData, writing the resulting JWE into a StringBuilder.
Get Create (RefClass(cComChilkatBinData)) To hoBdContent
If (Not(IsComObjectCreated(hoBdContent))) Begin
Send CreateComObject of hoBdContent
End
Get ComAppendString Of hoBdContent "Binary content to encrypt." "utf-8" To iSuccess
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbJwe
If (Not(IsComObjectCreated(hoSbJwe))) Begin
Send CreateComObject of hoSbJwe
End
Get pvComObject of hoBdContent to vBdContent
Get pvComObject of hoSbJwe to vSbJwe
Get ComEncryptBd Of hoJwe vBdContent vSbJwe To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoJwe To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComGetAsString Of hoSbJwe To sTemp1
Showln sTemp1
End_Procedure