GordianKnot provides an layer over the BouncyCastle encryption library, and adds significant additional functionality, via a GordianFactory object. Two flavours of factory are provided, one that accesses BouncyCastle via the JCA provider interface, and one that accesses the BouncyCastle lightweight API. This second flavour supports additional algorithms not currently available in the JCA interface, or for that matter in BouncyCastle itself.
The factory provides access to a number of subFactories (e.g. GordianDigestFactory) to simplify the API.
The Vanilla API provides access to cryptographic primitives. Each primitive is identified by a Specification object such as GordianDigestSpec which identifies the algorithm variant that is required.
The Extended API provides access to additional features that are not provided by BouncyCastle.