- Home
- Download
- News
- Documentation

- FAQ
- Tutorial
- API reference
- Examples

- XML Digital Signature

- Online Verifier

- XML Encryption
- XML Canonicalization
- Reporting Bugs
- Mailing list
- Related
- Authors

# keysmngr

## Name

keysmngr --

## Synopsis

    xmlSecKeysMngrPtr xmlSecKeysMngrCreate      (void);
    void        xmlSecKeysMngrDestroy           (xmlSecKeysMngrPtr mngr);
    xmlSecKeyPtr xmlSecKeysMngrFindKey          (xmlSecKeysMngrPtr mngr,
                                                 const xmlChar *name,
                                                 xmlSecKeyInfoCtxPtr keyInfoCtx);
    int         xmlSecKeysMngrAdoptKeysStore    (xmlSecKeysMngrPtr mngr,
                                                 xmlSecKeyStorePtr store);
    xmlSecKeyStorePtr xmlSecKeysMngrGetKeysStore
                                                (xmlSecKeysMngrPtr mngr);
    int         xmlSecKeysMngrAdoptDataStore    (xmlSecKeysMngrPtr mngr,
                                                 xmlSecKeyDataStorePtr store);
    xmlSecKeyDataStorePtr xmlSecKeysMngrGetDataStore
                                                (xmlSecKeysMngrPtr mngr,
                                                 xmlSecKeyDataStoreId id);
    xmlSecKeyPtr (*xmlSecGetKeyCallback)        (xmlNodePtr keyInfoNode,
                                                 xmlSecKeyInfoCtxPtr keyInfoCtx);
    struct      xmlSecKeysMngr;
    xmlSecKeyPtr xmlSecKeysMngrGetKey           (xmlNodePtr keyInfoNode,
                                                 xmlSecKeyInfoCtxPtr keyInfoCtx);
    struct      xmlSecKeyStore;
    xmlSecKeyStorePtr xmlSecKeyStoreCreate      (xmlSecKeyStoreId id);
    void        xmlSecKeyStoreDestroy           (xmlSecKeyStorePtr store);
    xmlSecKeyPtr xmlSecKeyStoreFindKey          (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
    xmlSecKeyStoreId xmlSecSimpleKeysStoreGetKlass
                                                (void);
    int         xmlSecSimpleKeysStoreAdoptKey   (xmlSecKeyStorePtr store,
                                                 xmlSecKeyPtr key);
    int         xmlSecSimpleKeysStoreLoad       (xmlSecKeyStorePtr store,
                                                 const char *uri,
                                                 xmlSecKeysMngrPtr keysMngr);
    int         xmlSecSimpleKeysStoreSave       (xmlSecKeyStorePtr store,
                                                 const char *filename,
                                                 xmlSecKeyDataType type);

## Description

## 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.