keysdata

keysdata — Crypto key data object functions.

Stability Level

Stable, unless otherwise indicated

Functions

xmlSecPtrListPtr xmlSecKeyDataIdsGet ()
xmlSecPtrListPtr xmlSecKeyDataIdsGetEnabled ()
int xmlSecKeyDataIdsInit ()
void xmlSecKeyDataIdsShutdown ()
int xmlSecKeyDataIdsRegisterDefault ()
int xmlSecKeyDataIdsRegister ()
int xmlSecKeyDataIdsRegisterDisabled ()
xmlSecKeyDataPtr xmlSecKeyDataCreate ()
xmlSecKeyDataPtr xmlSecKeyDataDuplicate ()
void xmlSecKeyDataDestroy ()
int xmlSecKeyDataGenerate ()
xmlSecKeyDataType xmlSecKeyDataGetType ()
xmlSecSize xmlSecKeyDataGetSize ()
const xmlChar * xmlSecKeyDataGetIdentifier ()
void xmlSecKeyDataDebugDump ()
void xmlSecKeyDataDebugXmlDump ()
int xmlSecKeyDataXmlRead ()
int xmlSecKeyDataXmlWrite ()
int xmlSecKeyDataBinRead ()
int xmlSecKeyDataBinWrite ()
#define xmlSecKeyDataGetName()
#define xmlSecKeyDataIsValid()
#define xmlSecKeyDataCheckId()
#define xmlSecKeyDataCheckUsage()
#define xmlSecKeyDataCheckSize()
int (*xmlSecKeyDataInitMethod) ()
int (*xmlSecKeyDataDuplicateMethod) ()
void (*xmlSecKeyDataFinalizeMethod) ()
int (*xmlSecKeyDataXmlReadMethod) ()
int (*xmlSecKeyDataXmlWriteMethod) ()
int (*xmlSecKeyDataBinReadMethod) ()
int (*xmlSecKeyDataBinWriteMethod) ()
int (*xmlSecKeyDataGenerateMethod) ()
xmlSecKeyDataType (*xmlSecKeyDataGetTypeMethod) ()
xmlSecSize (*xmlSecKeyDataGetSizeMethod) ()
const xmlChar * (*xmlSecKeyDataGetIdentifierMethod) ()
void (*xmlSecKeyDataDebugDumpMethod) ()
#define xmlSecKeyDataKlassGetName()
xmlSecSize xmlSecKeyDataBinaryValueGetSize ()
xmlSecBufferPtr xmlSecKeyDataBinaryValueGetBuffer ()
int xmlSecKeyDataBinaryValueSetBuffer ()
xmlSecPtrListId xmlSecKeyDataListGetKlass ()
xmlSecPtrListId xmlSecKeyDataIdListGetKlass ()
int xmlSecKeyDataIdListFind ()
xmlSecKeyDataId xmlSecKeyDataIdListFindByNode ()
xmlSecKeyDataId xmlSecKeyDataIdListFindByHref ()
xmlSecKeyDataId xmlSecKeyDataIdListFindByName ()
void xmlSecKeyDataIdListDebugDump ()
void xmlSecKeyDataIdListDebugXmlDump ()
xmlSecKeyDataStorePtr xmlSecKeyDataStoreCreate ()
void xmlSecKeyDataStoreDestroy ()
#define xmlSecKeyDataStoreGetName()
#define xmlSecKeyDataStoreIsValid()
#define xmlSecKeyDataStoreCheckId()
#define xmlSecKeyDataStoreCheckSize()
int (*xmlSecKeyDataStoreInitializeMethod) ()
void (*xmlSecKeyDataStoreFinalizeMethod) ()
#define xmlSecKeyDataStoreKlassGetName()
xmlSecPtrListId xmlSecKeyDataStorePtrListGetKlass ()
void xmlSecImportSetPersistKey ()
int xmlSecImportGetPersistKey ()

Types and Values

Description

Functions

xmlSecKeyDataIdsGet ()

xmlSecPtrListPtr
xmlSecKeyDataIdsGet (void);

Gets global registered key data klasses list.

Returns

the pointer to list of all registered key data klasses.


xmlSecKeyDataIdsGetEnabled ()

xmlSecPtrListPtr
xmlSecKeyDataIdsGetEnabled (void);

Gets global enabled key data klasses list.

Returns

the pointer to list of all enabled key data klasses.


xmlSecKeyDataIdsInit ()

int
xmlSecKeyDataIdsInit (void);

Initializes the key data klasses. This function is called from the xmlSecInit function and the application should not call it directly.

Returns

0 on success or a negative value if an error occurs.


xmlSecKeyDataIdsShutdown ()

void
xmlSecKeyDataIdsShutdown (void);

Shuts down the keys data klasses. This function is called from the xmlSecShutdown function and the application should not call it directly.


xmlSecKeyDataIdsRegisterDefault ()

int
xmlSecKeyDataIdsRegisterDefault (void);

Registers default (implemented by XML Security Library) key data klasses: <dsig:KeyName/> element processing klass, <dsig:KeyValue/> element processing klass, ...

Returns

0 on success or a negative value if an error occurs.


xmlSecKeyDataIdsRegister ()

int
xmlSecKeyDataIdsRegister (xmlSecKeyDataId id);

Registers id in the global list of key data klasses and enable this key data.

Parameters

id

the key data klass.

 

Returns

0 on success or a negative value if an error occurs.


xmlSecKeyDataIdsRegisterDisabled ()

int
xmlSecKeyDataIdsRegisterDisabled (xmlSecKeyDataId id);

Registers id in the global list of key data klasses and but DO NOT enable this key data.

Parameters

id

the key data klass.

 

Returns

0 on success or a negative value if an error occurs.


xmlSecKeyDataCreate ()

xmlSecKeyDataPtr
xmlSecKeyDataCreate (xmlSecKeyDataId id);

Allocates and initializes new key data of the specified type id . Caller is responsible for destroying returned object with xmlSecKeyDataDestroy function.

Parameters

id

the data id.

 

Returns

the pointer to newly allocated key data structure or NULL if an error occurs.


xmlSecKeyDataDuplicate ()

xmlSecKeyDataPtr
xmlSecKeyDataDuplicate (xmlSecKeyDataPtr data);

Creates a duplicate of the given data . Caller is responsible for destroying returned object with xmlSecKeyDataDestroy function.

Parameters

data

the pointer to the key data.

 

Returns

the pointer to newly allocated key data structure or NULL if an error occurs.


xmlSecKeyDataDestroy ()

void
xmlSecKeyDataDestroy (xmlSecKeyDataPtr data);

Destroys the data and frees all allocated memory.

Parameters

data

the pointer to the key data.

 

xmlSecKeyDataGenerate ()

int
xmlSecKeyDataGenerate (xmlSecKeyDataPtr data,
                       xmlSecSize sizeBits,
                       xmlSecKeyDataType type);

Generates new key data of given size and type.

Parameters

data

the pointer to key data.

 

sizeBits

the desired key data size (in bits).

 

type

the desired key data type.

 

Returns

0 on success or a negative value otherwise.


xmlSecKeyDataGetType ()

xmlSecKeyDataType
xmlSecKeyDataGetType (xmlSecKeyDataPtr data);

Gets key data type.

Parameters

data

the pointer to key data.

 

Returns

key data type.


xmlSecKeyDataGetSize ()

xmlSecSize
xmlSecKeyDataGetSize (xmlSecKeyDataPtr data);

Gets key data size.

Parameters

data

the pointer to key data.

 

Returns

key data size (in bits).


xmlSecKeyDataGetIdentifier ()

const xmlChar *
xmlSecKeyDataGetIdentifier (xmlSecKeyDataPtr data);

Gets key data identifier string.

Parameters

data

the pointer to key data.

 

Returns

key data id string.


xmlSecKeyDataDebugDump ()

void
xmlSecKeyDataDebugDump (xmlSecKeyDataPtr data,
                        FILE *output);

Prints key data debug info.

Parameters

data

the pointer to key data.

 

output

the pointer to output FILE.

 

xmlSecKeyDataDebugXmlDump ()

void
xmlSecKeyDataDebugXmlDump (xmlSecKeyDataPtr data,
                           FILE *output);

Prints key data debug info in XML format.

Parameters

data

the pointer to key data.

 

output

the pointer to output FILE.

 

xmlSecKeyDataXmlRead ()

int
xmlSecKeyDataXmlRead (xmlSecKeyDataId id,
                      xmlSecKeyPtr key,
                      xmlNodePtr node,
                      xmlSecKeyInfoCtxPtr keyInfoCtx);

Reads the key data of klass id from XML node and adds them to key .

Parameters

id

the data klass.

 

key

the destination key.

 

node

the pointer to an XML node.

 

keyInfoCtx

the pointer to <dsig:KeyInfo/> element processing context.

 

Returns

0 on success or a negative value otherwise.


xmlSecKeyDataXmlWrite ()

int
xmlSecKeyDataXmlWrite (xmlSecKeyDataId id,
                       xmlSecKeyPtr key,
                       xmlNodePtr node,
                       xmlSecKeyInfoCtxPtr keyInfoCtx);

Writes the key data of klass id from key to an XML node .

Parameters

id

the data klass.

 

key

the source key.

 

node

the pointer to an XML node.

 

keyInfoCtx

the pointer to <dsig:KeyInfo/> element processing context.

 

Returns

0 on success or a negative value otherwise.


xmlSecKeyDataBinRead ()

int
xmlSecKeyDataBinRead (xmlSecKeyDataId id,
                      xmlSecKeyPtr key,
                      const xmlSecByte *buf,
                      xmlSecSize bufSize,
                      xmlSecKeyInfoCtxPtr keyInfoCtx);

Reads the key data of klass id from binary buffer buf to key .

Parameters

id

the data klass.

 

key

the destination key.

 

buf

the input binary buffer.

 

bufSize

the input buffer size.

 

keyInfoCtx

the <dsig:KeyInfo/> node processing context.

 

Returns

0 on success or a negative value if an error occurs.


xmlSecKeyDataBinWrite ()

int
xmlSecKeyDataBinWrite (xmlSecKeyDataId id,
                       xmlSecKeyPtr key,
                       xmlSecByte **buf,
                       xmlSecSize *bufSize,
                       xmlSecKeyInfoCtxPtr keyInfoCtx);

Writes the key data of klass id from the key to a binary buffer buf .

Parameters

id

the data klass.

 

key

the source key.

 

buf

the output binary buffer.

 

bufSize

the output buffer size.

 

keyInfoCtx

the <dsig:KeyInfo/> node processing context.

 

Returns

0 on success or a negative value if an error occurs.


xmlSecKeyDataGetName()

#define             xmlSecKeyDataGetName(data)

Macro. Returns the key data name.

Parameters

data

the pointer to key data.

 

xmlSecKeyDataIsValid()

#define             xmlSecKeyDataIsValid(data)

Macro. Returns 1 if data is not NULL and data->id is not NULL or 0 otherwise.

Parameters

data

the pointer to data.

 

xmlSecKeyDataCheckId()

#define             xmlSecKeyDataCheckId(data, dataId)

Macro. Returns 1 if data is valid and data 's id is equal to dataId .

Parameters

data

the pointer to data.

 

dataId

the data Id.

 

xmlSecKeyDataCheckUsage()

#define             xmlSecKeyDataCheckUsage(data, usg)

Macro. Returns 1 if data is valid and could be used for usg .

Parameters

data

the pointer to data.

 

usg

the data usage.

 

xmlSecKeyDataCheckSize()

#define             xmlSecKeyDataCheckSize(data, size)

Macro. Returns 1 if data is valid and data 's object has at least size bytes.

Parameters

data

the pointer to data.

 

size

the expected size.

 

xmlSecKeyDataInitMethod ()

int
(*xmlSecKeyDataInitMethod) (xmlSecKeyDataPtr data);

Key data specific initialization method.

Parameters

data

the pointer to key data.

 

Returns

0 on success or a negative value if an error occurs.


xmlSecKeyDataDuplicateMethod ()

int
(*xmlSecKeyDataDuplicateMethod) (xmlSecKeyDataPtr dst,
                                 xmlSecKeyDataPtr src);

Key data specific duplication (copy) method.

Parameters

dst

the pointer to destination key data.

 

src

the pointer to source key data.

 

Returns

0 on success or a negative value if an error occurs.


xmlSecKeyDataFinalizeMethod ()

void
(*xmlSecKeyDataFinalizeMethod) (xmlSecKeyDataPtr data);

Key data specific finalization method. All the objects and resources allocated by the key data object must be freed inside this method.

Parameters

data

the data.

 

xmlSecKeyDataXmlReadMethod ()

int
(*xmlSecKeyDataXmlReadMethod) (xmlSecKeyDataId id,
                               xmlSecKeyPtr key,
                               xmlNodePtr node,
                               xmlSecKeyInfoCtxPtr keyInfoCtx);

Key data specific method for reading XML node.

Parameters

id

the data id.

 

key

the key.

 

node

the pointer to data's value XML node.

 

keyInfoCtx

the <dsig:KeyInfo/> node processing context.

 

Returns

0 on success or a negative value if an error occurs.


xmlSecKeyDataXmlWriteMethod ()

int
(*xmlSecKeyDataXmlWriteMethod) (xmlSecKeyDataId id,
                                xmlSecKeyPtr key,
                                xmlNodePtr node,
                                xmlSecKeyInfoCtxPtr keyInfoCtx);

Key data specific method for writing XML node.

Parameters

id

the data id.

 

key

the key.

 

node

the pointer to data's value XML node.

 

keyInfoCtx

the <dsig:KeyInfo/> node processing context.

 

Returns

0 on success or a negative value if an error occurs.


xmlSecKeyDataBinReadMethod ()

int
(*xmlSecKeyDataBinReadMethod) (xmlSecKeyDataId id,
                               xmlSecKeyPtr key,
                               const xmlSecByte *buf,
                               xmlSecSize bufSize,
                               xmlSecKeyInfoCtxPtr keyInfoCtx);

Key data specific method for reading binary buffer.

Parameters

id

the data id.

 

key

the key.

 

buf

the input buffer.

 

bufSize

the buffer size.

 

keyInfoCtx

the <dsig:KeyInfo/> node processing context.

 

Returns

0 on success or a negative value if an error occurs.


xmlSecKeyDataBinWriteMethod ()

int
(*xmlSecKeyDataBinWriteMethod) (xmlSecKeyDataId id,
                                xmlSecKeyPtr key,
                                xmlSecByte **buf,
                                xmlSecSize *bufSize,
                                xmlSecKeyInfoCtxPtr keyInfoCtx);

Key data specific method for reading binary buffer.

Parameters

id

the data id.

 

key

the key.

 

buf

the output buffer.

 

bufSize

the buffer size.

 

keyInfoCtx

the <dsig:KeyInfo/> node processing context.

 

Returns

0 on success or a negative value if an error occurs.


xmlSecKeyDataGenerateMethod ()

int
(*xmlSecKeyDataGenerateMethod) (xmlSecKeyDataPtr data,
                                xmlSecSize sizeBits,
                                xmlSecKeyDataType type);

Key data specific method for generating new key data.

Parameters

data

the pointer to key data.

 

sizeBits

the key data specific size.

 

type

the required key type (session/permanent, etc.)

 

Returns

0 on success or a negative value if an error occurs.


xmlSecKeyDataGetTypeMethod ()

xmlSecKeyDataType
(*xmlSecKeyDataGetTypeMethod) (xmlSecKeyDataPtr data);

Key data specific method to get the key type.

Parameters

data

the data.

 

Returns

the key type.


xmlSecKeyDataGetSizeMethod ()

xmlSecSize
(*xmlSecKeyDataGetSizeMethod) (xmlSecKeyDataPtr data);

Key data specific method to get the key size.

Parameters

data

the pointer to key data.

 

Returns

the key size in bits.


xmlSecKeyDataGetIdentifierMethod ()

const xmlChar *
(*xmlSecKeyDataGetIdentifierMethod) (xmlSecKeyDataPtr data);

Key data specific method to get the key data identifier string (for example, X509 data identifier is the subject of the verified cert).

Parameters

data

the pointer to key data.

 

Returns

the identifier string or NULL if an error occurs.


xmlSecKeyDataDebugDumpMethod ()

void
(*xmlSecKeyDataDebugDumpMethod) (xmlSecKeyDataPtr data,
                                 FILE *output);

Key data specific method for printing debug info.

Parameters

data

the data.

 

output

the FILE to print debug info (should be open for writing).

 

xmlSecKeyDataKlassGetName()

#define             xmlSecKeyDataKlassGetName(klass)

Macro. Returns data klass name.

Parameters

klass

the data klass.

 

xmlSecKeyDataBinaryValueGetSize ()

xmlSecSize
xmlSecKeyDataBinaryValueGetSize (xmlSecKeyDataPtr data);

Gets the binary key data size.

Parameters

data

the pointer to binary key data.

 

Returns

binary key data size in bits.


xmlSecKeyDataBinaryValueGetBuffer ()

xmlSecBufferPtr
xmlSecKeyDataBinaryValueGetBuffer (xmlSecKeyDataPtr data);

Gets the binary key data buffer.

Parameters

data

the pointer to binary key data.

 

Returns

pointer to binary key data buffer.


xmlSecKeyDataBinaryValueSetBuffer ()

int
xmlSecKeyDataBinaryValueSetBuffer (xmlSecKeyDataPtr data,
                                   const xmlSecByte *buf,
                                   xmlSecSize bufSize);

Sets the value of data to buf .

Parameters

data

the pointer to binary key data.

 

buf

the pointer to binary buffer.

 

bufSize

the binary buffer size.

 

Returns

0 on success or a negative value otherwise.


xmlSecKeyDataListGetKlass ()

xmlSecPtrListId
xmlSecKeyDataListGetKlass (void);

The key data list klass.

Returns

pointer to the key data list klass.


xmlSecKeyDataIdListGetKlass ()

xmlSecPtrListId
xmlSecKeyDataIdListGetKlass (void);

The key data id list klass.

Returns

pointer to the key data id list klass.


xmlSecKeyDataIdListFind ()

int
xmlSecKeyDataIdListFind (xmlSecPtrListPtr list,
                         xmlSecKeyDataId dataId);

Lookups dataId in list .

Parameters

list

the pointer to key data ids list.

 

dataId

the key data klass.

 

Returns

1 if dataId is found in the list , 0 if not and a negative value if an error occurs.


xmlSecKeyDataIdListFindByNode ()

xmlSecKeyDataId
xmlSecKeyDataIdListFindByNode (xmlSecPtrListPtr list,
                               const xmlChar *nodeName,
                               const xmlChar *nodeNs,
                               xmlSecKeyDataUsage usage);

Lookups data klass in the list with given nodeName , nodeNs and usage in the list .

Parameters

list

the pointer to key data ids list.

 

nodeName

the desired key data klass XML node name.

 

nodeNs

the desired key data klass XML node namespace.

 

usage

the desired key data usage.

 

Returns

key data klass is found and NULL otherwise.


xmlSecKeyDataIdListFindByHref ()

xmlSecKeyDataId
xmlSecKeyDataIdListFindByHref (xmlSecPtrListPtr list,
                               const xmlChar *href,
                               xmlSecKeyDataUsage usage);

Lookups data klass in the list with given href and usage in list .

Parameters

list

the pointer to key data ids list.

 

href

the desired key data klass href.

 

usage

the desired key data usage.

 

Returns

key data klass is found and NULL otherwise.


xmlSecKeyDataIdListFindByName ()

xmlSecKeyDataId
xmlSecKeyDataIdListFindByName (xmlSecPtrListPtr list,
                               const xmlChar *name,
                               xmlSecKeyDataUsage usage);

Lookups data klass in the list with given name and usage in list .

Parameters

list

the pointer to key data ids list.

 

name

the desired key data klass name.

 

usage

the desired key data usage.

 

Returns

key data klass is found and NULL otherwise.


xmlSecKeyDataIdListDebugDump ()

void
xmlSecKeyDataIdListDebugDump (xmlSecPtrListPtr list,
                              FILE *output);

Prints binary key data debug information to output .

Parameters

list

the pointer to key data ids list.

 

output

the pointer to output FILE.

 

xmlSecKeyDataIdListDebugXmlDump ()

void
xmlSecKeyDataIdListDebugXmlDump (xmlSecPtrListPtr list,
                                 FILE *output);

Prints binary key data debug information to output in XML format.

Parameters

list

the pointer to key data ids list.

 

output

the pointer to output FILE.

 

xmlSecKeyDataStoreCreate ()

xmlSecKeyDataStorePtr
xmlSecKeyDataStoreCreate (xmlSecKeyDataStoreId id);

Creates new key data store of the specified klass id . Caller is responsible for freeing returned object with xmlSecKeyDataStoreDestroy function.

Parameters

id

the store id.

 

Returns

the pointer to newly allocated key data store structure or NULL if an error occurs.


xmlSecKeyDataStoreDestroy ()

void
xmlSecKeyDataStoreDestroy (xmlSecKeyDataStorePtr store);

Destroys the key data store created with xmlSecKeyDataStoreCreate function.

Parameters

store

the pointer to the key data store..

 

xmlSecKeyDataStoreGetName()

#define             xmlSecKeyDataStoreGetName(store)

Macro. Returns key data store name.

Parameters

store

the pointer to store.

 

xmlSecKeyDataStoreIsValid()

#define             xmlSecKeyDataStoreIsValid(store)

Macro. Returns 1 if store is not NULL and store->id is not NULL or 0 otherwise.

Parameters

store

the pointer to store.

 

xmlSecKeyDataStoreCheckId()

#define             xmlSecKeyDataStoreCheckId(store, storeId)

Macro. Returns 1 if store is valid and store 's id is equal to storeId .

Parameters

store

the pointer to store.

 

storeId

the store Id.

 

xmlSecKeyDataStoreCheckSize()

#define             xmlSecKeyDataStoreCheckSize(store, size)

Macro. Returns 1 if data is valid and stores 's object has at least size bytes.

Parameters

store

the pointer to store.

 

size

the expected size.

 

xmlSecKeyDataStoreInitializeMethod ()

int
(*xmlSecKeyDataStoreInitializeMethod) (xmlSecKeyDataStorePtr store);

Key data store specific initialization method.

Parameters

store

the data store.

 

Returns

0 on success or a negative value if an error occurs.


xmlSecKeyDataStoreFinalizeMethod ()

void
(*xmlSecKeyDataStoreFinalizeMethod) (xmlSecKeyDataStorePtr store);

Key data store specific finalization (destroy) method.

Parameters

store

the data store.

 

xmlSecKeyDataStoreKlassGetName()

#define             xmlSecKeyDataStoreKlassGetName(klass)

Macro. Returns store klass name.

Parameters

klass

the pointer to store klass.

 

xmlSecKeyDataStorePtrListGetKlass ()

xmlSecPtrListId
xmlSecKeyDataStorePtrListGetKlass (void);

Key data stores list.

Returns

key data stores list klass.


xmlSecImportSetPersistKey ()

void
xmlSecImportSetPersistKey (void);

Sets global flag to import keys to persistent storage (MSCrypto and MSCNG). Also see PKCS12_NO_PERSIST_KEY.


xmlSecImportGetPersistKey ()

int
xmlSecImportGetPersistKey (void);

Gets global flag to import keys to persistent storage (MSCrypto and MSCNG). Also see PKCS12_NO_PERSIST_KEY.

Returns

1 if keys should be imported into persistent storage and 0 otherwise.

Types and Values

xmlSecKeyDataUsage

typedef unsigned int                                    xmlSecKeyDataUsage;

The bits mask that determines possible keys data usage.


xmlSecKeyDataUsageUnknown

#define xmlSecKeyDataUsageUnknown                       0x00000

The key data usage is unknown.


xmlSecKeyDataUsageKeyInfoNodeRead

#define xmlSecKeyDataUsageKeyInfoNodeRead               0x00001

The key data could be read from a <dsig:KeyInfo/> child.


xmlSecKeyDataUsageKeyInfoNodeWrite

#define xmlSecKeyDataUsageKeyInfoNodeWrite              0x00002

The key data could be written to a <dsig:KeyInfo /> child.


xmlSecKeyDataUsageKeyValueNodeRead

#define xmlSecKeyDataUsageKeyValueNodeRead              0x00004

The key data could be read from a <dsig:KeyValue /> child.


xmlSecKeyDataUsageKeyValueNodeWrite

#define xmlSecKeyDataUsageKeyValueNodeWrite             0x00008

The key data could be written to a <dsig:KeyValue /> child.


xmlSecKeyDataUsageRetrievalMethodNodeXml

#define xmlSecKeyDataUsageRetrievalMethodNodeXml        0x00010

The key data could be retrieved using <dsig:RetrievalMethod /> node in XML format.


xmlSecKeyDataUsageRetrievalMethodNodeBin

#define xmlSecKeyDataUsageRetrievalMethodNodeBin        0x00020

The key data could be retrieved using <dsig:RetrievalMethod /> node in binary format.


xmlSecKeyDataUsageReadFromFile

#define xmlSecKeyDataUsageReadFromFile                   0x00040

The key data could be read from a file.


xmlSecKeyDataUsageAny

#define xmlSecKeyDataUsageAny                            0xFFFFF

Any key data usage.


xmlSecKeyDataUsageKeyInfoNode

#define             xmlSecKeyDataUsageKeyInfoNode

The key data could be read and written from/to a <dsig:KeyInfo /> child.


xmlSecKeyDataUsageKeyValueNode

#define             xmlSecKeyDataUsageKeyValueNode

The key data could be read and written from/to a <dsig:KeyValue /> child.


xmlSecKeyDataUsageRetrievalMethodNode

#define             xmlSecKeyDataUsageRetrievalMethodNode

The key data could be retrieved using <dsig:RetrievalMethod /> node in any format.


xmlSecKeyDataType

typedef unsigned int                            xmlSecKeyDataType;

The key data type (public/private, session/permanent, etc.).


xmlSecKeyDataTypeUnknown

#define xmlSecKeyDataTypeUnknown                        0x0000

The key data type is unknown (same as xmlSecKeyDataTypeNone).


xmlSecKeyDataTypeNone

#define xmlSecKeyDataTypeNone                           xmlSecKeyDataTypeUnknown

The key data type is unknown (same as xmlSecKeyDataTypeUnknown).


xmlSecKeyDataTypePublic

#define xmlSecKeyDataTypePublic                         0x0001

The key data contain a public key.


xmlSecKeyDataTypePrivate

#define xmlSecKeyDataTypePrivate                        0x0002

The key data contain a private key.


xmlSecKeyDataTypeSymmetric

#define xmlSecKeyDataTypeSymmetric                      0x0004

The key data contain a symmetric key.


xmlSecKeyDataTypeSession

#define xmlSecKeyDataTypeSession                        0x0008

The key data contain session key (one time key, not stored in keys manager).


xmlSecKeyDataTypePermanent

#define xmlSecKeyDataTypePermanent                      0x0010

The key data contain permanent key (stored in keys manager).


xmlSecKeyDataTypeTrusted

#define xmlSecKeyDataTypeTrusted                        0x0100

The key data is trusted.


xmlSecKeyDataTypeAny

#define xmlSecKeyDataTypeAny                            0xFFFF

Any key data.


enum xmlSecKeyDataFormat

The key data format (binary, der, pem, etc.).

Members

xmlSecKeyDataFormatUnknown

the key data format is unknown.

 

xmlSecKeyDataFormatBinary

the binary key data.

 

xmlSecKeyDataFormatPem

the PEM key data (cert or public/private key).

 

xmlSecKeyDataFormatDer

the DER key data (cert or public/private key).

 

xmlSecKeyDataFormatPkcs8Pem

the PKCS8 PEM private key.

 

xmlSecKeyDataFormatPkcs8Der

the PKCS8 DER private key.

 

xmlSecKeyDataFormatPkcs12

the PKCS12 format (bag of keys and certs)

 

xmlSecKeyDataFormatCertPem

the PEM cert.

 

xmlSecKeyDataFormatCertDer

the DER cert.

 

xmlSecKeyDataFormatEngine

the crypto engine (e.g. OpenSSL ENGINE).

 

xmlSecKeyDataFormatStore

the crypto store (e.g. OpenSSL ossl_store).

 

struct xmlSecKeyData

struct xmlSecKeyData {
    xmlSecKeyDataId                     id;
    void*                               reserved0;
    void*                               reserved1;
};

The key data: key value (crypto material), x509 data, pgp data, etc.

Members

xmlSecKeyDataId id;

the data id (xmlSecKeyDataId).

 

void *reserved0;

reserved for the future.

 

void *reserved1;

reserved for the future.

 

xmlSecKeyDataIdUnknown

#define xmlSecKeyDataIdUnknown                  ((xmlSecKeyDataId)NULL)

The "unknown" id.


struct xmlSecKeyDataKlass

struct xmlSecKeyDataKlass {
    xmlSecSize                          klassSize;
    xmlSecSize                          objSize;

    /* data */
    const xmlChar*                      name;
    xmlSecKeyDataUsage                  usage;
    const xmlChar*                      href;
    const xmlChar*                      dataNodeName;
    const xmlChar*                      dataNodeNs;

    /* constructors/destructor */
    xmlSecKeyDataInitMethod             initialize;
    xmlSecKeyDataDuplicateMethod        duplicate;
    xmlSecKeyDataFinalizeMethod         finalize;
    xmlSecKeyDataGenerateMethod         generate;

    /* get info */
    xmlSecKeyDataGetTypeMethod          getType;
    xmlSecKeyDataGetSizeMethod          getSize;
    xmlSecKeyDataGetIdentifierMethod    getIdentifier;

    /* read/write */
    xmlSecKeyDataXmlReadMethod          xmlRead;
    xmlSecKeyDataXmlWriteMethod         xmlWrite;
    xmlSecKeyDataBinReadMethod          binRead;
    xmlSecKeyDataBinWriteMethod         binWrite;

    /* debug */
    xmlSecKeyDataDebugDumpMethod        debugDump;
    xmlSecKeyDataDebugDumpMethod        debugXmlDump;

    /* for the future */
    void*                               reserved0;
    void*                               reserved1;
};

The data id (klass).

Members

xmlSecSize klassSize;

the klass size.

 

xmlSecSize objSize;

the object size.

 

const xmlChar *name;

the object name.

 

xmlSecKeyDataUsage usage;

the allowed data usage.

 

const xmlChar *href;

the identification string (href).

 

const xmlChar *dataNodeName;

the data's XML node name.

 

const xmlChar *dataNodeNs;

the data's XML node namespace.

 

xmlSecKeyDataInitMethod initialize;

the initialization method.

 

xmlSecKeyDataDuplicateMethod duplicate;

the duplicate (copy) method.

 

xmlSecKeyDataFinalizeMethod finalize;

the finalization (destroy) method.

 

xmlSecKeyDataGenerateMethod generate;

the new data generation method.

 

xmlSecKeyDataGetTypeMethod getType;

the method to access data's type information.

 

xmlSecKeyDataGetSizeMethod getSize;

the method to access data's size.

 

xmlSecKeyDataGetIdentifierMethod getIdentifier;

the method to access data's string identifier.

 

xmlSecKeyDataXmlReadMethod xmlRead;

the method for reading data from XML node.

 

xmlSecKeyDataXmlWriteMethod xmlWrite;

the method for writing data to XML node.

 

xmlSecKeyDataBinReadMethod binRead;

the method for reading data from a binary buffer.

 

xmlSecKeyDataBinWriteMethod binWrite;

the method for writing data to binary buffer.

 

xmlSecKeyDataDebugDumpMethod debugDump;

the method for printing debug data information.

 

xmlSecKeyDataDebugDumpMethod debugXmlDump;

the method for printing debug data information in XML format.

 

void *reserved0;

reserved for the future.

 

void *reserved1;

reserved for the future.

 

xmlSecKeyDataListId

#define xmlSecKeyDataListId     xmlSecKeyDataListGetKlass()

The key data klasses list klass id.


xmlSecKeyDataIdListId

#define xmlSecKeyDataIdListId   xmlSecKeyDataIdListGetKlass()

The key data list klass id.


struct xmlSecKeyDataStore

struct xmlSecKeyDataStore {
    xmlSecKeyDataStoreId                id;

    /* for the future */
    void*                               reserved0;
    void*                               reserved1;
};

The key data store. Key data store holds common key data specific information required for key data processing. For example, X509 data store may hold information about trusted (root) certificates.

Members

xmlSecKeyDataStoreId id;

the store id (xmlSecKeyDataStoreId).

 

void *reserved0;

reserved for the future.

 

void *reserved1;

reserved for the future.

 

xmlSecKeyDataStoreIdUnknown

#define xmlSecKeyDataStoreIdUnknown                     NULL

The "unknown" id.


struct xmlSecKeyDataStoreKlass

struct xmlSecKeyDataStoreKlass {
    xmlSecSize                          klassSize;
    xmlSecSize                          objSize;

    /* data */
    const xmlChar*                      name;

    /* constructors/destructor */
    xmlSecKeyDataStoreInitializeMethod  initialize;
    xmlSecKeyDataStoreFinalizeMethod    finalize;

    /* for the future */
    void*                               reserved0;
    void*                               reserved1;
};

The data store id (klass).

Members

xmlSecSize klassSize;

the data store klass size.

 

xmlSecSize objSize;

the data store obj size.

 

const xmlChar *name;

the store's name.

 

xmlSecKeyDataStoreInitializeMethod initialize;

the store's initialization method.

 

xmlSecKeyDataStoreFinalizeMethod finalize;

the store's finalization (destroy) method.

 

void *reserved0;

reserved for the future.

 

void *reserved1;

reserved for the future.

 

xmlSecKeyDataStorePtrListId

#define xmlSecKeyDataStorePtrListId     xmlSecKeyDataStorePtrListGetKlass()

The data store list id (klass).