XML Security Library

LibXML2
LibXSLT
OpenSSL

keysmngr

Name

keysmngr -- Keys manager object support.

Synopsis

xmlSecKeysMngrPtr   xmlSecKeysMngrCreate                (void);
voidxmlSecKeysMngrDestroy               (xmlSecKeysMngrPtr mngr);
xmlSecKeyPtrxmlSecKeysMngrFindKey               (xmlSecKeysMngrPtr mngr,
                                                         const xmlChar *name,
                                                         xmlSecKeyInfoCtxPtr keyInfoCtx);
intxmlSecKeysMngrAdoptKeysStore        (xmlSecKeysMngrPtr mngr,
                                                         xmlSecKeyStorePtr store);
xmlSecKeyStorePtrxmlSecKeysMngrGetKeysStore          (xmlSecKeysMngrPtr mngr);
intxmlSecKeysMngrAdoptDataStore        (xmlSecKeysMngrPtr mngr,
                                                         xmlSecKeyDataStorePtr store);
xmlSecKeyDataStorePtrxmlSecKeysMngrGetDataStore       (xmlSecKeysMngrPtr mngr,
                                                         xmlSecKeyDataStoreId id);
xmlSecKeyPtr        (*xmlSecGetKeyCallback)             (xmlNodePtr keyInfoNode,
                                                         xmlSecKeyInfoCtxPtr keyInfoCtx);
struct              xmlSecKeysMngr;
xmlSecKeyPtrxmlSecKeysMngrGetKey                (xmlNodePtr keyInfoNode,
                                                         xmlSecKeyInfoCtxPtr keyInfoCtx);
struct              xmlSecKeyStore;
xmlSecKeyStorePtr   xmlSecKeyStoreCreate                (xmlSecKeyStoreId id);
voidxmlSecKeyStoreDestroy               (xmlSecKeyStorePtr store);
xmlSecKeyPtrxmlSecKeyStoreFindKey               (xmlSecKeyStorePtr store,
                                                         const xmlChar *name,
                                                         xmlSecKeyInfoCtxPtr keyInfoCtx);
#define             xmlSecKeyStoreGetName               (store)
#define             xmlSecKeyStoreIsValid               (store)
#define             xmlSecKeyStoreCheckId               (store,
                                                         storeId)
#define             xmlSecKeyStoreCheckSize             (store,
                                                         size)
#define             xmlSecKeyStoreIdUnknown
int                 (*xmlSecKeyStoreInitializeMethod)   (xmlSecKeyStorePtr store);
void                (*xmlSecKeyStoreFinalizeMethod)     (xmlSecKeyStorePtr store);
xmlSecKeyPtr        (*xmlSecKeyStoreFindKeyMethod)      (xmlSecKeyStorePtr store,
                                                         const xmlChar *name,
                                                         xmlSecKeyInfoCtxPtr keyInfoCtx);
struct              xmlSecKeyStoreKlass;
#define             xmlSecKeyStoreKlassGetName          (klass)
#define             xmlSecSimpleKeysStoreId
xmlSecKeyStoreIdxmlSecSimpleKeysStoreGetKlass       (void);
intxmlSecSimpleKeysStoreAdoptKey       (xmlSecKeyStorePtr store,
                                                         xmlSecKeyPtr key);
intxmlSecSimpleKeysStoreLoad           (xmlSecKeyStorePtr store,
                                                         const char *uri,
                                                         xmlSecKeysMngrPtr keysMngr);
intxmlSecSimpleKeysStoreSave           (xmlSecKeyStorePtr store,
                                                         const char *filename,
                                                         xmlSecKeyDataType type);
xmlSecPtrListPtrxmlSecSimpleKeysStoreGetKeys        (xmlSecKeyStorePtr store);

Description

Keys manager object support.

Details

xmlSecKeysMngrCreate ()

xmlSecKeysMngrPtr   xmlSecKeysMngrCreate                (void);

Creates new keys manager. Caller is responsible for freeing it with xmlSecKeysMngrDestroy function.

Returns :

the pointer to newly allocated keys manager or NULL if an error occurs.


xmlSecKeysMngrDestroy ()

void                xmlSecKeysMngrDestroy               (xmlSecKeysMngrPtr mngr);

Destroys keys manager created with xmlSecKeysMngrCreate function.

mngr :

the pointer to keys manager.


xmlSecKeysMngrFindKey ()

xmlSecKeyPtr        xmlSecKeysMngrFindKey               (xmlSecKeysMngrPtr mngr,
                                                         const xmlChar *name,
                                                         xmlSecKeyInfoCtxPtr keyInfoCtx);

Lookups key in the keys manager keys store. The caller is responsible for destroying the returned key using xmlSecKeyDestroy method.

mngr :

the pointer to keys manager.

name :

the desired key name.

keyInfoCtx :

the pointer to <dsig:KeyInfo/> node processing context.

Returns :

the pointer to a key or NULL if key is not found or an error occurs.


xmlSecKeysMngrAdoptKeysStore ()

int                 xmlSecKeysMngrAdoptKeysStore        (xmlSecKeysMngrPtr mngr,
                                                         xmlSecKeyStorePtr store);

Adopts keys store in the keys manager mngr.

mngr :

the pointer to keys manager.

store :

the pointer to keys store.

Returns :

0 on success or a negative value if an error occurs.


xmlSecKeysMngrGetKeysStore ()

xmlSecKeyStorePtr   xmlSecKeysMngrGetKeysStore          (xmlSecKeysMngrPtr mngr);

Gets the keys store.

mngr :

the pointer to keys manager.

Returns :

the keys store in the keys manager mngr or NULL if there is no store or an error occurs.


xmlSecKeysMngrAdoptDataStore ()

int                 xmlSecKeysMngrAdoptDataStore        (xmlSecKeysMngrPtr mngr,
                                                         xmlSecKeyDataStorePtr store);

Adopts data store in the keys manager.

mngr :

the pointer to keys manager.

store :

the pointer to data store.

Returns :

0 on success or a negative value if an error occurs.


xmlSecKeysMngrGetDataStore ()

xmlSecKeyDataStorePtr  xmlSecKeysMngrGetDataStore       (xmlSecKeysMngrPtr mngr,
                                                         xmlSecKeyDataStoreId id);

Lookups the data store of given klass id in the keys manager.

mngr :

the pointer to keys manager.

id :

the desired data store klass.

Returns :

pointer to data store or NULL if it is not found or an error occurs.


xmlSecGetKeyCallback ()

xmlSecKeyPtr        (*xmlSecGetKeyCallback)             (xmlNodePtr keyInfoNode,
                                                         xmlSecKeyInfoCtxPtr keyInfoCtx);

Reads the <dsig:KeyInfo/> node keyInfoNode and extracts the key.

keyInfoNode :

the pointer to <dsig:KeyInfo/> node.

keyInfoCtx :

the pointer to <dsig:KeyInfo/> node processing context.

Returns :

the pointer to key or NULL if the key is not found or an error occurs.


struct xmlSecKeysMngr

struct xmlSecKeysMngr {
    xmlSecKeyStorePtr           keysStore;
    xmlSecPtrList               storesList;
    xmlSecGetKeyCallback        getKey;
};

The keys manager structure.

xmlSecKeyStorePtr keysStore;

the key store (list of keys known to keys manager).

xmlSecPtrList storesList;

the list of key data stores known to keys manager.

xmlSecGetKeyCallback getKey;

the callback used to read <dsig:KeyInfo/> node.


xmlSecKeysMngrGetKey ()

xmlSecKeyPtr        xmlSecKeysMngrGetKey                (xmlNodePtr keyInfoNode,
                                                         xmlSecKeyInfoCtxPtr keyInfoCtx);

Reads the <dsig:KeyInfo/> node keyInfoNode and extracts the key.

keyInfoNode :

the pointer to <dsig:KeyInfo/> node.

keyInfoCtx :

the pointer to <dsig:KeyInfo/> node processing context.

Returns :

the pointer to key or NULL if the key is not found or an error occurs.


struct xmlSecKeyStore

struct xmlSecKeyStore {
    xmlSecKeyStoreId                    id;

    /* for the future */
    void*                               reserved0;
    void*                               reserved1;
};

The keys store.

xmlSecKeyStoreId id;

the store id (xmlSecKeyStoreId).

void *reserved0;

reserved for the future.

void *reserved1;

reserved for the future.


xmlSecKeyStoreCreate ()

xmlSecKeyStorePtr   xmlSecKeyStoreCreate                (xmlSecKeyStoreId id);

Creates new store of the specified klass klass. Caller is responsible for freeing the returned store by calling xmlSecKeyStoreDestroy function.

id :

the key store klass.

Returns :

the pointer to newly allocated keys store or NULL if an error occurs.


xmlSecKeyStoreDestroy ()

void                xmlSecKeyStoreDestroy               (xmlSecKeyStorePtr store);

Destroys the store created with xmlSecKeyStoreCreate function.

store :

the pointer to keys store.


xmlSecKeyStoreFindKey ()

xmlSecKeyPtr        xmlSecKeyStoreFindKey               (xmlSecKeyStorePtr store,
                                                         const xmlChar *name,
                                                         xmlSecKeyInfoCtxPtr keyInfoCtx);

Lookups key in the store. The caller is responsible for destroying the returned key using xmlSecKeyDestroy method.

store :

the pointer to keys store.

name :

the desired key name.

keyInfoCtx :

the pointer to <dsig:KeyInfo/> node processing context.

Returns :

the pointer to a key or NULL if key is not found or an error occurs.


xmlSecKeyStoreGetName()

#define             xmlSecKeyStoreGetName(store)

Macro. Returns key store name.

store :

the pointer to store.


xmlSecKeyStoreIsValid()

#define             xmlSecKeyStoreIsValid(store)

Macro. Returns 1 if store is not NULL and store->id is not NULL or 0 otherwise.

store :

the pointer to store.


xmlSecKeyStoreCheckId()

#define             xmlSecKeyStoreCheckId(store, storeId)

Macro. Returns 1 if store is valid and store's id is equal to storeId.

store :

the pointer to store.

storeId :

the store Id.


xmlSecKeyStoreCheckSize()

#define             xmlSecKeyStoreCheckSize(store, size)

Macro. Returns 1 if store is valid and stores's object has at least size bytes.

store :

the pointer to store.

size :

the expected size.


xmlSecKeyStoreIdUnknown

#define xmlSecKeyStoreIdUnknown                         ((xmlSecKeyDataStoreId)NULL)

The "unknown" id.


xmlSecKeyStoreInitializeMethod ()

int                 (*xmlSecKeyStoreInitializeMethod)   (xmlSecKeyStorePtr store);

Keys store specific initialization method.

store :

the store.

Returns :

0 on success or a negative value if an error occurs.


xmlSecKeyStoreFinalizeMethod ()

void                (*xmlSecKeyStoreFinalizeMethod)     (xmlSecKeyStorePtr store);

Keys store specific finalization (destroy) method.

store :

the store.


xmlSecKeyStoreFindKeyMethod ()

xmlSecKeyPtr        (*xmlSecKeyStoreFindKeyMethod)      (xmlSecKeyStorePtr store,
                                                         const xmlChar *name,
                                                         xmlSecKeyInfoCtxPtr keyInfoCtx);

Keys store specific find method. The caller is responsible for destroying the returned key using xmlSecKeyDestroy method.

store :

the store.

name :

the desired key name.

keyInfoCtx :

the pointer to key info context.

Returns :

the pointer to a key or NULL if key is not found or an error occurs.


struct xmlSecKeyStoreKlass

struct xmlSecKeyStoreKlass {
    xmlSecSize                          klassSize;
    xmlSecSize                          objSize;

    /* data */
    const xmlChar*                      name;

    /* constructors/destructor */
    xmlSecKeyStoreInitializeMethod      initialize;
    xmlSecKeyStoreFinalizeMethod        finalize;
    xmlSecKeyStoreFindKeyMethod         findKey;

    /* for the future */
    void*                               reserved0;
    void*                               reserved1;
};

The keys store id (klass).

xmlSecSize klassSize;

the store klass size.

xmlSecSize objSize;

the store obj size.

const xmlChar *name;

the store's name.

xmlSecKeyStoreInitializeMethod initialize;

the store's initialization method.

xmlSecKeyStoreFinalizeMethod finalize;

the store's finalization (destroy) method.

xmlSecKeyStoreFindKeyMethod findKey;

the store's find method.

void *reserved0;

reserved for the future.

void *reserved1;

reserved for the future.


xmlSecKeyStoreKlassGetName()

#define             xmlSecKeyStoreKlassGetName(klass)

Macro. Returns store klass name.

klass :

the pointer to store klass.


xmlSecSimpleKeysStoreId

#define xmlSecSimpleKeysStoreId         xmlSecSimpleKeysStoreGetKlass()

A simple keys store klass id.


xmlSecSimpleKeysStoreGetKlass ()

xmlSecKeyStoreId    xmlSecSimpleKeysStoreGetKlass       (void);

The simple list based keys store klass.

Returns :

simple list based keys store klass.


xmlSecSimpleKeysStoreAdoptKey ()

int                 xmlSecSimpleKeysStoreAdoptKey       (xmlSecKeyStorePtr store,
                                                         xmlSecKeyPtr key);

Adds key to the store.

store :

the pointer to simple keys store.

key :

the pointer to key.

Returns :

0 on success or a negative value if an error occurs.


xmlSecSimpleKeysStoreLoad ()

int                 xmlSecSimpleKeysStoreLoad           (xmlSecKeyStorePtr store,
                                                         const char *uri,
                                                         xmlSecKeysMngrPtr keysMngr);

Reads keys from an XML file.

store :

the pointer to simple keys store.

uri :

the filename.

keysMngr :

the pointer to associated keys manager.

Returns :

0 on success or a negative value if an error occurs.


xmlSecSimpleKeysStoreSave ()

int                 xmlSecSimpleKeysStoreSave           (xmlSecKeyStorePtr store,
                                                         const char *filename,
                                                         xmlSecKeyDataType type);

Writes keys from store to an XML file.

store :

the pointer to simple keys store.

filename :

the filename.

type :

the saved keys type (public, private, ...).

Returns :

0 on success or a negative value if an error occurs.


xmlSecSimpleKeysStoreGetKeys ()

xmlSecPtrListPtr    xmlSecSimpleKeysStoreGetKeys        (xmlSecKeyStorePtr store);

Gets list of keys from simple keys store.

store :

the pointer to simple keys store.

Returns :

pointer to the list of keys stored in the keys store or NULL if an error occurs.