A KeyStore provides a high-level interface for a collection of keys and certificates stored in files. The constructor takes a path argument that specifies the directory where the files are located.
A KeyStore uses three files: keys, private, and certs. Each file uses is read and written using pisces.spkilib.database.
Each KeyStore has a default key that is used to create and resolve name certs.
A MultiKeyStore instance provides a KeyStore-interface on top of several underlying KeyStore implementations. It can be used to share a KeyStore among several users.
The constructor accepts objects implementing the KeyStore interface as arguments. It uses keyword arguments to indicate whether a particular object should be read-only or read-write and whether it should be used to store private keys. The readers argument accepts a list of objects that will be used for lookups only. The writers argument accepts a list of objects that will be used for adds only. The both argument accepts a list of objects that are used for lookups and adds. The private argument accepts a list of objects that can be used to store private keys; a writer object will not be used for private keys unless it is also in the private list.