keys

Home Download News Documentation FAQ Tutorial API reference Examples XML Digital Signature Online Verifier XML Encryption XML Canonicalization Reporting Bugs Mailing list Related
XML Security Library Reference Manual
<<< Previous Page | Home | Up | Next Page >>>
# keys ## Name keys -- ## Synopsis
    typedef     xmlSecKeyUsage;
    #define     xmlSecKeyUsageSign
    #define     xmlSecKeyUsageVerify
    #define     xmlSecKeyUsageEncrypt
    #define     xmlSecKeyUsageDecrypt
    #define     xmlSecKeyUsageAny
    struct      xmlSecKeyReq;
    int         xmlSecKeyReqInitialize          (xmlSecKeyReqPtr keyReq);
    void        xmlSecKeyReqFinalize            (xmlSecKeyReqPtr keyReq);
    void        xmlSecKeyReqReset               (xmlSecKeyReqPtr keyReq);
    int         xmlSecKeyReqCopy                (xmlSecKeyReqPtr dst,
                                                 xmlSecKeyReqPtr src);
    int         xmlSecKeyReqMatchKey            (xmlSecKeyReqPtr keyReq,
                                                 xmlSecKeyPtr key);
    int         xmlSecKeyReqMatchKeyValue       (xmlSecKeyReqPtr keyReq,
                                                 xmlSecKeyDataPtr value);
    struct      xmlSecKey;
    xmlSecKeyPtr xmlSecKeyCreate                (void);
    void        xmlSecKeyDestroy                (xmlSecKeyPtr key);
    void        xmlSecKeyEmpty                  (xmlSecKeyPtr key);
    xmlSecKeyPtr xmlSecKeyDuplicate             (xmlSecKeyPtr key);
    int         xmlSecKeyCopy                   (xmlSecKeyPtr keyDst,
                                                 xmlSecKeyPtr keySrc);
    const xmlChar* xmlSecKeyGetName             (xmlSecKeyPtr key);
    int         xmlSecKeySetName                (xmlSecKeyPtr key,
                                                 const xmlChar *name);
    xmlSecKeyDataType xmlSecKeyGetType          (xmlSecKeyPtr key);
    xmlSecKeyDataPtr xmlSecKeyGetValue          (xmlSecKeyPtr key);
    int         xmlSecKeySetValue               (xmlSecKeyPtr key,
                                                 xmlSecKeyDataPtr value);
    xmlSecKeyDataPtr xmlSecKeyGetData           (xmlSecKeyPtr key,
                                                 xmlSecKeyDataId dataId);
    xmlSecKeyDataPtr xmlSecKeyEnsureData        (xmlSecKeyPtr key,
                                                 xmlSecKeyDataId dataId);
    int         xmlSecKeyAdoptData              (xmlSecKeyPtr key,
                                                 xmlSecKeyDataPtr data);
    void        xmlSecKeyDebugDump              (xmlSecKeyPtr key,
                                                 FILE *output);
    void        xmlSecKeyDebugXmlDump           (xmlSecKeyPtr key,
                                                 FILE *output);
    xmlSecKeyPtr xmlSecKeyGenerate              (xmlSecKeyDataId dataId,
                                                 xmlSecSize sizeBits,
                                                 xmlSecKeyDataType type);
    xmlSecKeyPtr xmlSecKeyGenerateByName        (const xmlChar *name,
                                                 xmlSecSize sizeBits,
                                                 xmlSecKeyDataType type);
    int         xmlSecKeyMatch                  (xmlSecKeyPtr key,
                                                 const xmlChar *name,
                                                 xmlSecKeyReqPtr keyReq);
    xmlSecKeyPtr xmlSecKeyReadBinaryFile        (xmlSecKeyDataId dataId,
                                                 const char *filename);
    #define     xmlSecKeyIsValid                (key)
    #define     xmlSecKeyCheckId                (key, keyId)
    #define     xmlSecKeyPtrListId
    xmlSecPtrListId xmlSecKeyPtrListGetKlass    (void);
## Description ## Details ### xmlSecKeyUsage
    typedef unsigned int 			xmlSecKeyUsage;
The key usage. ### xmlSecKeyUsageSign
    #define	xmlSecKeyUsageSign		0x0001
Key can be used in any way. ### xmlSecKeyUsageVerify
    #define	xmlSecKeyUsageVerify		0x0002
Key for signing. ### xmlSecKeyUsageEncrypt
    #define	xmlSecKeyUsageEncrypt		0x0004
Key for signature verification. ### xmlSecKeyUsageDecrypt
    #define	xmlSecKeyUsageDecrypt		0x0008
An encryption key. ### xmlSecKeyUsageAny
    #define	xmlSecKeyUsageAny		0xFFFF
A decryption key. ### struct xmlSecKeyReq
    struct xmlSecKeyReq {
        xmlSecKeyDataId			keyId;
        xmlSecKeyDataType			keyType;
        xmlSecKeyUsage			keyUsage;
        xmlSecSize				keyBitsSize;
    };
The key requirements information.
xmlSecKeyDataId `keyId` | the desired key value klass.
xmlSecKeyDataType `keyType` | the desired key type.
xmlSecKeyUsage `keyUsage` | the desired key usage.
xmlSecSize `keyBitsSize` | the desired key size (in bits!).
### xmlSecKeyReqInitialize ()
    int         xmlSecKeyReqInitialize          (xmlSecKeyReqPtr keyReq);
Initialize key requirements object. Caller is responsible for cleaning it with xmlSecKeyReqFinalize function.
`keyReq` : | the pointer to key requirements object.
Returns : | 0 on success or a negative value if an error occurs.
### xmlSecKeyReqFinalize ()
    void        xmlSecKeyReqFinalize            (xmlSecKeyReqPtr keyReq);
Cleans the key requirements object initialized with xmlSecKeyReqInitialize function.
`keyReq` : | the pointer to key requirements object.
### xmlSecKeyReqReset ()
    void        xmlSecKeyReqReset               (xmlSecKeyReqPtr keyReq);
Resets key requirements object for new key search.
`keyReq` : | the pointer to key requirements object.
### xmlSecKeyReqCopy ()
    int         xmlSecKeyReqCopy                (xmlSecKeyReqPtr dst,
                                                 xmlSecKeyReqPtr src);
Copies key requirements from `src` object to `dst` object.
`dst` : | the pointer to destination object.
`src` : | the pointer to source object.
Returns : | 0 on success and a negative value if an error occurs.
### xmlSecKeyReqMatchKey ()
    int         xmlSecKeyReqMatchKey            (xmlSecKeyReqPtr keyReq,
                                                 xmlSecKeyPtr key);
Checks whether `key` matches key requirements `keyReq`.
`keyReq` : | the pointer to key requirements object.
`key` : | the pointer to key.
Returns : | 1 if key matches requirements, 0 if not and a negative value if an error occurs.
### xmlSecKeyReqMatchKeyValue ()
    int         xmlSecKeyReqMatchKeyValue       (xmlSecKeyReqPtr keyReq,
                                                 xmlSecKeyDataPtr value);
Checks whether `keyValue` matches key requirements `keyReq`.
`keyReq` : | the pointer to key requirements.
`value` : | the pointer to key value.
Returns : | 1 if key value matches requirements, 0 if not and a negative value if an error occurs.
### struct xmlSecKey
    struct xmlSecKey {
        xmlChar*				name;
        xmlSecKeyDataPtr			value;
        xmlSecPtrListPtr			dataList;
        xmlSecKeyUsage			usage;

        /* for the future */
        void*				reserved0;
        void*				reserved1;
    };
The key.
xmlChar *`name` | the key name.
xmlSecKeyDataPtr `value` | the key value.
xmlSecPtrListPtr `dataList` | the key data list.
xmlSecKeyUsage `usage` | the key usage.
void *`reserved0` | reserved for future.
void *`reserved1` | reserved for future.
### xmlSecKeyCreate ()
    xmlSecKeyPtr xmlSecKeyCreate                (void);
Allocates and initializes new key. Caller is responsible for freeing returned object with xmlSecKeyDestroy function.
Returns : | the pointer to newly allocated `xmlSecKey` structure or NULL if an error occurs.
### xmlSecKeyDestroy ()
    void        xmlSecKeyDestroy                (xmlSecKeyPtr key);
Destroys the key created using xmlSecKeyCreate function.
`key` : | the pointer to key.
### xmlSecKeyEmpty ()
    void        xmlSecKeyEmpty                  (xmlSecKeyPtr key);
Clears the `key` data.
`key` : | the pointer to key.
### xmlSecKeyDuplicate ()
    xmlSecKeyPtr xmlSecKeyDuplicate             (xmlSecKeyPtr key);
Creates a duplicate of the given `key`.
`key` : | the pointer to the xmlSecKey structure.
Returns : | the pointer to newly allocated xmlSecKey structure or NULL if an error occurs.
### xmlSecKeyCopy ()
    int         xmlSecKeyCopy                   (xmlSecKeyPtr keyDst,
                                                 xmlSecKeyPtr keySrc);
Copies key data from `keySrc` to `keyDst`.
`keyDst` : | the destination key.
`keySrc` : | the source key.
Returns : | 0 on success or a negative value if an error occurs.
### xmlSecKeyGetName ()
    const xmlChar* xmlSecKeyGetName             (xmlSecKeyPtr key);
Gets key name (see also xmlSecKeySetName function).
`key` : | the pointer to key.
Returns : | key name.
### xmlSecKeySetName ()
    int         xmlSecKeySetName                (xmlSecKeyPtr key,
                                                 const xmlChar *name);
Sets key name (see also xmlSecKeyGetName function).
`key` : | the pointer to key.
`name` : | the new key name.
Returns : | 0 on success or a negative value if an error occurs.
### xmlSecKeyGetType ()
    xmlSecKeyDataType xmlSecKeyGetType          (xmlSecKeyPtr key);
Gets `key` type.
`key` : | the pointer to key.
Returns : | key type.
### xmlSecKeyGetValue ()
    xmlSecKeyDataPtr xmlSecKeyGetValue          (xmlSecKeyPtr key);
Gets key value (see also xmlSecKeySetValue function).
`key` : | the pointer to key.
Returns : | key value (crypto material).
### xmlSecKeySetValue ()
    int         xmlSecKeySetValue               (xmlSecKeyPtr key,
                                                 xmlSecKeyDataPtr value);
Sets key value (see also xmlSecKeyGetValue function).
`key` : | the pointer to key.
`value` : | the new value.
Returns : | 0 on success or a negative value if an error occurs.
### xmlSecKeyGetData ()
    xmlSecKeyDataPtr xmlSecKeyGetData           (xmlSecKeyPtr key,
                                                 xmlSecKeyDataId dataId);
Gets key's data.
`key` : | the pointer to key.
`dataId` : | the requested data klass.
Returns : | additional data associated with the `key` (see also xmlSecKeyAdoptData function).
### xmlSecKeyEnsureData ()
    xmlSecKeyDataPtr xmlSecKeyEnsureData        (xmlSecKeyPtr key,
                                                 xmlSecKeyDataId dataId);
If necessary, creates key data of `dataId` klass and adds to `key`.
`key` : | the pointer to key.
`dataId` : | the requested data klass.
Returns : | pointer to key data or NULL if an error occurs.
### xmlSecKeyAdoptData ()
    int         xmlSecKeyAdoptData              (xmlSecKeyPtr key,
                                                 xmlSecKeyDataPtr data);
Adds `data` to the `key`. The `data` object will be destroyed by `key`.
`key` : | the pointer to key.
`data` : | the pointer to key data.
Returns : | 0 on success or a negative value otherwise.
### xmlSecKeyDebugDump ()
    void        xmlSecKeyDebugDump              (xmlSecKeyPtr key,
                                                 FILE *output);
Prints the information about the `key` to the `output`.
`key` : | the pointer to key.
`output` : | the pointer to output FILE.
### xmlSecKeyDebugXmlDump ()
    void        xmlSecKeyDebugXmlDump           (xmlSecKeyPtr key,
                                                 FILE *output);
Prints the information about the `key` to the `output` in XML format.
`key` : | the pointer to key.
`output` : | the pointer to output FILE.
### xmlSecKeyGenerate ()
    xmlSecKeyPtr xmlSecKeyGenerate              (xmlSecKeyDataId dataId,
                                                 xmlSecSize sizeBits,
                                                 xmlSecKeyDataType type);
Generates new key of requested klass `dataId` and `type`.
`dataId` : | the requested key klass (rsa, dsa, aes, ...).
`sizeBits` : | the new key size (in bits!).
`type` : | the new key type (session, permanent, ...).
Returns : | pointer to newly created key or NULL if an error occurs.
### xmlSecKeyGenerateByName ()
    xmlSecKeyPtr xmlSecKeyGenerateByName        (const xmlChar *name,
                                                 xmlSecSize sizeBits,
                                                 xmlSecKeyDataType type);
Generates new key of requested `klass` and `type`.
`name` : | the requested key klass name (rsa, dsa, aes, ...).
`sizeBits` : | the new key size (in bits!).
`type` : | the new key type (session, permanent, ...).
Returns : | pointer to newly created key or NULL if an error occurs.
### xmlSecKeyMatch ()
    int         xmlSecKeyMatch                  (xmlSecKeyPtr key,
                                                 const xmlChar *name,
                                                 xmlSecKeyReqPtr keyReq);
Checks whether the `key` matches the given criteria.
`key` : | the pointer to key.
`name` : | the pointer to key name (may be NULL).
`keyReq` : | the pointer to key requirements.
Returns : | 1 if the key satisfies the given criteria or 0 otherwise.
### xmlSecKeyReadBinaryFile ()
    xmlSecKeyPtr xmlSecKeyReadBinaryFile        (xmlSecKeyDataId dataId,
                                                 const char *filename);
Reads the key value of klass `dataId` from a binary file `filename`.
`dataId` : | the key value data klass.
`filename` : | the key binary filename.
Returns : | pointer to newly created key or NULL if an error occurs.
### xmlSecKeyIsValid()
    #define     xmlSecKeyIsValid(key)
Macro. Returns 1 if `key` is not NULL and `key`->id is not NULL or 0 otherwise.
`key` : | the pointer to key.
### xmlSecKeyCheckId()
    #define     xmlSecKeyCheckId(key, keyId)
Macro. Returns 1 if `key` is valid and `key`'s id is equal to `keyId`.
`key` : | the pointer to key.
`keyId` : | the key Id.
### xmlSecKeyPtrListId
    #define xmlSecKeyPtrListId	xmlSecKeyPtrListGetKlass()
The keys list klass. ### xmlSecKeyPtrListGetKlass ()
    xmlSecPtrListId xmlSecKeyPtrListGetKlass    (void);
The keys list klass.
Returns : | keys list id.
<<< Previous Page | Home | Up | Next Page >>>
keysdata | keysmngr
Aleksey Sanin