## keysstore keysstore — Keys store implementation for Microsoft Crypto API. |

## Stability Level

Private, unless otherwise indicated

## Functions

xmlSecKeyStoreId | xmlSecMSCryptoKeysStoreGetKlass ()
int | xmlSecMSCryptoKeysStoreAdoptKey ()
int | xmlSecMSCryptoKeysStoreLoad ()
int | xmlSecMSCryptoKeysStoreSave ()

## Types and Values

#define | xmlSecMSCryptoKeysStoreId

## Description

MSCrypto keys store that uses Simple Keys Store under the hood. Uses the MS Certificate store as a backing store for the finding keys, but the MS Certificate store 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 MS Certificate store is looked up. Thus, the MS Certificate store can be used to pre-load keys and becomes an alternate source of keys for xmlsec.

## Functions

### xmlSecMSCryptoKeysStoreGetKlass ()

    xmlSecKeyStoreId
    xmlSecMSCryptoKeysStoreGetKlass (void);

The MSCrypto list based keys store klass.

#### Returns

MSCrypto list based keys store klass.

### xmlSecMSCryptoKeysStoreAdoptKey ()

    int
    xmlSecMSCryptoKeysStoreAdoptKey (xmlSecKeyStorePtr store,
                                     xmlSecKeyPtr key);

Adds `key` to the `store` .

#### Parameters

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

#### Returns

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

### xmlSecMSCryptoKeysStoreLoad ()

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

Reads keys from an XML file.

#### Parameters

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

#### Returns

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

### xmlSecMSCryptoKeysStoreSave ()

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

Writes keys from `store` to an XML file.

#### Parameters

store | the pointer to MSCrypto 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

### xmlSecMSCryptoKeysStoreId

    #define xmlSecMSCryptoKeysStoreId       xmlSecMSCryptoKeysStoreGetKlass()

A MSCrypto keys store klass id.