The core capability of Axon Data Protection is to encrypt and decrypt individual fields of a Java object, using a key which is determined by the value of another field of the object. Although this capability may have various different use cases, the main use case foreseen when designing the module was to provide the option to later effectively delete the contents of the encrypted fields, by destroying the key used to encrypt them.

As part of the Axon Data Protection distribution, there is an extensive user guide in PDF form explaining how to use the module. This Javadoc provides details on a class-by-class basis, but please review the user guide as a starting point.

Packages 
Package Description
io.axoniq.dataprotection.api
Annotations, exceptions and encryption service objects of the Axon Data Protection Module.
io.axoniq.dataprotection.cryptoengine
Contains the core CryptoEngine interface and various implementations.
io.axoniq.dataprotection.cryptoengine.jpa
Contains a JPA-based implementation of CryptoEngine and some associated classes.
io.axoniq.dataprotection.cryptoengine.vault
Contains a HashiCorp Vault backed implementation of CryptoEngine and associated classes.
io.axoniq.dataprotection.serialization
Light-weight version of the serialization functionality in Axon Framework.
io.axoniq.dataprotection.serialization.converters
Converters between various serialized forms (String, byte[] etc.).
io.axoniq.dataprotection.serialization.json
Support for serialization to JSON via Jackson.
io.axoniq.dataprotection.serialization.xml
Support for serialization to XML via XStream.