.. highlight:: xml
.. index:: Encrypting Properties
.. _encrypting_props:
Encrypting Properties/Variables
===============================
You can encrypt DataPower passwords or any other property used by DPBuddy or by Apache Ant. DPBuddy provides commands/tasks for encrypting and decrypting arbitrary values. These commands utilize open-source `Jascrypt `_ library.
Encrypted values have the format of "ENC{encrypted value}". When DPBuddy encounters this format in the "conf" file, it attempts to decrypt it automatically (unless ``autoDecrypt`` property is set to ``false``). For Ant properties (defined in a property file or using the ``property`` task), you must use ``decrypt`` task documented below.
DataPower passwords (``dp.password`` property) are always decrypted automatically.
The key (a.k.a "master password") used for encryption/decryption must be provided externally. It can be specified as an environment variable or as a JVM system property.
To obtain master password, DPBuddy first checks the environment variable ``DP_MASTER_PASSWORD``. If it's not defined, it checks ``dp.master.password`` JVM system property. If the property is not defined and the value is encrypted, DPBuddy will raise an error.
You can set JVM system property using DBPUDD_OPTS or ANT_OPTS environment variable. E.g.:
.. code-block:: bat
export ANT_OPTS="-Xms256m -Xmx1648m -Ddp.master.password=master_secret"
.. _encrypt_task:
``encrypt``
-----------
Encrypts the provided value using the available master password and prints the encrypted value to standard out. The printed output can then be manually copied and saved in a "conf" file or in a properties file.
Attributes/Options
^^^^^^^^^^^^^^^^^^
.. list-table::
:widths: 20 80 8
:header-rows: 1
* - Name
- Description
- Required
* - value
- Value to encrypt.
- Yes
* - passwd
- Encryption key/password. If not provided, the command will use the value from ``DP_MASTER_PASSWORD`` environment variable or ``dp.master.password`` system property. If both are missing, an error will be raised.
- No
Examples
^^^^^^^^
.. code-block:: bat
dpbuddy encrypt -value secret -passwd master_password
``decrypt``
-----------
Decrypts the provided value using the available master password and saves the decrypted value in the property specified by the ``property`` attribute. If used from the command line, prints the decrypted value to standard out.
Attributes/Options
^^^^^^^^^^^^^^^^^^
.. list-table::
:widths: 20 80 8
:header-rows: 1
* - Name
- Description
- Required
* - encrypted
- Encrypted value to decrypt. Must be in the format "ENC{encrypted value}".
- Yes
* - passwd
- Decryption key/password. If not provided, the command will use the value from ``DP_MASTER_PASSWORD`` environment variable or ``dp.master.password`` system property. If both are missing, an error will be raised.
- No
* - property
- Name of Ant property to populate with the decrypted value
- No
Examples
^^^^^^^^
.. code-block:: xml