You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by bl...@apache.org on 2003/11/12 06:25:38 UTC

cvs commit: xml-security/c/src/tools/cipher XencInteropResolver.cpp

blautenb    2003/11/11 21:25:38

  Modified:    c/Projects/VC6.0/xsec/cipher cipher.dsp
               c/src    basicTests.pl
               c/src/tools/cipher XencInteropResolver.cpp
  Log:
  Incoporated PHAOS tests into interop scripts and test resolver
  
  Revision  Changes    Path
  1.4       +2 -2      xml-security/c/Projects/VC6.0/xsec/cipher/cipher.dsp
  
  Index: cipher.dsp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/Projects/VC6.0/xsec/cipher/cipher.dsp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- cipher.dsp	15 Sep 2003 12:00:10 -0000	1.3
  +++ cipher.dsp	12 Nov 2003 05:25:37 -0000	1.4
  @@ -91,7 +91,7 @@
   # End Source File
   # Begin Source File
   
  -SOURCE=..\..\..\..\src\tools\cipher\MerlinFiveInteropResolver.cpp
  +SOURCE=..\..\..\..\src\tools\cipher\XencInteropResolver.cpp
   # End Source File
   # End Group
   # Begin Group "Header Files"
  @@ -99,7 +99,7 @@
   # PROP Default_Filter "h;hpp;hxx;hm;inl"
   # Begin Source File
   
  -SOURCE=..\..\..\..\src\tools\cipher\MerlinFiveInteropResolver.hpp
  +SOURCE=..\..\..\..\src\tools\cipher\XencInteropResolver.hpp
   # End Source File
   # End Group
   # Begin Group "Resource Files"
  
  
  
  1.3       +28 -0     xml-security/c/src/basicTests.pl
  
  Index: basicTests.pl
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/basicTests.pl,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- basicTests.pl	12 Nov 2003 04:53:08 -0000	1.2
  +++ basicTests.pl	12 Nov 2003 05:25:37 -0000	1.3
  @@ -228,6 +228,34 @@
   #decryption-transform-except.xml
   #decryption-transform.xml
   
  +# PHAOS interop tests.  Commented out tests are currently
  +# not supported
  +# bad-alg-enc-element-aes128-kw-3des.xml
  +"<Number>4019 2445 0277 5567</Number>,com/phaos/phaos-xmlenc-3/enc-content-3des-kw-aes192.xml,-i -de",
  +"<Number>4019 2445 0277 5567</Number>,com/phaos/phaos-xmlenc-3/enc-content-aes128-kw-3des.xml,-i -de",
  +"<Number>4019 2445 0277 5567</Number>,com/phaos/phaos-xmlenc-3/enc-content-aes192-kw-aes256.xml,-i -de",
  +"<Number>4019 2445 0277 5567</Number>,com/phaos/phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5.xml,-i -de",
  +# enc-element-3des-ka-dh.xml
  +"<Number>4019 2445 0277 5567</Number>,com/phaos/phaos-xmlenc-3/enc-element-3des-kt-rsa1_5.xml,-i -de",
  +"<Number>4019 2445 0277 5567</Number>,com/phaos/phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1.xml,-i -de",
  +# enc-element-3des-kt-rsa_oaep_sha256.xml
  +# enc-element-3des-kt-rsa_oaep_sha512.xml
  +"<Number>4019 2445 0277 5567</Number>,com/phaos/phaos-xmlenc-3/enc-element-3des-kw-3des.xml,-i -de",
  +# enc-element-aes128-ka-dh.xml
  +"<Number>4019 2445 0277 5567</Number>,com/phaos/phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5.xml,-i -de",
  +"<Number>4019 2445 0277 5567</Number>,com/phaos/phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1.xml,-i -de",
  +"<Number>4019 2445 0277 5567</Number>,com/phaos/phaos-xmlenc-3/enc-element-aes128-kw-aes128.xml,-i -de",
  +"<Number>4019 2445 0277 5567</Number>,com/phaos/phaos-xmlenc-3/enc-element-aes128-kw-aes256.xml,-i -de",
  +# enc-element-aes192-ka-dh.xml
  +"<Number>4019 2445 0277 5567</Number>,com/phaos/phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1.xml,-i -de",
  +"<Number>4019 2445 0277 5567</Number>,com/phaos/phaos-xmlenc-3/enc-element-aes192-kw-aes192.xml,-i -de",
  +# enc-element-aes256-ka-dh.xml
  +"<Number>4019 2445 0277 5567</Number>,com/phaos/phaos-xmlenc-3/enc-element-aes256-kw-aes256.xml,-i -de",
  +"4019 2445 0277 5567,com/phaos/phaos-xmlenc-3/enc-text-3des-kw-aes256.xml,-i",
  +"4019 2445 0277 5567,com/phaos/phaos-xmlenc-3/enc-text-aes128-kw-aes192.xml,-i",
  +"4019 2445 0277 5567,com/phaos/phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5.xml,-i",
  +"4019 2445 0277 5567,com/phaos/phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1.xml,-i"
  +
   );
   
   # Run the signature tests
  
  
  
  1.2       +203 -4    xml-security/c/src/tools/cipher/XencInteropResolver.cpp
  
  Index: XencInteropResolver.cpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/tools/cipher/XencInteropResolver.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XencInteropResolver.cpp	11 Nov 2003 11:31:15 -0000	1.1
  +++ XencInteropResolver.cpp	12 Nov 2003 05:25:38 -0000	1.2
  @@ -60,8 +60,8 @@
   /*
    * XSEC
    *
  - * InteropResolver := Class to resolve key elements into certificates for
  - *						merlin-18 interop test
  + * XencInteropResolver := Class to resolve key elements into certificates for
  + *						interop test
    *
    * $Id$
    *
  @@ -104,7 +104,7 @@
   
   
   // --------------------------------------------------------------------------------
  -//           Strings and keys
  +//           Merlin Xenc-Five keys and Strings
   // --------------------------------------------------------------------------------
   
   static XMLCh s_bobName[] = {
  @@ -140,6 +140,141 @@
   static char s_jebKey[] = "abcdefghijklmnopqrstuvwx";
   static char s_jedKey[] = "abcdefghijklmnopqrstuvwxyz012345";
   
  +// --------------------------------------------------------------------------------
  +//           Phaos xenc-three strings and keys
  +// --------------------------------------------------------------------------------
  +
  +static XMLCh s_phaosRSAName[] = {
  +	chLatin_m,
  +	chLatin_y,
  +	chDash,
  +	chLatin_r,
  +	chLatin_s,
  +	chLatin_a,
  +	chDash,
  +	chLatin_k,
  +	chLatin_e,
  +	chLatin_y,
  +	chNull
  +};
  +
  +static XMLCh s_phaosTripleDESName[] = {
  +	chLatin_m,
  +	chLatin_y,
  +	chDash,
  +	chLatin_t,
  +	chLatin_r,
  +	chLatin_i,
  +	chLatin_p,
  +	chLatin_l,
  +	chLatin_e,
  +	chLatin_d,
  +	chLatin_e,
  +	chLatin_s,
  +	chDash,
  +	chLatin_k,
  +	chLatin_e,
  +	chLatin_y,
  +	chNull
  +};
  +
  +static XMLCh s_phaos3DESName[] = {
  +	chLatin_m,
  +	chLatin_y,
  +	chDash,
  +	chDigit_3,
  +	chLatin_d,
  +	chLatin_e,
  +	chLatin_s,
  +	chDash,
  +	chLatin_k,
  +	chLatin_e,
  +	chLatin_y,
  +	chNull
  +};
  +
  +static XMLCh s_phaosAES128Name[] = {
  +	chLatin_m,
  +	chLatin_y,
  +	chDash,
  +	chLatin_a,
  +	chLatin_e,
  +	chLatin_s,
  +	chDigit_1,
  +	chDigit_2,
  +	chDigit_8,
  +	chDash,
  +	chLatin_k,
  +	chLatin_e,
  +	chLatin_y,
  +	chNull
  +};
  +
  +static XMLCh s_phaosAES192Name[] = {
  +	chLatin_m,
  +	chLatin_y,
  +	chDash,
  +	chLatin_a,
  +	chLatin_e,
  +	chLatin_s,
  +	chDigit_1,
  +	chDigit_9,
  +	chDigit_2,
  +	chDash,
  +	chLatin_k,
  +	chLatin_e,
  +	chLatin_y,
  +	chNull
  +};
  +
  +static XMLCh s_phaosAES256Name[] = {
  +	chLatin_m,
  +	chLatin_y,
  +	chDash,
  +	chLatin_a,
  +	chLatin_e,
  +	chLatin_s,
  +	chDigit_2,
  +	chDigit_5,
  +	chDigit_6,
  +	chDash,
  +	chLatin_k,
  +	chLatin_e,
  +	chLatin_y,
  +	chNull
  +};
  +
  +unsigned char s_phaos3DESKey[] = {
  +
  +	0xc8, 0x8f, 0x89, 0xd5, 0xfd, 0xe9, 0xb9, 0x80, 
  +	0x04, 0x46, 0x32, 0x1c, 0x4f, 0xab, 0xdf, 0x83, 
  +	0xa4, 0x62, 0xb6, 0x62, 0x97, 0xf2, 0x70, 0xf4
  +
  +};
  +
  +unsigned char s_phaosAES128Key[] = {
  +
  +	0xd3, 0x5f, 0xb2, 0xb9, 0x0d, 0xa1, 0xb8, 0xf4, 
  +	0xb5, 0xf9, 0x0b, 0xf4, 0x2c, 0x7f, 0xb3, 0x69
  +
  +};
  +
  +unsigned char s_phaosAES192Key[] = {
  +	
  +	0x22, 0x57, 0xee, 0x4b, 0x8d, 0x0b, 0xbd, 0x2b, 
  +	0x55, 0x53, 0x43, 0x23, 0xf1, 0xe3, 0xeb, 0xac, 
  +	0x61, 0xd5, 0x84, 0x06, 0xf8, 0xf3, 0x2f, 0xbe
  +
  +};
  +
  +unsigned char s_phaosAES256Key[] = {
  +	
  +	0x66, 0x16, 0x78, 0xbf, 0x74, 0x65, 0xc1, 0x39, 
  +	0x42, 0x10, 0xea, 0x48, 0xac, 0x77, 0xcb, 0x29, 
  +	0x5c, 0x89, 0x38, 0x10, 0xed, 0x10, 0x93, 0x8e, 
  +	0x40, 0x36, 0xad, 0xff, 0x8c, 0x51, 0xd5, 0xb0
  +
  +};
   
   // --------------------------------------------------------------------------------
   //           Construct/Destruct
  @@ -299,6 +434,70 @@
   				}
   				return k;
   			}
  +			// PHAOS Keys
  +			if (strEquals(s_phaos3DESName, name) || strEquals(s_phaosTripleDESName, name)) {
  +				XSECCryptoSymmetricKey * k = 
  +					XSECPlatformUtils::g_cryptoProvider->keySymmetric(XSECCryptoSymmetricKey::KEY_3DES_192);
  +				try {
  +					k->setKey(s_phaos3DESKey, 24);
  +				} catch (...) {
  +					delete k;
  +					throw;
  +				}
  +				return k;
  +			}
  +			if (strEquals(s_phaosAES128Name, name)) {
  +				XSECCryptoSymmetricKey * k = 
  +					XSECPlatformUtils::g_cryptoProvider->keySymmetric(XSECCryptoSymmetricKey::KEY_AES_128);
  +				try {
  +					k->setKey(s_phaosAES128Key, 16);
  +				} catch(...) {
  +					delete k;
  +					throw;
  +				}
  +				return k;
  +			}
  +			if (strEquals(s_phaosAES192Name, name)) {
  +				XSECCryptoSymmetricKey * k = 
  +					XSECPlatformUtils::g_cryptoProvider->keySymmetric(XSECCryptoSymmetricKey::KEY_AES_192);
  +				try {
  +					k->setKey(s_phaosAES192Key, 24);
  +				} catch(...) {
  +					delete k;
  +					throw;
  +				}
  +				return k;
  +			}
  +			if (strEquals(s_phaosAES256Name, name)) {
  +				XSECCryptoSymmetricKey * k = 
  +					XSECPlatformUtils::g_cryptoProvider->keySymmetric(XSECCryptoSymmetricKey::KEY_AES_256);
  +				try {
  +					k->setKey(s_phaosAES256Key, 32);
  +				} catch(...) {
  +					delete k;
  +					throw;
  +				}
  +				return k;
  +			}
  +
  +			if (strEquals(s_phaosRSAName, name)) {
  +
  +				// This is the Phaos RSA key
  +				BIO * rsaFile = createFileBIO(mp_baseURI, "rsa-priv-key.der");
  +				if (rsaFile == NULL)
  +					return NULL;
  +
  +				PKCS8_PRIV_KEY_INFO * p8inf;
  +				p8inf = d2i_PKCS8_PRIV_KEY_INFO_bio(rsaFile, NULL);
  +
  +				EVP_PKEY * pk = EVP_PKCS82PKEY(p8inf);
  +				OpenSSLCryptoKeyRSA * k = new OpenSSLCryptoKeyRSA(pk);
  +				PKCS8_PRIV_KEY_INFO_free(p8inf);
  +				BIO_free_all(rsaFile);
  +				return k;
  +
  +			}
  +
   
   			// If we get this far, we don't know it.  So look for EncryptedKey elements
   			// containing this name as a CarriedKeyName