xmlsecurityengine/xmlsec/inc/xmlsec_app.h
changeset 0 e35f40988205
child 24 74f0b3eb154c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xmlsecurityengine/xmlsec/inc/xmlsec_app.h	Thu Dec 17 09:29:21 2009 +0200
@@ -0,0 +1,413 @@
+/** 
+ * XML Security Library (http://www.aleksey.com/xmlsec).
+ *
+ *
+ * This is free software; see Copyright file in the source
+ * distribution for preciese wording.
+ * 
+ * Copyright (C) 2002-2003 Aleksey Sanin <aleksey@aleksey.com>
+ * Portion Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. 
+ */
+#ifndef __XMLSEC_APP_H__
+#define __XMLSEC_APP_H__    
+#include "xmlsec_config.h"
+#ifndef XMLSEC_NO_CRYPTO_DYNAMIC_LOADING
+
+#if !defined(IN_XMLSEC) && !defined(XMLSEC_CRYPTO_DYNAMIC_LOADING)
+#error To use dynamic crypto engines loading define XMLSEC_CRYPTO_DYNAMIC_LOADING
+#endif /* !defined(IN_XMLSEC) && !defined(XMLSEC_CRYPTO_DYNAMIC_LOADING) */
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */ 
+
+#include <libxml2_tree.h>
+#include <libxml2_xmlio.h>
+
+#include "xmlsec_xmlsec.h"
+#include "xmlsec_keysdata.h"
+#include "xmlsec_keys.h"
+#include "xmlsec_keysmngr.h"
+#include "xmlsec_transforms.h"
+#include "xmlsec_dl.h"
+
+/**********************************************************************
+ *
+ * Crypto Init/shutdown
+ *
+ *********************************************************************/
+XMLSEC_EXPORT int 				xmlSecCryptoInit		(void);
+XMLSEC_EXPORT int 				xmlSecCryptoShutdown		(void);
+XMLSEC_EXPORT int				xmlSecCryptoKeysMngrInit	(xmlSecKeysMngrPtr mngr);
+
+/*********************************************************************
+ *
+ * Key data ids
+ *
+ ********************************************************************/
+/**
+ * xmlSecKeyDataAesId:
+ * 
+ * The AES key klass.
+ */
+#define xmlSecKeyDataAesId			xmlSecKeyDataAesGetKlass()
+XMLSEC_EXPORT xmlSecKeyDataId			xmlSecKeyDataAesGetKlass	(void);	
+/**
+ * xmlSecKeyDataDesId:
+ * 
+ * The DES key klass.
+ */
+#define xmlSecKeyDataDesId			xmlSecKeyDataDesGetKlass()
+XMLSEC_EXPORT xmlSecKeyDataId			xmlSecKeyDataDesGetKlass	(void);	
+/**
+ * xmlSecKeyDataDsaId:
+ * 
+ * The DSA key klass.
+ */
+#define xmlSecKeyDataDsaId			xmlSecKeyDataDsaGetKlass()
+XMLSEC_EXPORT xmlSecKeyDataId			xmlSecKeyDataDsaGetKlass	(void);		
+/** 
+ * xmlSecKeyDataHmacId:
+ * 
+ * The DHMAC key klass.
+ */
+#define xmlSecKeyDataHmacId			xmlSecKeyDataHmacGetKlass()
+XMLSEC_EXPORT xmlSecKeyDataId			xmlSecKeyDataHmacGetKlass	(void);		
+/**
+ * xmlSecKeyDataRsaId:
+ * 
+ * The RSA key klass.
+ */
+#define xmlSecKeyDataRsaId			xmlSecKeyDataRsaGetKlass()
+XMLSEC_EXPORT xmlSecKeyDataId			xmlSecKeyDataRsaGetKlass	(void);		
+/**
+ * xmlSecKeyDataX509Id:
+ * 
+ * The X509 data klass.
+ */
+#define xmlSecKeyDataX509Id			xmlSecKeyDataX509GetKlass()
+XMLSEC_EXPORT xmlSecKeyDataId			xmlSecKeyDataX509GetKlass	(void);		
+/**
+ * xmlSecKeyDataRawX509CertId:
+ * 
+ * The  raw X509 certificate klass.
+ */
+#define xmlSecKeyDataRawX509CertId		xmlSecKeyDataRawX509CertGetKlass()
+XMLSEC_EXPORT xmlSecKeyDataId			xmlSecKeyDataRawX509CertGetKlass(void);		
+
+/*********************************************************************
+ *
+ * Key data store ids
+ *
+ ********************************************************************/
+/**
+ * xmlSecX509StoreId:
+ * 
+ * The  X509 store klass.
+ */
+#define xmlSecX509StoreId			xmlSecX509StoreGetKlass()
+XMLSEC_EXPORT xmlSecKeyDataStoreId		xmlSecX509StoreGetKlass		(void);	
+
+/*********************************************************************
+ *
+ * Crypto transforms ids
+ *
+ ********************************************************************/
+/**
+ * xmlSecTransformAes128CbcId:
+ * 
+ * The AES128 CBC cipher transform klass.
+ */
+#define xmlSecTransformAes128CbcId		xmlSecTransformAes128CbcGetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformAes128CbcGetKlass(void);
+/**
+ * xmlSecTransformAes192CbcId:
+ * 
+ * The AES192 CBC cipher transform klass.
+ */
+#define xmlSecTransformAes192CbcId		xmlSecTransformAes192CbcGetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformAes192CbcGetKlass(void);
+/**
+ * xmlSecTransformAes256CbcId:
+ * 
+ * The AES256 CBC cipher transform klass.
+ */
+#define xmlSecTransformAes256CbcId		xmlSecTransformAes256CbcGetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformAes256CbcGetKlass(void);
+/**
+ * xmlSecTransformKWAes128Id:
+ * 
+ * The AES 128 key wrap transform klass.
+ */
+#define xmlSecTransformKWAes128Id		xmlSecTransformKWAes128GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformKWAes128GetKlass	(void);	
+/**
+ * xmlSecTransformKWAes192Id:
+ * 
+ * The AES 192 key wrap transform klass.
+ */
+#define xmlSecTransformKWAes192Id		xmlSecTransformKWAes192GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformKWAes192GetKlass	(void);	
+/**
+ * xmlSecTransformKWAes256Id:
+ * 
+ * The AES 256 key wrap transform klass.
+ */
+#define xmlSecTransformKWAes256Id		xmlSecTransformKWAes256GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformKWAes256GetKlass	(void);	
+/**
+ * xmlSecTransformDes3CbcId:
+ * 
+ * The Triple DES encryption transform klass.
+ */
+#define xmlSecTransformDes3CbcId		xmlSecTransformDes3CbcGetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformDes3CbcGetKlass	(void);	
+/**
+ * xmlSecTransformKWDes3Id:
+ * 
+ * The DES3 CBC cipher transform klass.
+ */
+#define xmlSecTransformKWDes3Id			xmlSecTransformKWDes3GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformKWDes3GetKlass	(void);
+/**
+ * xmlSecTransformDsaSha1Id:
+ * 
+ * The DSA-SHA1 signature transform klass.
+ */
+#define xmlSecTransformDsaSha1Id		xmlSecTransformDsaSha1GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformDsaSha1GetKlass	(void);	
+
+/**
+ * xmlSecTransformHmacMd5Id:
+ * 
+ * The HMAC with MD5 signature transform klass.
+ */
+#define xmlSecTransformHmacMd5Id		xmlSecTransformHmacMd5GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformHmacMd5GetKlass	(void);	
+/**
+ * xmlSecTransformHmacRipemd160Id:
+ * 
+ * The HMAC with RipeMD160 signature transform klass.
+ */
+#define xmlSecTransformHmacRipemd160Id		xmlSecTransformHmacRipemd160GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformHmacRipemd160GetKlass(void);
+/**
+ * xmlSecTransformHmacSha1Id:
+ * 
+ * The HMAC with SHA1 signature transform klass.
+ */
+#define xmlSecTransformHmacSha1Id		xmlSecTransformHmacSha1GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformHmacSha1GetKlass	(void);	
+/**
+ * xmlSecTransformHmacSha224Id:
+ * 
+ * The HMAC with SHA224 signature transform klass.
+ */
+#define xmlSecTransformHmacSha224Id		xmlSecTransformHmacSha224GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformHmacSha224GetKlass	(void);	
+/**
+ * xmlSecTransformHmacSha256Id:
+ * 
+ * The HMAC with SHA256 signature transform klass.
+ */
+#define xmlSecTransformHmacSha256Id		xmlSecTransformHmacSha256GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformHmacSha256GetKlass	(void);	
+/**
+ * xmlSecTransformHmacSha384Id:
+ * 
+ * The HMAC with SHA384 signature transform klass.
+ */
+#define xmlSecTransformHmacSha384Id		xmlSecTransformHmacSha384GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformHmacSha384GetKlass	(void);	
+/**
+ * xmlSecTransformHmacSha512Id:
+ * 
+ * The HMAC with SHA512 signature transform klass.
+ */
+#define xmlSecTransformHmacSha512Id		xmlSecTransformHmacSha512GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformHmacSha512GetKlass	(void);	
+/**
+ * xmlSecTransformMd5Id:
+ * 
+ * The MD5 digest transform klass.
+ */
+#define xmlSecTransformMd5Id			xmlSecTransformMd5GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformMd5GetKlass(void);
+/**
+ * xmlSecTransformRipemd160Id:
+ * 
+ * The RIPEMD160 digest transform klass.
+ */
+#define xmlSecTransformRipemd160Id		xmlSecTransformRipemd160GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformRipemd160GetKlass(void);
+/**
+ * xmlSecTransformRsaMd5Id:
+ * 
+ * The RSA-MD5 signature transform klass.
+ */
+#define xmlSecTransformRsaMd5Id			xmlSecTransformRsaMd5GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformRsaMd5GetKlass	(void);	
+/**
+ * xmlSecTransformRsaRipemd160Id:
+ * 
+ * The RSA-RIPEMD160 signature transform klass.
+ */
+#define xmlSecTransformRsaRipemd160Id		xmlSecTransformRsaRipemd160GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformRsaRipemd160GetKlass	(void);	
+/**
+ * xmlSecTransformRsaSha1Id:
+ * 
+ * The RSA-SHA1 signature transform klass.
+ */
+#define xmlSecTransformRsaSha1Id		xmlSecTransformRsaSha1GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformRsaSha1GetKlass	(void);	
+/**
+ * xmlSecTransformRsaSha224Id:
+ * 
+ * The RSA-SHA224 signature transform klass.
+ */
+#define xmlSecTransformRsaSha224Id		xmlSecTransformRsaSha224GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformRsaSha224GetKlass	(void);	
+/**
+ * xmlSecTransformRsaSha256Id:
+ * 
+ * The RSA-SHA256 signature transform klass.
+ */
+#define xmlSecTransformRsaSha256Id		xmlSecTransformRsaSha256GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformRsaSha256GetKlass	(void);	
+/**
+ * xmlSecTransformRsaSha384Id:
+ * 
+ * The RSA-SHA384 signature transform klass.
+ */
+#define xmlSecTransformRsaSha384Id		xmlSecTransformRsaSha384GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformRsaSha384GetKlass	(void);	
+/**
+ * xmlSecTransformRsaSha512Id:
+ * 
+ * The RSA-SHA512 signature transform klass.
+ */
+#define xmlSecTransformRsaSha512Id		xmlSecTransformRsaSha512GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformRsaSha512GetKlass	(void);	
+
+/**
+ * xmlSecTransformRsaPkcs1Id:
+ * 
+ * The RSA PKCS1 key transport transform klass.
+ */
+#define xmlSecTransformRsaPkcs1Id		xmlSecTransformRsaPkcs1GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformRsaPkcs1GetKlass	(void);	
+/**
+ * xmlSecTransformRsaOaepId:
+ * 
+ * The RSA PKCS1 key transport transform klass.
+ */
+#define xmlSecTransformRsaOaepId		xmlSecTransformRsaOaepGetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformRsaOaepGetKlass	(void);	
+/**
+ * xmlSecTransformSha1Id:
+ * 
+ * The SHA1 digest transform klass.
+ */
+#define xmlSecTransformSha1Id			xmlSecTransformSha1GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformSha1GetKlass	(void);
+/**
+ * xmlSecTransformSha224Id:
+ * 
+ * The SHA224 digest transform klass.
+ */
+#define xmlSecTransformSha224Id			xmlSecTransformSha224GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformSha224GetKlass	(void);
+/**
+ * xmlSecTransformSha256Id:
+ * 
+ * The SHA256 digest transform klass.
+ */
+#define xmlSecTransformSha256Id			xmlSecTransformSha256GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformSha256GetKlass	(void);
+/**
+ * xmlSecTransformSha384Id:
+ * 
+ * The SHA384 digest transform klass.
+ */
+#define xmlSecTransformSha384Id			xmlSecTransformSha384GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformSha384GetKlass	(void);
+/**
+ * xmlSecTransformSha512Id:
+ * 
+ * The SHA512 digest transform klass.
+ */
+#define xmlSecTransformSha512Id			xmlSecTransformSha512GetKlass()
+XMLSEC_EXPORT xmlSecTransformId			xmlSecTransformSha512GetKlass	(void);
+
+/*********************************************************************
+ *
+ * High level routines form xmlsec command line utility
+ *
+ ********************************************************************/ 
+XMLSEC_EXPORT int				xmlSecCryptoAppInit		(const char* config);
+XMLSEC_EXPORT int				xmlSecCryptoAppShutdown		(void);
+XMLSEC_EXPORT int				xmlSecCryptoAppDefaultKeysMngrInit	(xmlSecKeysMngrPtr mngr);
+XMLSEC_EXPORT int				xmlSecCryptoAppDefaultKeysMngrAdoptKey	(xmlSecKeysMngrPtr mngr,
+											 xmlSecKeyPtr key);
+XMLSEC_EXPORT int				xmlSecCryptoAppDefaultKeysMngrLoad	(xmlSecKeysMngrPtr mngr,
+											 const char* uri);
+XMLSEC_EXPORT int				xmlSecCryptoAppDefaultKeysMngrSave	(xmlSecKeysMngrPtr mngr,
+											 const char* filename,
+											 xmlSecKeyDataType type);
+XMLSEC_EXPORT int				xmlSecCryptoAppKeysMngrCertLoad	(xmlSecKeysMngrPtr mngr,
+										 const char *filename, 
+										 xmlSecKeyDataFormat format,
+										 xmlSecKeyDataType type);
+XMLSEC_EXPORT int				xmlSecCryptoAppKeysMngrCertLoadMemory(xmlSecKeysMngrPtr mngr,
+										 const xmlSecByte* data,
+										 xmlSecSize dataSize,
+										 xmlSecKeyDataFormat format,
+										 xmlSecKeyDataType type);
+/* Venus: xmlSecCryptoAppKeyLoad replaced by xmlSecCryptoAppKeyloadWithName */
+/*
+XMLSEC_EXPORT xmlSecKeyPtr			xmlSecCryptoAppKeyLoad		(const char *filename, 
+										 xmlSecKeyDataFormat format,
+										 const char *pwd,
+										 void* pwdCallback,
+										 void* pwdCallbackCtx);
+*/										 
+/* Venus: xmlSecCryptoAppKeyLoadWithName is a new API added for Symbian */										 
+XMLSEC_EXPORT xmlSecKeyPtr			xmlSecCryptoAppKeyLoadWithName	(const char *filename, 
+										 xmlSecKeyDataFormat format,
+										 const char* keyname,
+										 const char *pwd,
+										 void* pwdCallback,
+										 void* pwdCallbackCtx);										 
+XMLSEC_EXPORT xmlSecKeyPtr			xmlSecCryptoAppKeyLoadMemory	(const xmlSecByte* data,
+										 xmlSecSize dataSize,
+										 xmlSecKeyDataFormat format,
+										 const char *pwd,
+										 void* pwdCallback,
+										 void* pwdCallbackCtx);
+XMLSEC_EXPORT xmlSecKeyPtr			xmlSecCryptoAppPkcs12Load	(const char* filename, 
+										 const char* pwd,
+										 void* pwdCallback, 
+										 void* pwdCallbackCtx);	
+XMLSEC_EXPORT xmlSecKeyPtr			xmlSecCryptoAppPkcs12LoadMemory	(const xmlSecByte* data,
+										 xmlSecSize dataSize,
+										 const char *pwd,
+										 void* pwdCallback,
+										 void* pwdCallbackCtx);
+XMLSEC_EXPORT int				xmlSecCryptoAppKeyCertLoad	(xmlSecKeyPtr key,
+										 const char* filename,
+										 xmlSecKeyDataFormat format);
+XMLSEC_EXPORT int				xmlSecCryptoAppKeyCertLoadMemory(xmlSecKeyPtr key,
+										 const xmlSecByte* data,
+										 xmlSecSize dataSize,
+										 xmlSecKeyDataFormat format);
+XMLSEC_EXPORT void*				xmlSecCryptoAppGetDefaultPwdCallback(void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* XMLSEC_NO_CRYPTO_DYNAMIC_LOADING */
+
+#endif /* __XMLSEC_APP_H__ */
+