- Home
- Download
- News
- Documentation

- FAQ
- Tutorial
- API reference
- Examples

- XML Digital Signature

- Online Verifier

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

# app

## Name

app -- Application functions implementation for NSS.

## Synopsis

    intxmlSecNssAppInit                    (const char *config);
    intxmlSecNssAppShutdown                (void);
    intxmlSecNssAppDefaultKeysMngrInit     (xmlSecKeysMngrPtr mngr);
    intxmlSecNssAppDefaultKeysMngrAdoptKey (xmlSecKeysMngrPtr mngr,
                                                             xmlSecKeyPtr key);
    intxmlSecNssAppDefaultKeysMngrLoad     (xmlSecKeysMngrPtr mngr,
                                                             const char *uri);
    intxmlSecNssAppDefaultKeysMngrSave     (xmlSecKeysMngrPtr mngr,
                                                             const char *filename,
                                                             xmlSecKeyDataType type);
    intxmlSecNssAppKeysMngrCertLoad        (xmlSecKeysMngrPtr mngr,
                                                             const char *filename,
                                                             xmlSecKeyDataFormat format,
                                                             xmlSecKeyDataType type);
    intxmlSecNssAppKeysMngrCertLoadMemory  (xmlSecKeysMngrPtr mngr,
                                                             const xmlSecByte *data,
                                                             xmlSecSize dataSize,
                                                             xmlSecKeyDataFormat format,
                                                             xmlSecKeyDataType type);
    intxmlSecNssAppKeysMngrCertLoadSECItem (xmlSecKeysMngrPtr mngr,
                                                             SECItem *secItem,
                                                             xmlSecKeyDataFormat format,
                                                             xmlSecKeyDataType type);
    xmlSecKeyPtr        xmlSecNssAppKeyLoad                 (const char *filename,
                                                             xmlSecKeyDataFormat format,
                                                             const char *pwd,
                                                             void *pwdCallback,
                                                             void *pwdCallbackCtx);
    xmlSecKeyPtr        xmlSecNssAppKeyLoadMemory           (const xmlSecByte *data,
                                                             xmlSecSize dataSize,
                                                             xmlSecKeyDataFormat format,
                                                             const char *pwd,
                                                             void *pwdCallback,
                                                             void *pwdCallbackCtx);
    xmlSecKeyPtr        xmlSecNssAppKeyLoadSECItem          (SECItem *secItem,
                                                             xmlSecKeyDataFormat format,
                                                             const char *pwd,
                                                             void *pwdCallback,
                                                             void *pwdCallbackCtx);
    xmlSecKeyPtr        xmlSecNssAppPkcs12Load              (const char *filename,
                                                             const char *pwd,
                                                             void *pwdCallback,
                                                             void *pwdCallbackCtx);
    xmlSecKeyPtr        xmlSecNssAppPkcs12LoadMemory        (const xmlSecByte *data,
                                                             xmlSecSize dataSize,
                                                             const char *pwd,
                                                             void *pwdCallback,
                                                             void *pwdCallbackCtx);
    xmlSecKeyPtr        xmlSecNssAppPkcs12LoadSECItem       (SECItem *secItem,
                                                             const char *pwd,
                                                             void *pwdCallback,
                                                             void *pwdCallbackCtx);
    intxmlSecNssAppKeyCertLoad             (xmlSecKeyPtr key,
                                                             const char *filename,
                                                             xmlSecKeyDataFormat format);
    intxmlSecNssAppKeyCertLoadMemory       (xmlSecKeyPtr key,
                                                             const xmlSecByte *data,
                                                             xmlSecSize dataSize,
                                                             xmlSecKeyDataFormat format);
    intxmlSecNssAppKeyCertLoadSECItem      (xmlSecKeyPtr key,
                                                             SECItem *secItem,
                                                             xmlSecKeyDataFormat format);
    xmlSecKeyPtr        xmlSecNssAppKeyFromCertLoadSECItem  (SECItem *secItem,
                                                             xmlSecKeyDataFormat format);
    void*               xmlSecNssAppGetDefaultPwdCallback   (void);

## Description

Application functions implementation for NSS.

## Details

### xmlSecNssAppInit ()

    int                 xmlSecNssAppInit                    (const char *config);

General crypto engine initialization. This function is used by XMLSec command line utility and called before `xmlSecInit` function.

`config` : | the path to NSS database files.
Returns : | 0 on success or a negative value otherwise.

### xmlSecNssAppShutdown ()

    int                 xmlSecNssAppShutdown                (void);

General crypto engine shutdown. This function is used by XMLSec command line utility and called after `xmlSecShutdown` function.

Returns : | 0 on success or a negative value otherwise.

### xmlSecNssAppDefaultKeysMngrInit ()

    int                 xmlSecNssAppDefaultKeysMngrInit     (xmlSecKeysMngrPtr mngr);

Initializes `mngr` with NSS keys store xmlSecNssKeysStoreId and a default NSS crypto key data stores.

`mngr` : | the pointer to keys manager.
Returns : | 0 on success or a negative value otherwise.

### xmlSecNssAppDefaultKeysMngrAdoptKey ()

    int                 xmlSecNssAppDefaultKeysMngrAdoptKey (xmlSecKeysMngrPtr mngr,
                                                             xmlSecKeyPtr key);

Adds `key` to the keys manager `mngr` created with xmlSecNssAppDefaultKeysMngrInit function.

`mngr` : | the pointer to keys manager.
`key` : | the pointer to key.
Returns : | 0 on success or a negative value otherwise.

### xmlSecNssAppDefaultKeysMngrLoad ()

    int                 xmlSecNssAppDefaultKeysMngrLoad     (xmlSecKeysMngrPtr mngr,
                                                             const char *uri);

Loads XML keys file from `uri` to the keys manager `mngr` created with xmlSecNssAppDefaultKeysMngrInit function.

`mngr` : | the pointer to keys manager.
`uri` : | the uri.
Returns : | 0 on success or a negative value otherwise.

### xmlSecNssAppDefaultKeysMngrSave ()

    int                 xmlSecNssAppDefaultKeysMngrSave     (xmlSecKeysMngrPtr mngr,
                                                             const char *filename,
                                                             xmlSecKeyDataType type);

Saves keys from `mngr` to XML keys file.

`mngr` : | the pointer to keys manager.
`filename` : | the destination filename.
`type` : | the type of keys to save (public/private/symmetric).
Returns : | 0 on success or a negative value otherwise.

### xmlSecNssAppKeysMngrCertLoad ()

    int                 xmlSecNssAppKeysMngrCertLoad        (xmlSecKeysMngrPtr mngr,
                                                             const char *filename,
                                                             xmlSecKeyDataFormat format,
                                                             xmlSecKeyDataType type);

Reads cert from `filename` and adds to the list of trusted or known untrusted certs in `store`

`mngr` : | the pointer to keys manager.
`filename` : | the certificate file.
`format` : | the certificate file format (PEM or DER).
`type` : | the certificate type (trusted/untrusted).
Returns : | 0 on success or a negative value otherwise.

### xmlSecNssAppKeysMngrCertLoadMemory ()

    int                 xmlSecNssAppKeysMngrCertLoadMemory  (xmlSecKeysMngrPtr mngr,
                                                             const xmlSecByte *data,
                                                             xmlSecSize dataSize,
                                                             xmlSecKeyDataFormat format,
                                                             xmlSecKeyDataType type);

Reads cert from `data` and adds to the list of trusted or known untrusted certs in `store`

`mngr` : | the pointer to keys manager.
`data` : | the key binary data.
`dataSize` : | the key binary data size.
`format` : | the certificate format (PEM or DER).
`type` : | the certificate type (trusted/untrusted).
Returns : | 0 on success or a negative value otherwise.

### xmlSecNssAppKeysMngrCertLoadSECItem ()

    int                 xmlSecNssAppKeysMngrCertLoadSECItem (xmlSecKeysMngrPtr mngr,
                                                             SECItem *secItem,
                                                             xmlSecKeyDataFormat format,
                                                             xmlSecKeyDataType type);

Reads cert from `secItem` and adds to the list of trusted or known untrusted certs in `store`

`mngr` : | the pointer to keys manager.
`secItem` : | the pointer to SECItem.
`format` : | the certificate format (PEM or DER).
`type` : | the certificate type (trusted/untrusted).
Returns : | 0 on success or a negative value otherwise.

### xmlSecNssAppKeyLoad ()

    xmlSecKeyPtr        xmlSecNssAppKeyLoad                 (const char *filename,
                                                             xmlSecKeyDataFormat format,
                                                             const char *pwd,
                                                             void *pwdCallback,
                                                             void *pwdCallbackCtx);

Reads key from a file

`filename` : | the key filename.
`format` : | the key file format.
`pwd` : | the key file password.
`pwdCallback` : | the key password callback.
`pwdCallbackCtx` : | the user context for password callback.
Returns : | pointer to the key or NULL if an error occurs.

### xmlSecNssAppKeyLoadMemory ()

    xmlSecKeyPtr        xmlSecNssAppKeyLoadMemory           (const xmlSecByte *data,
                                                             xmlSecSize dataSize,
                                                             xmlSecKeyDataFormat format,
                                                             const char *pwd,
                                                             void *pwdCallback,
                                                             void *pwdCallbackCtx);

Reads key from a binary `data`.

`data` : | the key binary data.
`dataSize` : | the key binary data size.
`format` : | the key data format.
`pwd` : | the key data2 password.
`pwdCallback` : | the key password callback.
`pwdCallbackCtx` : | the user context for password callback.
Returns : | pointer to the key or NULL if an error occurs.

### xmlSecNssAppKeyLoadSECItem ()

    xmlSecKeyPtr        xmlSecNssAppKeyLoadSECItem          (SECItem *secItem,
                                                             xmlSecKeyDataFormat format,
                                                             const char *pwd,
                                                             void *pwdCallback,
                                                             void *pwdCallbackCtx);

Reads key from a file

`secItem` : | the pointer to sec item.
`format` : | the key format.
`pwd` : | the key password.
`pwdCallback` : | the key password callback.
`pwdCallbackCtx` : | the user context for password callback.
Returns : | pointer to the key or NULL if an error occurs.

### xmlSecNssAppPkcs12Load ()

    xmlSecKeyPtr        xmlSecNssAppPkcs12Load              (const char *filename,
                                                             const char *pwd,
                                                             void *pwdCallback,
                                                             void *pwdCallbackCtx);

Reads key and all associated certificates from the PKCS12 file. For uniformity, call xmlSecNssAppKeyLoad instead of this function. Pass in format=xmlSecKeyDataFormatPkcs12.

`filename` : | the PKCS12 key filename.
`pwd` : | the PKCS12 file password.
`pwdCallback` : | the password callback.
`pwdCallbackCtx` : | the user context for password callback.
Returns : | pointer to the key or NULL if an error occurs.

### xmlSecNssAppPkcs12LoadMemory ()

    xmlSecKeyPtr        xmlSecNssAppPkcs12LoadMemory        (const xmlSecByte *data,
                                                             xmlSecSize dataSize,
                                                             const char *pwd,
                                                             void *pwdCallback,
                                                             void *pwdCallbackCtx);

Reads key and all associated certificates from the PKCS12 binary data. For uniformity, call xmlSecNssAppKeyLoad instead of this function. Pass in format=xmlSecKeyDataFormatPkcs12.

`data` : | the key binary data.
`dataSize` : | the key binary data size.
`pwd` : | the PKCS12 password.
`pwdCallback` : | the password callback.
`pwdCallbackCtx` : | the user context for password callback.
Returns : | pointer to the key or NULL if an error occurs.

### xmlSecNssAppPkcs12LoadSECItem ()

    xmlSecKeyPtr        xmlSecNssAppPkcs12LoadSECItem       (SECItem *secItem,
                                                             const char *pwd,
                                                             void *pwdCallback,
                                                             void *pwdCallbackCtx);

Reads key and all associated certificates from the PKCS12 SECItem. For uniformity, call xmlSecNssAppKeyLoad instead of this function. Pass in format=xmlSecKeyDataFormatPkcs12.

`secItem` : | the `SECItem` object.
`pwd` : | the PKCS12 file password.
`pwdCallback` : | the password callback.
`pwdCallbackCtx` : | the user context for password callback.
Returns : | pointer to the key or NULL if an error occurs.

### xmlSecNssAppKeyCertLoad ()

    int                 xmlSecNssAppKeyCertLoad             (xmlSecKeyPtr key,
                                                             const char *filename,
                                                             xmlSecKeyDataFormat format);

Reads the certificate from $`filename` and adds it to key

`key` : | the pointer to key.
`filename` : | the certificate filename.
`format` : | the certificate file format.
Returns : | 0 on success or a negative value otherwise.

### xmlSecNssAppKeyCertLoadMemory ()

    int                 xmlSecNssAppKeyCertLoadMemory       (xmlSecKeyPtr key,
                                                             const xmlSecByte *data,
                                                             xmlSecSize dataSize,
                                                             xmlSecKeyDataFormat format);

Reads the certificate from `data` and adds it to key

`key` : | the pointer to key.
`data` : | the key binary data.
`dataSize` : | the key binary data size.
`format` : | the certificate format.
Returns : | 0 on success or a negative value otherwise.

### xmlSecNssAppKeyCertLoadSECItem ()

    int                 xmlSecNssAppKeyCertLoadSECItem      (xmlSecKeyPtr key,
                                                             SECItem *secItem,
                                                             xmlSecKeyDataFormat format);

Reads the certificate from `secItem` and adds it to key

`key` : | the pointer to key.
`secItem` : | the pointer to SECItem.
`format` : | the certificate format.
Returns : | 0 on success or a negative value otherwise.

### xmlSecNssAppKeyFromCertLoadSECItem ()

    xmlSecKeyPtr        xmlSecNssAppKeyFromCertLoadSECItem  (SECItem *secItem,
                                                             xmlSecKeyDataFormat format);

Loads public key from cert.

`secItem` : | the `SECItem` object.
`format` : | the cert format.
Returns : | pointer to key or NULL if an error occurs.

### xmlSecNssAppGetDefaultPwdCallback ()

    void*               xmlSecNssAppGetDefaultPwdCallback   (void);

Gets default password callback.

Returns : | default password callback.