# All Classes

- All Classes Interface Summary Class Summary Enum Summary Exception Summary Annotation Types Summary
  Class | Description
  --- | ---
  ConfigurationException | Runtime exception which indicates that there is some problem with the configuration.
  CryptoEngine | Interface towards the cryptographic functionality needed by the Axon Data Protection Module.
  DatabaseBackedCryptoEngine | Partial implementation of `CryptoEngine` which operates using the JVM's standard `Provider` to perform encryption and decryption, while assuming some separate storage facility for keys.
  DataException | Runtime exception that is thrown when something unexpected happens with a single data record, but the system should be able to continue functioning with other data entries.
  DataSubjectId | Field annotation that marks the field as containing an identifier of the key to be used when encrypting personal data fields of this class.
  DataSubjectIdContainer | Container annotation defined to support the use of multiple `DataSubjectId` annotations on the same field.
  DeepPersonalData | Field annotation that marks the field as containing an object that contains personal data.
  DeepPersonalDataContainer | Container annotation defined to support the use of multiple `DeepPersonalData` annotations on the same field.
  DefaultKeyEntity | Default implementation of `KeyEntity`.
  FieldEncrypter | This class can take an object and encrypt and decrypt its fields, including the fields of any objects deeper in the object tree, according to the configuration of the various Axon Data Protection Module annotations.
  FieldEncryptingSerializer | Implementation of `Serializer` which wraps a delegate `Serializer`, but performs encryption before serializing and decryption after deserializing, using a `FieldEncrypter`.
  InMemoryCryptoEngine | Implementation of `CryptoEngine` that extends from `DatabaseBackedCryptoEngine` and simply keeps all its data in an in-memory `ConcurrentHashMap`.
  JavaKeyStoreCryptoEngine | Implementation of `CryptoEngine` that uses a JCE `KeyStore` implementation to store its keys.
  JdbcCryptoEngine | JDBC-based implementation of the `CryptoEngine` interface, included for users who wish to store keys in a relational database but do not wish to use JPA.
  JpaCryptoEngine | Implementation of `CryptoEngine` that extends from `DatabaseBackedCryptoEngine` and stores its data in a relational database using JPA.
  KeyEntity | Interface to describe a key entity managed by the `JpaCryptoEngine`.
  KeyType | Enum used to describe key type/length.
  PermissionDeniedException | Exception that is thrown internally in the VaultCryptoEngine when a 403 response is returned from Vault.
  PersonalData | Field annotation that marks the field as containing personal data.
  PersonalDataContainer | Container annotation defined to support the use of multiple `PersonalData` annotations on the same field.
  PersonalDataType | Marker annotation to indicate that a class is a suitable type for `DeepPersonalData`, even though it by itself doesn't carry any Axon Data Protection Module annotations.
  PKCS11CryptoEngine | Implementation of `CryptoEngine` that uses a PKCS#11 backend, such as a Hardware Security Module (HSM).
  ReplacementValueProvider | Class that represents the replacement value mechanism.
  Scope | Enum that determines the scope of one of the other Axon Data Protection Module annotations.
  SerializedPersonalData | Field annotation that marks the field as containing personal data.
  VaultCryptoEngine | HashiCorp Vault-based implementation of the `CryptoEngine` interface.