Links

RSA Cryptography

Learn how to encrypt or decrypt using RSA Cryptography based on the RSA algorithm. The Documentation Portal provides configuration parameters of this component.
RSA Cryptography encrypts and decrypts based on the RSA algorithm.
Take a look at the configuration parameters of the component:
  • Account: account to be used by the component.
  • Crypto Operation: available operation types - ENCRYPT FIELDS, DECRYPT FIELDS, ENCRYPT PAYLOAD and DECRYPT PAYLOAD.
  • Fields To Encrypt/Decrypt: fields to be encrypted/decrypted using a dotted notation (eg.: body.field1,body.field2,body).
  • Operation Mode: operation mode to be used.
  • Padding: is used in a block cipher where we fill up the blocks with padding bytes (eg.: AES 128 bits uses 16 padding bytes).
  • Charset: charset of the provided key of type string.
  • Encrypted Message As Hexa: if the option is activated, the secret key response will be in hexadecimal; otherwise, it will be in base64.
  • Fail On Error: if the option is enabled, the execution of the pipeline with error will be interrupted; otherwise, the pipeline execution proceeds, but the result will show a false value for the “success” property.
To encrypt, you must configure a PUBLIC KEY account or pass the property key via body with the respective key.
To decrypt, you must configure a PRIVATE KEY account.

Messages flow

Operation ENCRYPT FIELDS

Input

{
"operation": "encrypt_fields",
"operationMode": "ECB",
"padding": "OAEPWithSHA1AndMGF1Padding",
"encryptedFields": "data,data1",
"failOnError": true
"key": "PoeK/VBTcUyRHFkmWYjckbhsRLnZur6S83lKZ78V51EL3KlDNnPJZkdz+m7joRfOxFuEqU=" //Inform the Key parameter if the Account is not configured
}

Payload

{
"data": someData,
"data1": someData1
}

Output

{
"data": "RXZlbiBpZiBwZXJmZWN0IGNyeXB0b2dyYXBoaWMgcm91dGluZXMgYXJlIH=",
"data1": "RXZlbiBpZifd441mZWN0IGNyeXB0b2dyYXBoaWMgcm91dGluZXMgYXJlIH="
}

Operation DECRYPT FIELDS

Input

{
"operation": "decrypt_fields",
"operationMode": "ECB",
"padding": "OAEPWithSHA1AndMGF1Padding",
"encryptedFields": "data,data1",
"failOnError": true
}

Payload

{
"data": "RXZlbiBpZiBwZXJmZWN0IGNyeXB0b2dyYXBoaWMgcm91dGluZXMgYXJlIH=",
"data1": "RXZlbiBpZifd441mZWN0IGNyeXB0b2dyYXBoaWMgcm91dGluZXMgYXJlIH="
}

Output

{
"data": someData,
"data1": someData1
}