diff options
Diffstat (limited to 'include/xmlsec/nss/crypto.h')
-rw-r--r-- | include/xmlsec/nss/crypto.h | 350 |
1 files changed, 97 insertions, 253 deletions
diff --git a/include/xmlsec/nss/crypto.h b/include/xmlsec/nss/crypto.h index a1c11948..42ba6ca9 100644 --- a/include/xmlsec/nss/crypto.h +++ b/include/xmlsec/nss/crypto.h @@ -1,18 +1,18 @@ -/** +/** * XMLSec library * * This is free software; see Copyright file in the source * distribution for preciese wording. - * + * * Copyright (C) 2002-2003 Aleksey Sanin <aleksey@aleksey.com> * Copyright (c) 2003 America Online, Inc. All rights reserved. */ #ifndef __XMLSEC_NSS_CRYPTO_H__ -#define __XMLSEC_NSS_CRYPTO_H__ +#define __XMLSEC_NSS_CRYPTO_H__ #ifdef __cplusplus extern "C" { -#endif /* __cplusplus */ +#endif /* __cplusplus */ #include <nspr.h> #include <nss.h> @@ -23,27 +23,25 @@ extern "C" { #include <xmlsec/transforms.h> #include <xmlsec/dl.h> -XMLSEC_CRYPTO_EXPORT xmlSecCryptoDLFunctionsPtr xmlSecCryptoGetFunctions_nss(void); +XMLSEC_CRYPTO_EXPORT xmlSecCryptoDLFunctionsPtr xmlSecCryptoGetFunctions_nss(void); -/******************************************************************** - * +/** * Init shutdown - * - ********************************************************************/ -XMLSEC_CRYPTO_EXPORT int xmlSecNssInit (void); -XMLSEC_CRYPTO_EXPORT int xmlSecNssShutdown (void); - -XMLSEC_CRYPTO_EXPORT int xmlSecNssKeysMngrInit (xmlSecKeysMngrPtr mngr); -XMLSEC_CRYPTO_EXPORT int xmlSecNssGenerateRandom (xmlSecBufferPtr buffer, - xmlSecSize size); - -XMLSEC_CRYPTO_EXPORT void xmlSecNssErrorsDefaultCallback (const char* file, - int line, - const char* func, - const char* errorObject, - const char* errorSubject, - int reason, - const char* msg); + */ +XMLSEC_CRYPTO_EXPORT int xmlSecNssInit (void); +XMLSEC_CRYPTO_EXPORT int xmlSecNssShutdown (void); + +XMLSEC_CRYPTO_EXPORT int xmlSecNssKeysMngrInit (xmlSecKeysMngrPtr mngr); +XMLSEC_CRYPTO_EXPORT int xmlSecNssGenerateRandom (xmlSecBufferPtr buffer, + xmlSecSize size); + +XMLSEC_CRYPTO_EXPORT void xmlSecNssErrorsDefaultCallback (const char* file, + int line, + const char* func, + const char* errorObject, + const char* errorSubject, + int reason, + const char* msg); XMLSEC_CRYPTO_EXPORT PK11SlotInfo * xmlSecNssGetInternalKeySlot(void); @@ -55,68 +53,68 @@ XMLSEC_CRYPTO_EXPORT PK11SlotInfo * xmlSecNssGetInternalKeySlot(void); #ifndef XMLSEC_NO_AES /** * xmlSecNssKeyDataAesId: - * + * * The AES key data klass. */ #define xmlSecNssKeyDataAesId \ - xmlSecNssKeyDataAesGetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecKeyDataId xmlSecNssKeyDataAesGetKlass (void); -XMLSEC_CRYPTO_EXPORT int xmlSecNssKeyDataAesSet (xmlSecKeyDataPtr data, - const xmlSecByte* buf, - xmlSecSize bufSize); + xmlSecNssKeyDataAesGetKlass() +XMLSEC_CRYPTO_EXPORT xmlSecKeyDataId xmlSecNssKeyDataAesGetKlass (void); +XMLSEC_CRYPTO_EXPORT int xmlSecNssKeyDataAesSet (xmlSecKeyDataPtr data, + const xmlSecByte* buf, + xmlSecSize bufSize); /** * xmlSecNssTransformAes128CbcId: - * + * * The AES128 CBC cipher transform klass. */ #define xmlSecNssTransformAes128CbcId \ - xmlSecNssTransformAes128CbcGetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformAes128CbcGetKlass(void); + xmlSecNssTransformAes128CbcGetKlass() +XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformAes128CbcGetKlass(void); /** * xmlSecNssTransformAes192CbcId: - * + * * The AES192 CBC cipher transform klass. */ #define xmlSecNssTransformAes192CbcId \ - xmlSecNssTransformAes192CbcGetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformAes192CbcGetKlass(void); + xmlSecNssTransformAes192CbcGetKlass() +XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformAes192CbcGetKlass(void); /** * xmlSecNssTransformAes256CbcId: - * + * * The AES256 CBC cipher transform klass. */ #define xmlSecNssTransformAes256CbcId \ - xmlSecNssTransformAes256CbcGetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformAes256CbcGetKlass(void); + xmlSecNssTransformAes256CbcGetKlass() +XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformAes256CbcGetKlass(void); /** * xmlSecNssTransformKWAes128Id: - * + * * The AES 128 key wrap transform klass. */ #define xmlSecNssTransformKWAes128Id \ - xmlSecNssTransformKWAes128GetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformKWAes128GetKlass(void); + xmlSecNssTransformKWAes128GetKlass() +XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformKWAes128GetKlass(void); /** * xmlSecNssTransformKWAes192Id: - * + * * The AES 192 key wrap transform klass. */ #define xmlSecNssTransformKWAes192Id \ - xmlSecNssTransformKWAes192GetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformKWAes192GetKlass(void); + xmlSecNssTransformKWAes192GetKlass() +XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformKWAes192GetKlass(void); /** * xmlSecNssTransformKWAes256Id: - * + * * The AES 256 key wrap transform klass. */ #define xmlSecNssTransformKWAes256Id \ - xmlSecNssTransformKWAes256GetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformKWAes256GetKlass(void); + xmlSecNssTransformKWAes256GetKlass() +XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformKWAes256GetKlass(void); #endif /* XMLSEC_NO_AES */ @@ -128,32 +126,32 @@ XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformKWAes256GetKlass(void) #ifndef XMLSEC_NO_DES /** * xmlSecNssKeyDataDesId: - * + * * The DES key data klass. */ #define xmlSecNssKeyDataDesId \ - xmlSecNssKeyDataDesGetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecKeyDataId xmlSecNssKeyDataDesGetKlass (void); -XMLSEC_CRYPTO_EXPORT int xmlSecNssKeyDataDesSet (xmlSecKeyDataPtr data, - const xmlSecByte* buf, - xmlSecSize bufSize); + xmlSecNssKeyDataDesGetKlass() +XMLSEC_CRYPTO_EXPORT xmlSecKeyDataId xmlSecNssKeyDataDesGetKlass (void); +XMLSEC_CRYPTO_EXPORT int xmlSecNssKeyDataDesSet (xmlSecKeyDataPtr data, + const xmlSecByte* buf, + xmlSecSize bufSize); /** * xmlSecNssTransformDes3CbcId: - * + * * The Triple DES CBC cipher transform klass. */ #define xmlSecNssTransformDes3CbcId \ - xmlSecNssTransformDes3CbcGetKlass() + xmlSecNssTransformDes3CbcGetKlass() XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformDes3CbcGetKlass(void); /** * xmlSecNssTransformKWDes3Id: -* -* The DES3 KW transform klass. -*/ +* +* The DES3 CBC cipher transform klass. +*/ #define xmlSecNssTransformKWDes3Id \ - xmlSecNssTransformKWDes3GetKlass() + xmlSecNssTransformKWDes3GetKlass() XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformKWDes3GetKlass(void); @@ -168,20 +166,20 @@ XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformKWDes3GetKlass(void); /** * xmlSecNssKeyDataDsaId: - * + * * The DSA key klass. */ #define xmlSecNssKeyDataDsaId \ - xmlSecNssKeyDataDsaGetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecKeyDataId xmlSecNssKeyDataDsaGetKlass (void); + xmlSecNssKeyDataDsaGetKlass() +XMLSEC_CRYPTO_EXPORT xmlSecKeyDataId xmlSecNssKeyDataDsaGetKlass (void); /** * xmlSecNssTransformDsaSha1Id: - * + * * The DSA SHA1 signature transform klass. */ #define xmlSecNssTransformDsaSha1Id \ - xmlSecNssTransformDsaSha1GetKlass() + xmlSecNssTransformDsaSha1GetKlass() XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformDsaSha1GetKlass(void); #endif /* XMLSEC_NO_DSA */ @@ -197,82 +195,43 @@ XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformDsaSha1GetKlass(void); XMLSEC_CRYPTO_EXPORT int xmlSecNssHmacGetMinOutputLength(void); XMLSEC_CRYPTO_EXPORT void xmlSecNssHmacSetMinOutputLength(int min_length); -/** +/** * xmlSecNssKeyDataHmacId: - * + * * The DHMAC key data klass. */ #define xmlSecNssKeyDataHmacId \ - xmlSecNssKeyDataHmacGetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecKeyDataId xmlSecNssKeyDataHmacGetKlass (void); -XMLSEC_CRYPTO_EXPORT int xmlSecNssKeyDataHmacSet (xmlSecKeyDataPtr data, - const xmlSecByte* buf, - xmlSecSize bufSize); -#ifndef XMLSEC_NO_MD5 + xmlSecNssKeyDataHmacGetKlass() +XMLSEC_CRYPTO_EXPORT xmlSecKeyDataId xmlSecNssKeyDataHmacGetKlass (void); +XMLSEC_CRYPTO_EXPORT int xmlSecNssKeyDataHmacSet (xmlSecKeyDataPtr data, + const xmlSecByte* buf, + xmlSecSize bufSize); /** * xmlSecNssTransformHmacMd5Id: - * + * * The HMAC with MD5 signature transform klass. */ #define xmlSecNssTransformHmacMd5Id \ - xmlSecNssTransformHmacMd5GetKlass() + xmlSecNssTransformHmacMd5GetKlass() XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformHmacMd5GetKlass(void); -#endif /* XMLSEC_NO_MD5 */ -#ifndef XMLSEC_NO_RIPEMD160 /** * xmlSecNssTransformHmacRipemd160Id: - * + * * The HMAC with RipeMD160 signature transform klass. */ #define xmlSecNssTransformHmacRipemd160Id \ - xmlSecNssTransformHmacRipemd160GetKlass() + xmlSecNssTransformHmacRipemd160GetKlass() XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformHmacRipemd160GetKlass(void); -#endif /* XMLSEC_NO_RIPEMD160 */ -#ifndef XMLSEC_NO_SHA1 /** * xmlSecNssTransformHmacSha1Id: - * + * * The HMAC with SHA1 signature transform klass. */ #define xmlSecNssTransformHmacSha1Id \ - xmlSecNssTransformHmacSha1GetKlass() + xmlSecNssTransformHmacSha1GetKlass() XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformHmacSha1GetKlass(void); -#endif /* XMLSEC_NO_SHA1 */ - -#ifndef XMLSEC_NO_SHA256 -/** - * xmlSecNssTransformHmacSha256Id: - * - * The HMAC with SHA256 signature transform klass. - */ -#define xmlSecNssTransformHmacSha256Id \ - xmlSecNssTransformHmacSha256GetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformHmacSha256GetKlass(void); -#endif /* XMLSEC_NO_SHA256 */ - -#ifndef XMLSEC_NO_SHA384 -/** - * xmlSecNssTransformHmacSha384Id: - * - * The HMAC with SHA384 signature transform klass. - */ -#define xmlSecNssTransformHmacSha384Id \ - xmlSecNssTransformHmacSha384GetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformHmacSha384GetKlass(void); -#endif /* XMLSEC_NO_SHA384 */ - -#ifndef XMLSEC_NO_SHA512 -/** - * xmlSecNssTransformHmacSha512Id: - * - * The HMAC with SHA512 signature transform klass. - */ -#define xmlSecNssTransformHmacSha512Id \ - xmlSecNssTransformHmacSha512GetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformHmacSha512GetKlass(void); -#endif /* XMLSEC_NO_SHA512 */ #endif /* XMLSEC_NO_HMAC */ @@ -287,92 +246,44 @@ XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformHmacSha512GetKlass(void /** * xmlSecNssKeyDataRsaId: - * + * * The RSA key klass. */ #define xmlSecNssKeyDataRsaId \ - xmlSecNssKeyDataRsaGetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecKeyDataId xmlSecNssKeyDataRsaGetKlass (void); - -#ifndef XMLSEC_NO_MD5 -/** - * xmlSecNssTransformRsaMd5Id: - * - * The RSA-MD5 signature transform klass. - */ -#define xmlSecNssTransformRsaMd5Id \ - xmlSecNssTransformRsaMd5GetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformRsaMd5GetKlass(void); -#endif /* XMLSEC_NO_MD5 */ + xmlSecNssKeyDataRsaGetKlass() +XMLSEC_CRYPTO_EXPORT xmlSecKeyDataId xmlSecNssKeyDataRsaGetKlass (void); -#ifndef XMLSEC_NO_SHA1 /** * xmlSecNssTransformRsaSha1Id: - * + * * The RSA-SHA1 signature transform klass. */ -#define xmlSecNssTransformRsaSha1Id \ - xmlSecNssTransformRsaSha1GetKlass() +#define xmlSecNssTransformRsaSha1Id \ + xmlSecNssTransformRsaSha1GetKlass() XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformRsaSha1GetKlass(void); -#endif /* XMLSEC_NO_SHA1 */ - -#ifndef XMLSEC_NO_SHA256 -/** - * xmlSecNssTransformRsaSha256Id: - * - * The RSA-SHA256 signature transform klass. - */ -#define xmlSecNssTransformRsaSha256Id \ - xmlSecNssTransformRsaSha256GetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformRsaSha256GetKlass(void); -#endif /* XMLSEC_NO_SHA256 */ - -#ifndef XMLSEC_NO_SHA384 -/** - * xmlSecNssTransformRsaSha384Id: - * - * The RSA-SHA384 signature transform klass. - */ -#define xmlSecNssTransformRsaSha384Id \ - xmlSecNssTransformRsaSha384GetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformRsaSha384GetKlass(void); -#endif /* XMLSEC_NO_SHA384 */ - -#ifndef XMLSEC_NO_SHA512 -/** - * xmlSecNssTransformRsaSha512Id: - * - * The RSA-SHA512 signature transform klass. - */ -#define xmlSecNssTransformRsaSha512Id \ - xmlSecNssTransformRsaSha512GetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformRsaSha512GetKlass(void); -#endif /* XMLSEC_NO_SHA512 */ /** * xmlSecNssTransformRsaPkcs1Id: - * + * * The RSA PKCS1 key transport transform klass. */ #define xmlSecNssTransformRsaPkcs1Id \ xmlSecNssTransformRsaPkcs1GetKlass() XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformRsaPkcs1GetKlass(void); -/* aleksey, April 2010: NSS 3.12.6 has CKM_RSA_PKCS_OAEP algorithm but - it doesn't implement the SHA1 OAEP PKCS we need - https://bugzilla.mozilla.org/show_bug.cgi?id=158747 -*/ -#ifdef XMLSEC_NSS_RSA_OAEP_TODO -/** - * xmlSecNssTransformRsaOaepId: - * - * The RSA OAEP key transport transform klass. - */ -#define xmlSecNssTransformRsaOaepId \ - xmlSecNssTransformRsaOaepGetKlass() +/* RSA OAEP is not supported by NSS yet */ +#ifdef TODO
+/**
+ * xmlSecNssTransformRsaOaepId:
+ *
+ * The RSA OAEP key transport transform klass.
+ */
+
+#define xmlSecNssTransformRsaOaepId \
+ xmlSecNssTransformRsaOaepGetKlass()
XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformRsaOaepGetKlass(void); -#endif /* XMLSEC_NSS_RSA_OAEP_TODO */ +#endif /* TODO: RSA OAEP is not supported by NSS yet */ #endif /* XMLSEC_NO_RSA */ @@ -385,85 +296,18 @@ XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformRsaOaepGetKlass(void); #ifndef XMLSEC_NO_SHA1 /** * xmlSecNssTransformSha1Id: - * + * * The SHA1 digest transform klass. */ #define xmlSecNssTransformSha1Id \ - xmlSecNssTransformSha1GetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformSha1GetKlass (void); + xmlSecNssTransformSha1GetKlass() +XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformSha1GetKlass (void); #endif /* XMLSEC_NO_SHA1 */ -/******************************************************************** - * - * SHA256 transform - * - *******************************************************************/ -#ifndef XMLSEC_NO_SHA256 -/** - * xmlSecNssTransformSha256Id: - * - * The SHA256 digest transform klass. - */ -#define xmlSecNssTransformSha256Id \ - xmlSecNssTransformSha256GetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformSha256GetKlass(void); -#endif /* XMLSEC_NO_SHA256 */ - -/******************************************************************** - * - * SHA384 transform - * - *******************************************************************/ -#ifndef XMLSEC_NO_SHA384 -/** - * xmlSecNssTransformSha384Id: - * - * The SHA384 digest transform klass. - */ -#define xmlSecNssTransformSha384Id \ - xmlSecNssTransformSha384GetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformSha384GetKlass(void); -#endif /* XMLSEC_NO_SHA384 */ - -/******************************************************************** - * - * SHA512 transform - * - *******************************************************************/ -#ifndef XMLSEC_NO_SHA512 -/** - * xmlSecNssTransformSha512Id: - * - * The SHA512 digest transform klass. - */ -#define xmlSecNssTransformSha512Id \ - xmlSecNssTransformSha512GetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformSha512GetKlass(void); -#endif /* XMLSEC_NO_SHA512 */ - -/******************************************************************** - * - * MD5 transforms - * - *******************************************************************/ -#ifndef XMLSEC_NO_MD5 -/** - * xmlSecNssTransformMd5Id: - * - * The MD5 digest transform klass. - */ -#define xmlSecNssTransformMd5Id \ - xmlSecNssTransformMd5GetKlass() -XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecNssTransformMd5GetKlass(void); -#endif /* XMLSEC_NO_MD5 */ - - - - #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* __XMLSEC_NSS_CRYPTO_H__ */ -#define __XMLSEC_NSS_CRYPTO_H__ +#define __XMLSEC_NSS_CRYPTO_H__ |