XML Security Library

LibXML2
LibXSLT
OpenSSL

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,
                                             size_t sizeBits,
                                             xmlSecKeyDataType type);
xmlSecKeyPtr xmlSecKeyGenerateByName        (const xmlChar *name,
                                             size_t 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;
    size_t				keyBitsSize;
};

The key requirements information.

xmlSecKeyDataId keyId

the desired key value klass.

xmlSecKeyDataType keyType

the desired key type.

xmlSecKeyUsage keyUsage

the desired key usage.

size_t 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,
                                             size_t 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,
                                             size_t 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.



Aleksey Sanin