Links

RSA Cryptography

Know the component and how to use it.
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
}