## keysstore

keysstore — Keys store implementation for NSS.

## Stability Level

Stable, unless otherwise indicated

## Functions

xmlSecKeyStoreId | xmlSecNssKeysStoreGetKlass ()
int | xmlSecNssKeysStoreAdoptKey ()
int | xmlSecNssKeysStoreLoad ()
int | xmlSecNssKeysStoreSave ()

## Types and Values

#define | xmlSecNssKeysStoreId

## Description

Nss keys store that uses Simple Keys Store under the hood. Uses the Nss DB as a backing store for the finding keys, but the NSS DB is not written to by the keys store. So, if store->findkey is done and the key is not found in the simple keys store, the NSS DB is looked up. If store is called to adopt a key, that key is not written to the NSS DB. Thus, the NSS DB can be used to pre-load keys and becomes an alternate source of keys for xmlsec

## Functions

### xmlSecNssKeysStoreGetKlass ()

    xmlSecKeyStoreId
    xmlSecNssKeysStoreGetKlass (void);

The Nss list based keys store klass.

#### Returns

Nss list based keys store klass.

### xmlSecNssKeysStoreAdoptKey ()

    int
    xmlSecNssKeysStoreAdoptKey (xmlSecKeyStorePtr store,
                                xmlSecKeyPtr key);

Adds `key` to the `store` .

#### Parameters

store | the pointer to Nss keys store. |
key | the pointer to key. |

#### Returns

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

### xmlSecNssKeysStoreLoad ()

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

Reads keys from an XML file.

#### Parameters

store | the pointer to Nss keys store. |
uri | the filename. |
keysMngr | the pointer to associated keys manager. |

#### Returns

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

### xmlSecNssKeysStoreSave ()

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

Writes keys from `store` to an XML file.

#### Parameters

store | the pointer to Nss keys store. |
filename | the filename. |
type | the saved keys type (public, private, ...). |

#### Returns

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

## Types and Values

### xmlSecNssKeysStoreId

    #define xmlSecNssKeysStoreId            xmlSecNssKeysStoreGetKlass()

A Nss keys store klass id.