Core ideas #
Dispatch and encapsulation → data-set #
The first core idea revolved around how to interface with a plugin, and I ended up with the Data Set
Along with this came an environment object, on which everything else hinges.
Objects and Operations #
All cryptograhic algorithms are made up of a number of operations, and in some cases, a well defined object or two (typically, a key).
Both Objects and Operations are represented as Data Sets, along with a set of interface functions.
Passing arbitrary parameters → parameter descriptors #
Different cryptograhic objects and operations may be parametrized, so there’s a need for the plugins to specify what parameters they take, and what sort of contents should be passed with each of them.