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,
                                             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;
    time_t				notValidBefore;
    time_t				notValidAfter;    
};

The key.

xmlChar *name

the key name.

xmlSecKeyDataPtr value

the key value.

xmlSecPtrListPtr dataList

the key data list.

xmlSecKeyUsage usage

the key usage.

time_t notValidBefore

the start key validity interval.

time_t notValidAfter

the end key validity interval.


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.



Aleksey Sanin