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

## Synopsis

    intxmlSecGCryptAppInit                 (const char *config);
    intxmlSecGCryptAppShutdown             (void);
    intxmlSecGCryptAppDefaultKeysMngrInit  (xmlSecKeysMngrPtr mngr);
    intxmlSecGCryptAppDefaultKeysMngrAdoptKey
                                                            (xmlSecKeysMngrPtr mngr,
                                                             xmlSecKeyPtr key);
    intxmlSecGCryptAppDefaultKeysMngrLoad  (xmlSecKeysMngrPtr mngr,
                                                             const char *uri);
    intxmlSecGCryptAppDefaultKeysMngrSave  (xmlSecKeysMngrPtr mngr,
                                                             const char *filename,
                                                             xmlSecKeyDataType type);
    intxmlSecGCryptAppKeysMngrCertLoad     (xmlSecKeysMngrPtr mngr,
                                                             const char *filename,
                                                             xmlSecKeyDataFormat format,
                                                             xmlSecKeyDataType type);
    intxmlSecGCryptAppKeysMngrCertLoadMemory
                                                            (xmlSecKeysMngrPtr mngr,
                                                             const xmlSecByte *data,
                                                             xmlSecSize dataSize,
                                                             xmlSecKeyDataFormat format,
                                                             xmlSecKeyDataType type);
    xmlSecKeyPtr        xmlSecGCryptAppKeyLoad              (const char *filename,
                                                             xmlSecKeyDataFormat format,
                                                             const char *pwd,
                                                             void *pwdCallback,
                                                             void *pwdCallbackCtx);
    xmlSecKeyPtr        xmlSecGCryptAppKeyLoadMemory        (const xmlSecByte *data,
                                                             xmlSecSize dataSize,
                                                             xmlSecKeyDataFormat format,
                                                             const char *pwd,
                                                             void *pwdCallback,
                                                             void *pwdCallbackCtx);
    xmlSecKeyPtr        xmlSecGCryptAppPkcs12Load           (const char *filename,
                                                             const char *pwd,
                                                             void *pwdCallback,
                                                             void *pwdCallbackCtx);
    xmlSecKeyPtr        xmlSecGCryptAppPkcs12LoadMemory     (const xmlSecByte *data,
                                                             xmlSecSize dataSize,
                                                             const char *pwd,
                                                             void *pwdCallback,
                                                             void *pwdCallbackCtx);
    intxmlSecGCryptAppKeyCertLoad          (xmlSecKeyPtr key,
                                                             const char *filename,
                                                             xmlSecKeyDataFormat format);
    intxmlSecGCryptAppKeyCertLoadMemory    (xmlSecKeyPtr key,
                                                             const xmlSecByte *data,
                                                             xmlSecSize dataSize,
                                                             xmlSecKeyDataFormat format);
    void*               xmlSecGCryptAppGetDefaultPwdCallback
                                                            (void);

## Description

Application functions implementation for GCrypt.

## Details

### xmlSecGCryptAppInit ()

    int                 xmlSecGCryptAppInit                 (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 GCrypt configuration (unused).
Returns : | 0 on success or a negative value otherwise.

### xmlSecGCryptAppShutdown ()

    int                 xmlSecGCryptAppShutdown             (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.

### xmlSecGCryptAppDefaultKeysMngrInit ()

    int                 xmlSecGCryptAppDefaultKeysMngrInit  (xmlSecKeysMngrPtr mngr);

Initializes `mngr` with simple keys store xmlSecSimpleKeysStoreId and a default GCrypt crypto key data stores.

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

### xmlSecGCryptAppDefaultKeysMngrAdoptKey ()

    int                 xmlSecGCryptAppDefaultKeysMngrAdoptKey
                                                            (xmlSecKeysMngrPtr mngr,
                                                             xmlSecKeyPtr key);

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

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

### xmlSecGCryptAppDefaultKeysMngrLoad ()

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

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

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

### xmlSecGCryptAppDefaultKeysMngrSave ()

    int                 xmlSecGCryptAppDefaultKeysMngrSave  (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.

### xmlSecGCryptAppKeysMngrCertLoad ()

    int                 xmlSecGCryptAppKeysMngrCertLoad     (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` (not implemented yet).

`mngr` : | the keys manager.
`filename` : | the certificate file.
`format` : | the certificate file format.
`type` : | the flag that indicates is the certificate in `filename` trusted or not.
Returns : | 0 on success or a negative value otherwise.

### xmlSecGCryptAppKeysMngrCertLoadMemory ()

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

Reads cert from binary buffer `data` and adds to the list of trusted or known untrusted certs in `store` (not implemented yet).

`mngr` : | the keys manager.
`data` : | the certificate binary data.
`dataSize` : | the certificate binary data size.
`format` : | the certificate file format.
`type` : | the flag that indicates is the certificate trusted or not.
Returns : | 0 on success or a negative value otherwise.

### xmlSecGCryptAppKeyLoad ()

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

Reads key from the 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.

### xmlSecGCryptAppKeyLoadMemory ()

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

Reads key from the memory buffer.

`data` : | the binary key data.
`dataSize` : | the size of binary key.
`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.

### xmlSecGCryptAppPkcs12Load ()

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

Reads key and all associated certificates from the PKCS12 file (not implemented yet). For uniformity, call xmlSecGCryptAppKeyLoad 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.

### xmlSecGCryptAppPkcs12LoadMemory ()

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

Reads key and all associated certificates from the PKCS12 data in memory buffer. For uniformity, call xmlSecGCryptAppKeyLoadMemory instead of this function. Pass in format=xmlSecKeyDataFormatPkcs12 (not implemented yet).

`data` : | the PKCS12 binary data.
`dataSize` : | the PKCS12 binary data size.
`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.

### xmlSecGCryptAppKeyCertLoad ()

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

Reads the certificate from $`filename` and adds it to key (not implemented yet).

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

### xmlSecGCryptAppKeyCertLoadMemory ()

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

Reads the certificate from memory buffer and adds it to key (not implemented yet).

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

### xmlSecGCryptAppGetDefaultPwdCallback ()

    void*               xmlSecGCryptAppGetDefaultPwdCallback
                                                            (void);

Gets default password callback.

Returns : | default password callback.