/ story-8-Containers.org
story-8-Containers.org
 1  #+TITLE: Story 8 - Containers
 2  #+OPTIONS: author:nil date:nil
 3  
 4  A containers is a special kind of object, which contains other objects,
 5  accessible by tag, thus essentially becoming a tag:object store.
 6  
 7  Tags are free form (they may not even be a humanly readable string), much
 8  depending on the class of container.
 9  
10  Plugins are usually not expected to have to deal with containers for their
11  normal work.  Simple data objects should be enough.
12  
13  * Functions
14  
15  In addition to the [[file:story-8-Objects-and-Operations.org::*Functions][base object functions]], data objects should all commonly
16  support all or a sensible subset of the following functionality:
17  
18  - *Get Object*: Given a suitable tag, this should return the corresponding
19    object.
20  - *Set Object*: Given a suitable tag and an input object, they are stored
21    together.
22  
23  * Classes of containers
24  
25  These are a few relevant ideas, to be specified more precisely in future
26  stories.
27  
28  - PKCS#12
29  
30    A PKCS#12 object could be represented as a container with the different
31    things as objects (which may also be containers).
32  
33  - PKCS#8
34  
35    A PKCS#8 structure could be represented as a container with a private key
36    object, an AlgorithmIndentifier object, etc.
37  
38  - Higher level symmetric or asymmetric keys
39  
40    A higher level symmetric or asymmetric key could be a container, with an
41    original key object for an originating plugin, and cached copies, one for
42    each plugin that needs a copy that's adapted for it.
43