Welcome to Zuora Product Documentation

Explore our rich library of product information

Encryption in Liquid expressions

This reference provides the sample filters for encryption in Liquid expressions.

rsa_encrypt

Encrypt with RSA.

Parameters: data, action['encrypt', 'decrypt'], key

{% assign public_key = '-----BEGIN PUBLIC KEY----- 
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCdlUof3WUjlLwlwva420D5nnXh 
xwOqYAUzHIq/AUzBYkDDla2hTtvspcebiFnKtXWmlZrzu4dNYtvE/2ZPiqrmPl8l 
PZAX74WwDRjMCC8HPGUmt6/2mVtXQ7wM9R1KEe9kX0lLeRLmK+lW24KvSL8U1yat 
WO1TP4GmTZ7Kw21fDQIDAQAB 
-----END PUBLIC KEY-----' %} 
{% assign input = 'encryptedMessage' %} 
{{ input | rsa_encrypt: 'encrypt', public_key }} 
{% comment %} Wha580r+8bO/D2dBXS1zxkzQKnJZpR3EGu8h4a0hx5QPhY7GUJVTU5le/D5bRQDyiWlckz1hMPIAj3rU79eF04d3XLKCgD07XKoIEkQ1e3/i3s2FWhFyhyIPgOeqdwF9M89nx62epoLGGiKmxew+OnWTyRXwfIB8BRx16vTD9wY= {% endcomment %}

rsa_decrypt

Decrypt with RSA.

Parameters: input, private key

{% assign private_key = '-----BEGIN RSA PRIVATE KEY----- MIICXQ
IBAAKBgQCdlUof3WUjlLwlwva420D5nnXhxwOqYAUzHIq/AUzBYkDDla2h 
TtvspcebiFnKtXWmlZrzu4dNYtvE/2ZPiqrmPl8lPZAX74WwDRjMCC8HPGUmt6/2 
mVtXQ7wM9R1KEe9kX0lLeRLmK+lW24KvSL8U1yatWO1TP4GmTZ7Kw21fDQIDAQAB 
AoGAQCRoS5geduEvxF8bdhso03JAoWoUf+EdvLQ9dYnd6ElJ+1KNnj8vHaBNI23Y 
vr4l6Wyz6cnHRSScOA+NYYscDICJKbVvYR4CMezjkaNCPwzEezg0ievNHZG3jaSG 
SALVbOA3ZR3zjZoLILYbuXeNEOVhyQvTcXQuiDWJDF9okTECQQDLQeFDW+9Yj/aN 
nZlPrGUGVFg7DPPjKS+f+iAbxX0Dy5Dx+oENbSWQoPq8Gkrp47Ih0o+NTTBawXf/ 
5TPOON0XAkEAxnlVV28sL0jLM/XlTmkzF3ALNTOheatnpCtDmhUoIsczr0qrqPHD 
FhzXaJGCFrRNw578OudK7zEmFpb8LccjewJBAIsLsW9kGBNMwMzWMEgJ1j6DOqyC 
yuDuju7wrEBzVHdhLfHrfZdSwGz1QzGlBvSD2Js8sQln8ZlUWqQLBuqfidcCQGlW 
dlv8bif+a5L9XCG8pdg3qEspRveLaGtyZuO9fNrQfPb5G5iED/WJgy5FpBSmx2se 
02Hz5gqDPGLa6abmPUcCQQCFgObpLkVla0amHz/U7y7pNASK3KzRxRAKJ/RJ5pQo 
rPKZkC+HMMeaq7z1ZBBZ2tRM+BFN13dF/CaUWwGe4fML 
-----END RSA PRIVATE KEY-----' %} 
{% assign input = 'Wha580r+8bO/D2dBXS1zxkzQKnJZpR3EGu8h4a0hx5QPhY7GUJVTU5le/D5bRQDyiWlckz1hMPIAj3rU79eF04d3XLKCgD07XKoIEkQ1e3/i3s2FWhFyhyIPgOeqdwF9M89nx62epoLGGiKmxew+OnWTyRXwfIB8BRx16vTD9wY=' %} 
{{ input | rsa_decrypt: private_key }} 
{% comment %} encryptedMessage {% endcomment %}

symmetric_encrypt

Encrypt/Decrypt with the specified symmetric algorithm.

Parameters: input, action['encrypt', 'decrypt'], mode, key, iv = nil, no_padding['true', 'false']

{% assign input = 'encryptedMessage' | base64_encode %}
{% assign iv = 'initialVector000' | base64_encode %}
{% assign key = 'encryptionKey000' | base64_encode %}
{{ input | symmetric_encrypt: 'encrypt', 'AES-128-CBC', key, iv, false | base64_encode}} 
{% comment %} abby2vv8nUuoiagV6P35KY2WKrSQHQ50ihDzRE0uvjI= {% endcomment %}

aes_decrypt

Decrypt with AES.

Parameters: input, decryption_IV, decryption key, mode['AES-128-CBC', 'AES-256-CBC']

{% assign input = 'abby2vv8nUuoiagV6P35KY2WKrSQHQ50ihDzRE0uvjI=' %} 
{% assign iv = 'initialVector000' | base64_encode %} 
{% assign key = 'encryptionKey000' | base64_encode %} 
{{ input | aes_decrypt: iv, key, 'AES-128-CBC' | base64_decode }} 
{% comment %} encryptedMessage {% endcomment %}

jwt_encode/jwt_decode

Encode/Decode JWT with the specified algorithm.

Parameters for encoding: payload, key, algorithm

Parameters for decoding: token, key, verify

{% assign key = 'jwtKey' %} 
{{ 'abc' | jwt_encode: key, 'HS256' }} 
{% comment %} eyJhbGciOiJIUzI1NiJ9.ImFiYyI.HWTAZzvzs7q4SP9GQwXkqhN_uFQ6aFCJGPuTKUFs_ew {% endcomment %}
{% assign input = 'eyJhbGciOiJIUzI1NiJ9.ImFiYyI.HWTAZzvzs7q4SP9GQwXkqhN_uFQ6aFCJGPuTKUFs_ew' %} 
{% assign key = 'jwtKey' %} 
{{ input | jwt_decode: key, true }} 
{% comment %} ['abc',{"alg"=>"HS256"}] {% endcomment %}

hmac_sha256_sign/hmac_sha512_sign

Use HMAC-SHA256/HMAC-SHA512 to sign a string.

Parameters: input, key

{% assign key = 'testHmacKey' %} 
{{ 'abc' | hmac_sha256_sign: key }} 
{% comment %} EJBqLUcQxuSwQ9UuucfSLiG9IsE2g7+AVRApdxmbOFw= {% endcomment %}

rsa_random_key

Create a random key with the specified algorithm.

Parameters: nil, mode

{{ nil | rsa_random_key: 'AES-128-CBC' | base64_encode }} 
{% comment %} ETnoMe4SJ/jHWAtQfdaPFw== {% endcomment %}