You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by sc...@apache.org on 2012/07/19 02:33:46 UTC

svn commit: r1363191 - in /santuario/xml-security-cpp/trunk/xsec: dsig/DSIGConstants.cpp dsig/DSIGConstants.hpp xenc/impl/XENCAlgorithmHandlerDefault.cpp xenc/impl/XENCCipherImpl.cpp

Author: scantor
Date: Thu Jul 19 00:33:46 2012
New Revision: 1363191

URL: http://svn.apache.org/viewvc?rev=1363191&view=rev
Log:
Constants for AES key wrap w/ padding.

Modified:
    santuario/xml-security-cpp/trunk/xsec/dsig/DSIGConstants.cpp
    santuario/xml-security-cpp/trunk/xsec/dsig/DSIGConstants.hpp
    santuario/xml-security-cpp/trunk/xsec/xenc/impl/XENCAlgorithmHandlerDefault.cpp
    santuario/xml-security-cpp/trunk/xsec/xenc/impl/XENCCipherImpl.cpp

Modified: santuario/xml-security-cpp/trunk/xsec/dsig/DSIGConstants.cpp
URL: http://svn.apache.org/viewvc/santuario/xml-security-cpp/trunk/xsec/dsig/DSIGConstants.cpp?rev=1363191&r1=1363190&r2=1363191&view=diff
==============================================================================
--- santuario/xml-security-cpp/trunk/xsec/dsig/DSIGConstants.cpp (original)
+++ santuario/xml-security-cpp/trunk/xsec/dsig/DSIGConstants.cpp Thu Jul 19 00:33:46 2012
@@ -217,10 +217,13 @@ const XMLCh * DSIGConstants::s_unicodeSt
 const XMLCh * DSIGConstants::s_unicodeStrURIAES128_GCM;
 const XMLCh * DSIGConstants::s_unicodeStrURIAES192_GCM;
 const XMLCh * DSIGConstants::s_unicodeStrURIAES256_GCM;
+const XMLCh * DSIGConstants::s_unicodeStrURIKW_3DES;
 const XMLCh * DSIGConstants::s_unicodeStrURIKW_AES128;
 const XMLCh * DSIGConstants::s_unicodeStrURIKW_AES192;
 const XMLCh * DSIGConstants::s_unicodeStrURIKW_AES256;
-const XMLCh * DSIGConstants::s_unicodeStrURIKW_3DES;
+const XMLCh * DSIGConstants::s_unicodeStrURIKW_AES128_PAD;
+const XMLCh * DSIGConstants::s_unicodeStrURIKW_AES192_PAD;
+const XMLCh * DSIGConstants::s_unicodeStrURIKW_AES256_PAD;
 const XMLCh * DSIGConstants::s_unicodeStrURIRSA_1_5;
 const XMLCh * DSIGConstants::s_unicodeStrURIRSA_OAEP_MGFP1;
 const XMLCh * DSIGConstants::s_unicodeStrURIRSA_OAEP;
@@ -315,10 +318,13 @@ void DSIGConstants::create() {
 	s_unicodeStrURIAES128_GCM	= XMLString::transcode(URI_ID_AES128_GCM);
     s_unicodeStrURIAES192_GCM	= XMLString::transcode(URI_ID_AES192_GCM);
     s_unicodeStrURIAES256_GCM	= XMLString::transcode(URI_ID_AES256_GCM);
+	s_unicodeStrURIKW_3DES = XMLString::transcode(URI_ID_KW_3DES);
     s_unicodeStrURIKW_AES128 = XMLString::transcode(URI_ID_KW_AES128);
 	s_unicodeStrURIKW_AES192 = XMLString::transcode(URI_ID_KW_AES192);
 	s_unicodeStrURIKW_AES256 = XMLString::transcode(URI_ID_KW_AES256);
-	s_unicodeStrURIKW_3DES = XMLString::transcode(URI_ID_KW_3DES);
+    s_unicodeStrURIKW_AES128_PAD = XMLString::transcode(URI_ID_KW_AES128_PAD);
+	s_unicodeStrURIKW_AES192_PAD = XMLString::transcode(URI_ID_KW_AES192_PAD);
+	s_unicodeStrURIKW_AES256_PAD = XMLString::transcode(URI_ID_KW_AES256_PAD);
 	s_unicodeStrURIRSA_1_5 = XMLString::transcode(URI_ID_RSA_1_5);
 	s_unicodeStrURIRSA_OAEP_MGFP1 = XMLString::transcode(URI_ID_RSA_OAEP_MGFP1);
     s_unicodeStrURIRSA_OAEP = XMLString::transcode(URI_ID_RSA_OAEP);
@@ -405,10 +411,13 @@ void DSIGConstants::destroy() {
 	XSEC_RELEASE_XMLCH(s_unicodeStrURIAES128_GCM);
 	XSEC_RELEASE_XMLCH(s_unicodeStrURIAES192_GCM);
 	XSEC_RELEASE_XMLCH(s_unicodeStrURIAES256_GCM);
+	XSEC_RELEASE_XMLCH(s_unicodeStrURIKW_3DES);
 	XSEC_RELEASE_XMLCH(s_unicodeStrURIKW_AES128);
 	XSEC_RELEASE_XMLCH(s_unicodeStrURIKW_AES192);
 	XSEC_RELEASE_XMLCH(s_unicodeStrURIKW_AES256);
-	XSEC_RELEASE_XMLCH(s_unicodeStrURIKW_3DES);
+	XSEC_RELEASE_XMLCH(s_unicodeStrURIKW_AES128_PAD);
+	XSEC_RELEASE_XMLCH(s_unicodeStrURIKW_AES192_PAD);
+	XSEC_RELEASE_XMLCH(s_unicodeStrURIKW_AES256_PAD);
 	XSEC_RELEASE_XMLCH(s_unicodeStrURIRSA_1_5);
 	XSEC_RELEASE_XMLCH(s_unicodeStrURIRSA_OAEP_MGFP1);
     XSEC_RELEASE_XMLCH(s_unicodeStrURIRSA_OAEP);

Modified: santuario/xml-security-cpp/trunk/xsec/dsig/DSIGConstants.hpp
URL: http://svn.apache.org/viewvc/santuario/xml-security-cpp/trunk/xsec/dsig/DSIGConstants.hpp?rev=1363191&r1=1363190&r2=1363191&view=diff
==============================================================================
--- santuario/xml-security-cpp/trunk/xsec/dsig/DSIGConstants.hpp (original)
+++ santuario/xml-security-cpp/trunk/xsec/dsig/DSIGConstants.hpp Thu Jul 19 00:33:46 2012
@@ -68,10 +68,13 @@ XSEC_USING_XERCES(XMLString);
 
 
 // Key Wrap Algorithm
-#define URI_ID_KW_AES128	"http://www.w3.org/2001/04/xmlenc#kw-aes128"
-#define URI_ID_KW_AES192	"http://www.w3.org/2001/04/xmlenc#kw-aes192"
-#define URI_ID_KW_AES256	"http://www.w3.org/2001/04/xmlenc#kw-aes256"
-#define URI_ID_KW_3DES		"http://www.w3.org/2001/04/xmlenc#kw-tripledes"
+#define URI_ID_KW_3DES		    "http://www.w3.org/2001/04/xmlenc#kw-tripledes"
+#define URI_ID_KW_AES128	    "http://www.w3.org/2001/04/xmlenc#kw-aes128"
+#define URI_ID_KW_AES192	    "http://www.w3.org/2001/04/xmlenc#kw-aes192"
+#define URI_ID_KW_AES256	    "http://www.w3.org/2001/04/xmlenc#kw-aes256"
+#define URI_ID_KW_AES128_PAD	"http://www.w3.org/2009/xmlenc11#kw-aes-128-pad"
+#define URI_ID_KW_AES192_PAD	"http://www.w3.org/2009/xmlenc11#kw-aes-192-pad"
+#define URI_ID_KW_AES256_PAD	"http://www.w3.org/2009/xmlenc11#kw-aes-256-pad"
 
 // Key Transport algorithms
 #define URI_ID_RSA_1_5			"http://www.w3.org/2001/04/xmlenc#rsa-1_5"
@@ -223,7 +226,10 @@ enum encryptionMethod {
     ENCRYPT_RSA_OAEP	    = 11,				// RSA with OAEP
 	ENCRYPT_AES128_GCM		= 12,				// 128 bit AES in GCM
     ENCRYPT_AES192_GCM		= 13,				// 192 bit AES in GCM
-	ENCRYPT_AES256_GCM		= 14				// 256 bit AES in GCM
+	ENCRYPT_AES256_GCM		= 14,				// 256 bit AES in GCM
+	ENCRYPT_KW_AES128_PAD	= 15,				// KeyWrap - AES128 with padding
+	ENCRYPT_KW_AES192_PAD	= 16,				// KeyWrap - AES192 with padding
+	ENCRYPT_KW_AES256_PAD	= 17				// KeyWrap - AES256 with padding
 };
 
 enum maskGenerationFunc {
@@ -484,6 +490,21 @@ bool encryptionMethod2URI(safeBuffer &ur
 		uri = URI_ID_AES256_GCM;
 		break;
 
+	case (ENCRYPT_KW_AES128_PAD) :
+
+		uri = URI_ID_KW_AES128_PAD;
+		break;
+
+	case (ENCRYPT_KW_AES192_PAD) :
+
+		uri = URI_ID_KW_AES192_PAD;
+		break;
+
+	case (ENCRYPT_KW_AES256_PAD) :
+
+		uri = URI_ID_KW_AES256_PAD;
+		break;
+
     default:
 
 		return false;
@@ -615,10 +636,13 @@ public:
 	static const XMLCh * s_unicodeStrURIAES128_GCM;
     static const XMLCh * s_unicodeStrURIAES192_GCM;
 	static const XMLCh * s_unicodeStrURIAES256_GCM;
+	static const XMLCh * s_unicodeStrURIKW_3DES;
 	static const XMLCh * s_unicodeStrURIKW_AES128;
 	static const XMLCh * s_unicodeStrURIKW_AES192;
 	static const XMLCh * s_unicodeStrURIKW_AES256;
-	static const XMLCh * s_unicodeStrURIKW_3DES;
+	static const XMLCh * s_unicodeStrURIKW_AES128_PAD;
+	static const XMLCh * s_unicodeStrURIKW_AES192_PAD;
+	static const XMLCh * s_unicodeStrURIKW_AES256_PAD;
 	static const XMLCh * s_unicodeStrURIRSA_1_5;
 	static const XMLCh * s_unicodeStrURIRSA_OAEP_MGFP1;
     static const XMLCh * s_unicodeStrURIRSA_OAEP;

Modified: santuario/xml-security-cpp/trunk/xsec/xenc/impl/XENCAlgorithmHandlerDefault.cpp
URL: http://svn.apache.org/viewvc/santuario/xml-security-cpp/trunk/xsec/xenc/impl/XENCAlgorithmHandlerDefault.cpp?rev=1363191&r1=1363190&r2=1363191&view=diff
==============================================================================
--- santuario/xml-security-cpp/trunk/xsec/xenc/impl/XENCAlgorithmHandlerDefault.cpp (original)
+++ santuario/xml-security-cpp/trunk/xsec/xenc/impl/XENCAlgorithmHandlerDefault.cpp Thu Jul 19 00:33:46 2012
@@ -132,10 +132,10 @@ void XENCAlgorithmHandlerDefault::mapURI
 				break;
 
 			case XSECCryptoSymmetricKey::KEY_AES_128 :
-                if (strEquals(uri, DSIGConstants::s_unicodeStrURIKW_AES128)) {
+                if (strEquals(uri, DSIGConstants::s_unicodeStrURIKW_AES128) || strEquals(uri, DSIGConstants::s_unicodeStrURIKW_AES128_PAD)) {
                     keyOK = true;
                     isSymmetricKeyWrap = true;
-                    skm = XSECCryptoSymmetricKey::MODE_CBC;
+                    skm = XSECCryptoSymmetricKey::MODE_ECB;
                 }
                 else if (strEquals(uri, DSIGConstants::s_unicodeStrURIAES128_CBC)) {
                     keyOK = true;
@@ -149,10 +149,10 @@ void XENCAlgorithmHandlerDefault::mapURI
 				break;
 
 			case XSECCryptoSymmetricKey::KEY_AES_192 :
-                if (strEquals(uri, DSIGConstants::s_unicodeStrURIKW_AES192)) {
+                if (strEquals(uri, DSIGConstants::s_unicodeStrURIKW_AES192) || strEquals(uri, DSIGConstants::s_unicodeStrURIKW_AES192_PAD)) {
                     keyOK = true;
                     isSymmetricKeyWrap = true;
-                    skm = XSECCryptoSymmetricKey::MODE_CBC;
+                    skm = XSECCryptoSymmetricKey::MODE_ECB;
                 }
                 else if (strEquals(uri, DSIGConstants::s_unicodeStrURIAES192_CBC)) {
                     keyOK = true;
@@ -166,10 +166,10 @@ void XENCAlgorithmHandlerDefault::mapURI
 				break;
 
 			case XSECCryptoSymmetricKey::KEY_AES_256 :
-                if (strEquals(uri, DSIGConstants::s_unicodeStrURIKW_AES256)) {
+                if (strEquals(uri, DSIGConstants::s_unicodeStrURIKW_AES256) || strEquals(uri, DSIGConstants::s_unicodeStrURIKW_AES256_PAD)) {
                     keyOK = true;
                     isSymmetricKeyWrap = true;
-                    skm = XSECCryptoSymmetricKey::MODE_CBC;
+                    skm = XSECCryptoSymmetricKey::MODE_ECB;
                 }
                 else if (strEquals(uri, DSIGConstants::s_unicodeStrURIAES256_CBC)) {
                     keyOK = true;

Modified: santuario/xml-security-cpp/trunk/xsec/xenc/impl/XENCCipherImpl.cpp
URL: http://svn.apache.org/viewvc/santuario/xml-security-cpp/trunk/xsec/xenc/impl/XENCCipherImpl.cpp?rev=1363191&r1=1363190&r2=1363191&view=diff
==============================================================================
--- santuario/xml-security-cpp/trunk/xsec/xenc/impl/XENCCipherImpl.cpp (original)
+++ santuario/xml-security-cpp/trunk/xsec/xenc/impl/XENCCipherImpl.cpp Thu Jul 19 00:33:46 2012
@@ -131,10 +131,13 @@ void XENCCipherImpl::Initialise(void) {
     XSECPlatformUtils::registerAlgorithmHandler(DSIGConstants::s_unicodeStrURIAES128_GCM, def);
     XSECPlatformUtils::registerAlgorithmHandler(DSIGConstants::s_unicodeStrURIAES192_GCM, def);
     XSECPlatformUtils::registerAlgorithmHandler(DSIGConstants::s_unicodeStrURIAES256_GCM, def);
+    XSECPlatformUtils::registerAlgorithmHandler(DSIGConstants::s_unicodeStrURIKW_3DES, def);
     XSECPlatformUtils::registerAlgorithmHandler(DSIGConstants::s_unicodeStrURIKW_AES128, def);
     XSECPlatformUtils::registerAlgorithmHandler(DSIGConstants::s_unicodeStrURIKW_AES192, def);
     XSECPlatformUtils::registerAlgorithmHandler(DSIGConstants::s_unicodeStrURIKW_AES256, def);
-    XSECPlatformUtils::registerAlgorithmHandler(DSIGConstants::s_unicodeStrURIKW_3DES, def);
+    //XSECPlatformUtils::registerAlgorithmHandler(DSIGConstants::s_unicodeStrURIKW_AES128_PAD, def);
+    //XSECPlatformUtils::registerAlgorithmHandler(DSIGConstants::s_unicodeStrURIKW_AES192_PAD, def);
+    //XSECPlatformUtils::registerAlgorithmHandler(DSIGConstants::s_unicodeStrURIKW_AES256_PAD, def);
     XSECPlatformUtils::registerAlgorithmHandler(DSIGConstants::s_unicodeStrURIRSA_1_5, def);
     XSECPlatformUtils::registerAlgorithmHandler(DSIGConstants::s_unicodeStrURIRSA_OAEP_MGFP1, def);
     XSECPlatformUtils::registerAlgorithmHandler(DSIGConstants::s_unicodeStrURIRSA_OAEP, def);