blautenb    2003/11/11 01:06:56

  Modified:    c/Projects/VC6.0/Samples Samples.dsw
  Added:       c/Projects/VC6.0/Samples/simpleDecrypt simpleDecrypt.dsp
               c/Projects/VC6.0/Samples/simpleEncrypt simpleEncrypt.dsp
               c/src/samples simpleDecrypt.cpp simpleEncrypt.cpp
  Log:
  Creation of Encryption/Decryption sample apps
  
  Revision  Changes    Path
  1.2       +26 -2     xml-security/c/Projects/VC6.0/Samples/Samples.dsw
  
  Index: Samples.dsw
  ===================================================================
  RCS file: /home/cvs/xml-security/c/Projects/VC6.0/Samples/Samples.dsw,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Samples.dsw       2 Feb 2003 10:48:16 -0000       1.1
  +++ Samples.dsw       11 Nov 2003 09:06:56 -0000      1.2
  @@ -3,7 +3,7 @@
   
   
###############################################################################
   
  -Project: "simpleHMAC"=.\simpleHMAC\simpleHMAC.dsp - Package Owner=<4>
  +Project: "simpleDecrypt"=".\simpleDecrypt\simpleDecrypt.dsp" - Package 
Owner=<4>
   
   Package=<5>
   {{{
  @@ -15,7 +15,31 @@
   
   
###############################################################################
   
  -Project: "simpleValidate"=.\simpleValidate\simpleValidate.dsp - Package 
Owner=<4>
  +Project: "simpleEncrypt"=".\simpleEncrypt\simpleEncrypt.dsp" - Package 
Owner=<4>
  +
  +Package=<5>
  +{{{
  +}}}
  +
  +Package=<4>
  +{{{
  +}}}
  +
  
+###############################################################################
  +
  +Project: "simpleHMAC"=".\simpleHMAC\simpleHMAC.dsp" - Package Owner=<4>
  +
  +Package=<5>
  +{{{
  +}}}
  +
  +Package=<4>
  +{{{
  +}}}
  +
  
+###############################################################################
  +
  +Project: "simpleValidate"=".\simpleValidate\simpleValidate.dsp" - Package 
Owner=<4>
   
   Package=<5>
   {{{
  
  
  
  1.1                  
xml-security/c/Projects/VC6.0/Samples/simpleDecrypt/simpleDecrypt.dsp
  
  Index: simpleDecrypt.dsp
  ===================================================================
  # Microsoft Developer Studio Project File - Name="simpleDecrypt" - Package 
Owner=<4>
  # Microsoft Developer Studio Generated Build File, Format Version 6.00
  # ** DO NOT EDIT **
  
  # TARGTYPE "Win32 (x86) Console Application" 0x0103
  
  CFG=simpleDecrypt - Win32 Debug No Xalan
  !MESSAGE This is not a valid makefile. To build this project using NMAKE,
  !MESSAGE use the Export Makefile command and run
  !MESSAGE 
  !MESSAGE NMAKE /f "simpleDecrypt.mak".
  !MESSAGE 
  !MESSAGE You can specify a configuration when running NMAKE
  !MESSAGE by defining the macro CFG on the command line. For example:
  !MESSAGE 
  !MESSAGE NMAKE /f "simpleDecrypt.mak" CFG="simpleDecrypt - Win32 Debug No 
Xalan"
  !MESSAGE 
  !MESSAGE Possible choices for configuration are:
  !MESSAGE 
  !MESSAGE "simpleDecrypt - Win32 Release" (based on "Win32 (x86) Console 
Application")
  !MESSAGE "simpleDecrypt - Win32 Debug" (based on "Win32 (x86) Console 
Application")
  !MESSAGE "simpleDecrypt - Win32 Debug No Xalan" (based on "Win32 (x86) 
Console Application")
  !MESSAGE "simpleDecrypt - Win32 Release No Xalan" (based on "Win32 (x86) 
Console Application")
  !MESSAGE 
  
  # Begin Project
  # PROP AllowPerConfigDependencies 0
  # PROP Scc_ProjName ""
  # PROP Scc_LocalPath ""
  CPP=cl.exe
  RSC=rc.exe
  
  !IF  "$(CFG)" == "simpleDecrypt - Win32 Release"
  
  # PROP BASE Use_MFC 0
  # PROP BASE Use_Debug_Libraries 0
  # PROP BASE Output_Dir "Release"
  # PROP BASE Intermediate_Dir "Release"
  # PROP BASE Target_Dir ""
  # PROP Use_MFC 0
  # PROP Use_Debug_Libraries 0
  # PROP Output_Dir "..\..\..\..\Build\Win32\vc6\Release"
  # PROP Intermediate_Dir "..\..\..\..\Build\Win32\vc6\Release\obj"
  # PROP Ignore_Export_Lib 0
  # PROP Target_Dir ""
  # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D 
"_MBCS" /YX /FD /c
  # ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "..\..\..\..\include" /D "WIN32" /D 
"NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
  # ADD BASE RSC /l 0xc09 /d "NDEBUG"
  # ADD RSC /l 0xc09 /d "NDEBUG"
  BSC32=bscmake.exe
  # ADD BASE BSC32 /nologo
  # ADD BSC32 /nologo
  LINK32=link.exe
  # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib /nologo /subsystem:console /machine:I386
  # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib xerces-c_2.lib Xalan-C_1.lib 
../../../../Build/Win32/vc6/Release/xsec_1.lib libeay32.lib /nologo 
/subsystem:console /machine:I386
  
  !ELSEIF  "$(CFG)" == "simpleDecrypt - Win32 Debug"
  
  # PROP BASE Use_MFC 0
  # PROP BASE Use_Debug_Libraries 1
  # PROP BASE Output_Dir "Debug"
  # PROP BASE Intermediate_Dir "Debug"
  # PROP BASE Target_Dir ""
  # PROP Use_MFC 2
  # PROP Use_Debug_Libraries 1
  # PROP Output_Dir "..\..\..\..\Build\Win32\vc6\Debug"
  # PROP Intermediate_Dir "..\..\..\..\Build\Win32\vc6\Debug\obj"
  # PROP Ignore_Export_Lib 0
  # PROP Target_Dir ""
  # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D 
"_CONSOLE" /D "_MBCS" /YX /FD /GZ  /c
  # ADD CPP /nologo /MDd /W3 /Gm /GR /GX /ZI /Od /I "..\..\..\..\include" /D 
"WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_AFXDLL" /YX /FD /GZ  /c
  # ADD BASE RSC /l 0xc09 /d "_DEBUG"
  # ADD RSC /l 0xc09 /d "_DEBUG" /d "_AFXDLL"
  BSC32=bscmake.exe
  # ADD BASE BSC32 /nologo
  # ADD BSC32 /nologo
  LINK32=link.exe
  # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
  # ADD LINK32 libeay32.lib xerces-c_2D.lib Xalan-C_1D.lib 
../../../../Build/Win32/vc6/Debug/xsec_1D.lib /nologo /subsystem:console /debug 
/machine:I386 /pdbtype:sept
  
  !ELSEIF  "$(CFG)" == "simpleDecrypt - Win32 Debug No Xalan"
  
  # PROP BASE Use_MFC 2
  # PROP BASE Use_Debug_Libraries 1
  # PROP BASE Output_Dir "Debug No Xalan"
  # PROP BASE Intermediate_Dir "Debug No Xalan"
  # PROP BASE Ignore_Export_Lib 0
  # PROP BASE Target_Dir ""
  # PROP Use_MFC 2
  # PROP Use_Debug_Libraries 1
  # PROP Output_Dir "..\..\..\..\Build\Win32\vc6\Debug"
  # PROP Intermediate_Dir "..\..\..\..\Build\Win32\vc6\Debug\obj"
  # PROP Ignore_Export_Lib 0
  # PROP Target_Dir ""
  # ADD BASE CPP /nologo /MDd /W3 /Gm /GR /GX /ZI /Od /I "..\..\..\..\include" 
/D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_AFXDLL" /YX /FD /GZ  /c
  # ADD CPP /nologo /MDd /W3 /Gm /GR /GX /ZI /Od /I "..\..\..\..\include" /D 
"WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_AFXDLL" /YX /FD /GZ  /c
  # ADD BASE RSC /l 0xc09 /d "_DEBUG" /d "_AFXDLL"
  # ADD RSC /l 0xc09 /d "_DEBUG" /d "_AFXDLL"
  BSC32=bscmake.exe
  # ADD BASE BSC32 /nologo
  # ADD BSC32 /nologo
  LINK32=link.exe
  # ADD BASE LINK32 libeay32.lib xerces-c_2D.lib Xalan-C_1D.lib 
../../../../Build/Win32/vc6/Debug/xsec_1D.lib /nologo /subsystem:console /debug 
/machine:I386 /pdbtype:sept
  # ADD LINK32 libeay32.lib xerces-c_2D.lib Xalan-C_1D.lib 
../../../../Build/Win32/vc6/Debug/xsec_1D.lib /nologo /subsystem:console /debug 
/machine:I386 /pdbtype:sept
  
  !ELSEIF  "$(CFG)" == "simpleDecrypt - Win32 Release No Xalan"
  
  # PROP BASE Use_MFC 0
  # PROP BASE Use_Debug_Libraries 0
  # PROP BASE Output_Dir "Release No Xalan"
  # PROP BASE Intermediate_Dir "Release No Xalan"
  # PROP BASE Ignore_Export_Lib 0
  # PROP BASE Target_Dir ""
  # PROP Use_MFC 0
  # PROP Use_Debug_Libraries 0
  # PROP Output_Dir "..\..\..\..\Build\Win32\vc6\Release"
  # PROP Intermediate_Dir "..\..\..\..\Build\Win32\vc6\Release\obj"
  # PROP Ignore_Export_Lib 0
  # PROP Target_Dir ""
  # ADD BASE CPP /nologo /MD /W3 /GR /GX /O2 /I "..\..\..\..\include" /D 
"WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
  # ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "..\..\..\..\include" /D "WIN32" /D 
"NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
  # ADD BASE RSC /l 0xc09 /d "NDEBUG"
  # ADD RSC /l 0xc09 /d "NDEBUG"
  BSC32=bscmake.exe
  # ADD BASE BSC32 /nologo
  # ADD BSC32 /nologo
  LINK32=link.exe
  # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib xerces-c_2.lib Xalan-C_1.lib 
../../../../Build/Win32/vc6/Release/xsec_1.lib libeay32.lib /nologo 
/subsystem:console /machine:I386
  # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib xerces-c_2.lib Xalan-C_1.lib 
../../../../Build/Win32/vc6/Release/xsec_1.lib libeay32.lib /nologo 
/subsystem:console /machine:I386
  
  !ENDIF 
  
  # Begin Target
  
  # Name "simpleDecrypt - Win32 Release"
  # Name "simpleDecrypt - Win32 Debug"
  # Name "simpleDecrypt - Win32 Debug No Xalan"
  # Name "simpleDecrypt - Win32 Release No Xalan"
  # Begin Group "Source Files"
  
  # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
  # Begin Source File
  
  SOURCE=..\..\..\..\src\samples\IOStreamOutputter.cpp
  # End Source File
  # Begin Source File
  
  SOURCE=..\..\..\..\src\samples\simpleDecrypt.cpp
  # End Source File
  # End Group
  # Begin Group "Header Files"
  
  # PROP Default_Filter "h;hpp;hxx;hm;inl"
  # Begin Source File
  
  SOURCE=..\..\..\..\src\samples\IOStreamOutputter.hpp
  # End Source File
  # End Group
  # Begin Group "Resource Files"
  
  # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
  # End Group
  # End Target
  # End Project
  
  
  
  1.1                  
xml-security/c/Projects/VC6.0/Samples/simpleEncrypt/simpleEncrypt.dsp
  
  Index: simpleEncrypt.dsp
  ===================================================================
  # Microsoft Developer Studio Project File - Name="simpleEncrypt" - Package 
Owner=<4>
  # Microsoft Developer Studio Generated Build File, Format Version 6.00
  # ** DO NOT EDIT **
  
  # TARGTYPE "Win32 (x86) Console Application" 0x0103
  
  CFG=simpleEncrypt - Win32 Debug No Xalan
  !MESSAGE This is not a valid makefile. To build this project using NMAKE,
  !MESSAGE use the Export Makefile command and run
  !MESSAGE 
  !MESSAGE NMAKE /f "simpleEncrypt.mak".
  !MESSAGE 
  !MESSAGE You can specify a configuration when running NMAKE
  !MESSAGE by defining the macro CFG on the command line. For example:
  !MESSAGE 
  !MESSAGE NMAKE /f "simpleEncrypt.mak" CFG="simpleEncrypt - Win32 Debug No 
Xalan"
  !MESSAGE 
  !MESSAGE Possible choices for configuration are:
  !MESSAGE 
  !MESSAGE "simpleEncrypt - Win32 Release" (based on "Win32 (x86) Console 
Application")
  !MESSAGE "simpleEncrypt - Win32 Debug" (based on "Win32 (x86) Console 
Application")
  !MESSAGE "simpleEncrypt - Win32 Debug No Xalan" (based on "Win32 (x86) 
Console Application")
  !MESSAGE "simpleEncrypt - Win32 Release No Xalan" (based on "Win32 (x86) 
Console Application")
  !MESSAGE 
  
  # Begin Project
  # PROP AllowPerConfigDependencies 0
  # PROP Scc_ProjName ""
  # PROP Scc_LocalPath ""
  CPP=cl.exe
  RSC=rc.exe
  
  !IF  "$(CFG)" == "simpleEncrypt - Win32 Release"
  
  # PROP BASE Use_MFC 0
  # PROP BASE Use_Debug_Libraries 0
  # PROP BASE Output_Dir "Release"
  # PROP BASE Intermediate_Dir "Release"
  # PROP BASE Target_Dir ""
  # PROP Use_MFC 0
  # PROP Use_Debug_Libraries 0
  # PROP Output_Dir "..\..\..\..\Build\Win32\vc6\Release"
  # PROP Intermediate_Dir "..\..\..\..\Build\Win32\vc6\Release\obj"
  # PROP Ignore_Export_Lib 0
  # PROP Target_Dir ""
  # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D 
"_MBCS" /YX /FD /c
  # ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "..\..\..\..\include" /D "WIN32" /D 
"NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
  # ADD BASE RSC /l 0xc09 /d "NDEBUG"
  # ADD RSC /l 0xc09 /d "NDEBUG"
  BSC32=bscmake.exe
  # ADD BASE BSC32 /nologo
  # ADD BSC32 /nologo
  LINK32=link.exe
  # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib /nologo /subsystem:console /machine:I386
  # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib xerces-c_2.lib Xalan-C_1.lib 
../../../../Build/Win32/vc6/Release/xsec_1.lib libeay32.lib /nologo 
/subsystem:console /machine:I386
  
  !ELSEIF  "$(CFG)" == "simpleEncrypt - Win32 Debug"
  
  # PROP BASE Use_MFC 0
  # PROP BASE Use_Debug_Libraries 1
  # PROP BASE Output_Dir "Debug"
  # PROP BASE Intermediate_Dir "Debug"
  # PROP BASE Target_Dir ""
  # PROP Use_MFC 2
  # PROP Use_Debug_Libraries 1
  # PROP Output_Dir "..\..\..\..\Build\Win32\vc6\Debug"
  # PROP Intermediate_Dir "..\..\..\..\Build\Win32\vc6\Debug\obj"
  # PROP Ignore_Export_Lib 0
  # PROP Target_Dir ""
  # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D 
"_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
  # ADD CPP /nologo /MDd /W3 /Gm /GR /GX /ZI /Od /I "..\..\..\..\include" /D 
"WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_AFXDLL" /YX /FD /GZ /c
  # ADD BASE RSC /l 0xc09 /d "_DEBUG"
  # ADD RSC /l 0xc09 /d "_DEBUG" /d "_AFXDLL"
  BSC32=bscmake.exe
  # ADD BASE BSC32 /nologo
  # ADD BSC32 /nologo
  LINK32=link.exe
  # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
  # ADD LINK32 libeay32.lib xerces-c_2D.lib Xalan-C_1D.lib 
../../../../Build/Win32/vc6/Debug/xsec_1D.lib /nologo /subsystem:console /debug 
/machine:I386 /pdbtype:sept
  
  !ELSEIF  "$(CFG)" == "simpleEncrypt - Win32 Debug No Xalan"
  
  # PROP BASE Use_MFC 2
  # PROP BASE Use_Debug_Libraries 1
  # PROP BASE Output_Dir "Debug No Xalan"
  # PROP BASE Intermediate_Dir "Debug No Xalan"
  # PROP BASE Ignore_Export_Lib 0
  # PROP BASE Target_Dir ""
  # PROP Use_MFC 2
  # PROP Use_Debug_Libraries 1
  # PROP Output_Dir "..\..\..\..\Build\Win32\vc6\Debug"
  # PROP Intermediate_Dir "..\..\..\..\Build\Win32\vc6\Debug\obj"
  # PROP Ignore_Export_Lib 0
  # PROP Target_Dir ""
  # ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\include" /D 
"WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_AFXDLL" /YX /FD /GZ /c
  # ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\include" /D 
"WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_AFXDLL" /YX /FD /GZ /c
  # ADD BASE RSC /l 0xc09 /d "_DEBUG" /d "_AFXDLL"
  # ADD RSC /l 0xc09 /d "_DEBUG" /d "_AFXDLL"
  BSC32=bscmake.exe
  # ADD BASE BSC32 /nologo
  # ADD BSC32 /nologo
  LINK32=link.exe
  # ADD BASE LINK32 xerces-c_2D.lib Xalan-C_1D.lib 
../../../../Build/Win32/vc6/Debug/xsec_1D.lib /nologo /subsystem:console /debug 
/machine:I386 /pdbtype:sept
  # ADD LINK32 xerces-c_2D.lib ../../../../Build/Win32/vc6/Debug/xsec_1D.lib 
/nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
  
  !ELSEIF  "$(CFG)" == "simpleEncrypt - Win32 Release No Xalan"
  
  # PROP BASE Use_MFC 0
  # PROP BASE Use_Debug_Libraries 0
  # PROP BASE Output_Dir "Release No Xalan"
  # PROP BASE Intermediate_Dir "Release No Xalan"
  # PROP BASE Ignore_Export_Lib 0
  # PROP BASE Target_Dir ""
  # PROP Use_MFC 0
  # PROP Use_Debug_Libraries 0
  # PROP Output_Dir "..\..\..\..\Build\Win32\vc6\Release"
  # PROP Intermediate_Dir "..\..\..\..\Build\Win32\vc6\Release\obj"
  # PROP Ignore_Export_Lib 0
  # PROP Target_Dir ""
  # ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\include" /D "WIN32" /D 
"NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
  # ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\include" /D "WIN32" /D 
"NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
  # ADD BASE RSC /l 0xc09 /d "NDEBUG"
  # ADD RSC /l 0xc09 /d "NDEBUG"
  BSC32=bscmake.exe
  # ADD BASE BSC32 /nologo
  # ADD BSC32 /nologo
  LINK32=link.exe
  # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib xerces-c_2.lib Xalan-C_1.lib 
../../../../Build/Win32/vc6/Release/xsec_1.lib /nologo /subsystem:console 
/machine:I386
  # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib xerces-c_2.lib ../../../../Build/Win32/vc6/Release/xsec_1.lib 
/nologo /subsystem:console /machine:I386
  
  !ENDIF 
  
  # Begin Target
  
  # Name "simpleEncrypt - Win32 Release"
  # Name "simpleEncrypt - Win32 Debug"
  # Name "simpleEncrypt - Win32 Debug No Xalan"
  # Name "simpleEncrypt - Win32 Release No Xalan"
  # Begin Group "Source Files"
  
  # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
  # Begin Source File
  
  SOURCE=..\..\..\..\src\samples\IOStreamOutputter.cpp
  # End Source File
  # Begin Source File
  
  SOURCE=..\..\..\..\src\samples\simpleEncrypt.cpp
  # End Source File
  # End Group
  # Begin Group "Header Files"
  
  # PROP Default_Filter "h;hpp;hxx;hm;inl"
  # Begin Source File
  
  SOURCE=..\..\..\..\src\samples\IOStreamOutputter.hpp
  # End Source File
  # End Group
  # Begin Group "Resource Files"
  
  # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
  # End Group
  # End Target
  # End Project
  
  
  
  1.1                  xml-security/c/src/samples/simpleDecrypt.cpp
  
  Index: simpleDecrypt.cpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2002-2003 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "<WebSig>" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation and was
   * originally based on software copyright (c) 2001, Institute for
   * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>.
   * The development of this software was partly funded by the European 
   * Commission in the <WebSig> project in the ISIS Programme. 
   * For more information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  /*
   * XSEC
   *
   * SimpleEncrypt := An application to generate an XML document (via Xerces) 
and encrypt
   *                                    a portion of it
   *
   * $Id: simpleDecrypt.cpp,v 1.1 2003/11/11 09:06:56 blautenb Exp $
   *
   */
  
  #include "IOStreamOutputter.hpp"
  
  // Xerces
  
  #include <xercesc/util/PlatformUtils.hpp>
  #include <xercesc/parsers/XercesDOMParser.hpp>
  #include <xercesc/framework/MemBufInputSource.hpp>
  
  // XML-Security-C (XSEC)
  
  #include <xsec/framework/XSECProvider.hpp>
  #include <xsec/framework/XSECException.hpp>
  #include <xsec/xenc/XENCCipher.hpp>
  
  #include <xsec/enc/OpenSSL/OpenSSLCryptoKeyRSA.hpp>
  
  // Xalan
  
  #ifndef XSEC_NO_XALAN
  #include <xalanc/XalanTransformer/XalanTransformer.hpp>
  XALAN_USING_XALAN(XalanTransformer)
  #endif
  
  // OpenSSL
  
  #include <openssl/bio.h>
  #include <openssl/evp.h>
  #include <openssl/pem.h>
  
  XERCES_CPP_NAMESPACE_USE
  
  char letter[] = "\n\
  <Letter>\n\
  <ToAddress>The address of the Recipient</ToAddress>\n\
  <FromAddress>The address of the Sender</FromAddress>\n\
  <xenc:EncryptedData Type=\"http://www.w3.org/2001/04/xmlenc#Element\"; 
xmlns:xenc=\"http://www.w3.org/2001/04/xmlenc#\";>\n\
  <xenc:EncryptionMethod 
Algorithm=\"http://www.w3.org/2001/04/xmlenc#tripledes-cbc\"/>\n\
  <ds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\";>\n\
  <xenc:EncryptedKey xmlns:xenc=\"http://www.w3.org/2001/04/xmlenc#\";>\n\
  <xenc:EncryptionMethod 
Algorithm=\"http://www.w3.org/2001/04/xmlenc#rsa-1_5\"/>\n\
  <xenc:CipherData>\n\
  
<xenc:CipherValue>UDH9I9k6dRvlIS7fHLMONtlP24mqEDPzsjSYUg4X5SSzUFskiVaOIzhYPeF21ZeG\n\
  MCmdo6wsu6TQB0XebmvJR2wgvYqDd2L2IbXZ1zj2/G7FbVsB/GSGxuQTFw22aMFd\n\
  l47P8bKjxX8cUwwYFzbGAUfkgeQp5DglmnJYJPO1cTw=\n\
  </xenc:CipherValue>\n\
  </xenc:CipherData>\n\
  </xenc:EncryptedKey>\n\
  </ds:KeyInfo>\n\
  <xenc:CipherData>\n\
  
<xenc:CipherValue>Q7M6QhZOqjyYXdUDOw809dGEJWkyAygRv7r3EJ8FlcY7dYpn78ON79N/ZB5wJxQt\n\
  koyHvWimPWkNRlKGP10DJ42PIGDvuTnTBFHCKbvaMrEjkll8PUd8zHQ0OJIaWIYi\n\
  AKydplJy2rCzppwn0bI0YQ==\n\
  </xenc:CipherValue>\n\
  </xenc:CipherData>\n\
  </xenc:EncryptedData></Letter>";
  
  
  // PKCS8 PEM encoded PrivateKey structure (not Encrypted)
  
  char s_privateKey[] = "\n\
  -----BEGIN RSA PRIVATE KEY-----\n\
  MIICXAIBAAKBgQDQj3pktZckAzwshRnfvLhz3daNU6xpAzoHo3qjCftxDwH1RynP\n\
  A5eycJVkV8mwH2C1PFktpjtQTZ2CvPjuKmUV5zEvmYzuIo6SWYaVZN/PJjzsEZMa\n\
  VA+U8GhfX1YF/rsuFzXCi8r6FVd3LN//pXHEwoDGdJUdlpdVEuX1iFKlNQIDAQAB\n\
  AoGAYQ7Uc7e6Xa0PvNw4XVHzOSC870pISxqQT+u5b9R+anAEhkQW5dsTJpyUOX1N\n\
  RCRmGhG6oq7gnY9xRN1yr0uVfJNtc9/HnzJL7L1jeJC8Ub+zbEBvNuPDL2P21ArW\n\
  tcXRycUlfRCRBLop7rfOYPXsjtboAGnQY/6hK4rOF4XGrQUCQQD3Euj+0mZqRRZ4\n\
  M1yN2wVP0mKOMg2i/HZXaNeVd9X/wyBgK6b7BxHf6onf/mIBWnJnRBlvdCrSdhuT\n\
  lPKEoSgvAkEA2BhfWwQihqD4qJcV65nfosjzOZG41rHX69nIqHI7Ejx5ZgeQByH9\n\
  Ym96yXoSpZj9ZlFsJYNogTBBnUBjs+jL2wJAFjpVS9eR7y2X/+hfA0QZDj1XMIPA\n\
  RlGANAzymDfXwNLFLuG+fAb+zK5FCSnRl12TvUabIzPIRnbptDVKPDRjcQJBALn8\n\
  0CVv+59P8HR6BR3QRBDBT8Xey+3NB4Aw42lHV9wsPHg6ThY1hPYx6MZ70IzCjmZ/\n\
  8cqfvVRjijWj86wm0z0CQFKfRfBRraOZqfmOiAB4+ILhbJwKBBO6avX9TPgMYkyN\n\
  mWKCxS+9fPiy1iI+G+B9xkw2gJ9i8P81t7fsOvdTDFA=\n\
  -----END RSA PRIVATE KEY-----";
  
  
  int main (int argc, char **argv) {
  
        try {
                XMLPlatformUtils::Initialize();
  #ifndef XSEC_NO_XALAN
                XalanTransformer::initialize();
  #endif
                XSECPlatformUtils::Initialise();
        }
        catch (const XMLException &e) {
  
                cerr << "Error during initialisation of Xerces" << endl;
                cerr << "Error Message = : "
                     << e.getMessage() << endl;
  
        }
  
        // Use xerces to parse the document
        XercesDOMParser * parser = new XercesDOMParser;
        parser->setDoNamespaces(true);
        parser->setCreateEntityReferenceNodes(true);
        parser->setDoSchema(true);
  
        // Create an input source
  
        MemBufInputSource* memIS = new MemBufInputSource ((const XMLByte*) 
letter, strlen(letter), "XSECMem");
  
        int errorCount = 0;
  
        parser->parse(*memIS);
      errorCount = parser->getErrorCount();
      if (errorCount > 0) {
                cerr << "Error parsing input document\n";
                exit (1);
        }
  
      DOMDocument *doc = parser->getDocument();
  
        /* Decrypt Operations */
  
        try {
  
                /* Create the cipher object that we need */
  
                XSECProvider prov;
                XENCCipher *cipher;
  
                cipher = prov.newCipher(doc);
  
                /* Load the private key via OpenSSL and then wrap in an 
OpenSSLCrypto construct */
                BIO * bioMem = BIO_new(BIO_s_mem());
                BIO_puts(bioMem, s_privateKey);
                EVP_PKEY * pk = PEM_read_bio_PrivateKey(bioMem, NULL, NULL, 
NULL);
  
                /* NOTE : For simplicity - no error checking here */
  
                OpenSSLCryptoKeyRSA * k = new OpenSSLCryptoKeyRSA(pk);
                cipher->setKEK(k);
  
                /* Find the EncryptedData node */
                DOMNode * encryptedNode = findXENCNode(doc, "EncryptedData");
  
                /* Do the decrypt */
                cipher->decryptElement((DOMElement *) encryptedNode);
  
        }
  
        catch (XSECException &e)
        {
                char * msg = XMLString::transcode(e.getMsg());
                cerr << "An error occurred during an encryption operation\n   
Message: "
                << msg << endl;
                exit(1);
                
        }
  
        /* Output */
        docSetup(doc);
        cout << doc;
  
        return 0;
  
  }
  
  
  1.1                  xml-security/c/src/samples/simpleEncrypt.cpp
  
  Index: simpleEncrypt.cpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2002-2003 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "<WebSig>" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation and was
   * originally based on software copyright (c) 2001, Institute for
   * Data Communications Systems, <http://www.nue.et-inf.uni-siegen.de/>.
   * The development of this software was partly funded by the European 
   * Commission in the <WebSig> project in the ISIS Programme. 
   * For more information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  /*
   * XSEC
   *
   * SimpleEncrypt := An application to generate an XML document (via Xerces) 
and encrypt
   *                                    a portion of it
   *
   * $Id: simpleEncrypt.cpp,v 1.1 2003/11/11 09:06:56 blautenb Exp $
   *
   */
  
  #include "IOStreamOutputter.hpp"
  
  // Xerces
  
  #include <xercesc/util/PlatformUtils.hpp>
  
  // XML-Security-C (XSEC)
  
  #include <xsec/framework/XSECProvider.hpp>
  #include <xsec/framework/XSECException.hpp>
  #include <xsec/xenc/XENCCipher.hpp>
  #include <xsec/xenc/XENCEncryptedData.hpp>
  #include <xsec/xenc/XENCEncryptedKey.hpp>
  
  #include <xsec/enc/OpenSSL/OpenSSLCryptoSymmetricKey.hpp>
  #include <xsec/enc/OpenSSL/OpenSSLCryptoX509.hpp>
  
  // Xalan
  
  #ifndef XSEC_NO_XALAN
  #include <xalanc/XalanTransformer/XalanTransformer.hpp>
  XALAN_USING_XALAN(XalanTransformer)
  #endif
  
  // OpenSSL
  
  #include <openssl/rand.h>
  
  XERCES_CPP_NAMESPACE_USE
  
  DOMElement * g_toEncrypt;
  static unsigned char s_key[] = "abcdefghijklmnopqrstuvwx";
  
  char cert[] = "\n\
  MIIC7jCCAq6gAwIBAgICEAMwCQYHKoZIzjgEAzB5MQswCQYDVQQGEwJBVTEMMAoG\n\
  A1UECBMDVmljMRIwEAYDVQQHEwlNZWxib3VybmUxHzAdBgNVBAoTFlhNTC1TZWN1\n\
  cml0eS1DIFByb2plY3QxEDAOBgNVBAsTB1hTRUMtQ0ExFTATBgNVBAMTDFhTRUMt\n\
  Q0EgUm9vdDAeFw0wMjEyMTIxMDEzMTlaFw0xMjEyMDkxMDEzMTlaMFYxCzAJBgNV\n\
  BAYTAkFVMQwwCgYDVQQIEwNWaWMxHzAdBgNVBAoTFlhNTC1TZWN1cml0eS1DIFBy\n\
  b2plY3QxGDAWBgNVBAMTD1JTQSBTYW1wbGUgQ2VydDCBnzANBgkqhkiG9w0BAQEF\n\
  AAOBjQAwgYkCgYEA0I96ZLWXJAM8LIUZ37y4c93WjVOsaQM6B6N6own7cQ8B9Ucp\n\
  zwOXsnCVZFfJsB9gtTxZLaY7UE2dgrz47iplFecxL5mM7iKOklmGlWTfzyY87BGT\n\
  GlQPlPBoX19WBf67Lhc1wovK+hVXdyzf/6VxxMKAxnSVHZaXVRLl9YhSpTUCAwEA\n\
  AaOCAQEwgf4wCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5l\n\
  cmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFGq6U1SwYNRyTJGAwARirEdavfXB\n\
  MIGjBgNVHSMEgZswgZiAFBKNX9CsAIsjUIFmVq4wE4wlOGC5oX2kezB5MQswCQYD\n\
  VQQGEwJBVTEMMAoGA1UECBMDVmljMRIwEAYDVQQHEwlNZWxib3VybmUxHzAdBgNV\n\
  BAoTFlhNTC1TZWN1cml0eS1DIFByb2plY3QxEDAOBgNVBAsTB1hTRUMtQ0ExFTAT\n\
  BgNVBAMTDFhTRUMtQ0EgUm9vdIIBADAJBgcqhkjOOAQDAy8AMCwCFGoKhVPnDeg9\n\
  nbEFo2KDDlG/NiUqAhRJxQPLXDhehQjn6eqQWOUlkFtA9A==";
  
  
  DOMDocument *createLetter(DOMImplementation *impl) {
  
        DOMDocument *doc = impl->createDocument(
                  0,
                  MAKE_UNICODE_STRING("Letter"),             
                  NULL);  
  
      DOMElement *rootElem = doc->getDocumentElement();
  
        // Add the ToAddress
  
        DOMElement *addressElem = 
doc->createElement(MAKE_UNICODE_STRING("ToAddress"));
        rootElem->appendChild(doc->createTextNode(MAKE_UNICODE_STRING("\n")));
        rootElem->appendChild(addressElem);
        addressElem->appendChild(doc->createTextNode(
                MAKE_UNICODE_STRING("The address of the Recipient")));
  
        // Add the FromAddress
        addressElem = doc->createElement(MAKE_UNICODE_STRING("FromAddress"));
        rootElem->appendChild(doc->createTextNode(MAKE_UNICODE_STRING("\n")));
        rootElem->appendChild(addressElem);
        addressElem->appendChild(doc->createTextNode(
                MAKE_UNICODE_STRING("The address of the Sender")));
  
        // Add some text
        DOMElement *textElem = doc->createElement(MAKE_UNICODE_STRING("Text"));
        rootElem->appendChild(doc->createTextNode(MAKE_UNICODE_STRING("\n")));
        rootElem->appendChild(textElem);
        textElem->appendChild(doc->createTextNode(
                MAKE_UNICODE_STRING("\nTo whom it may concern, my secret \
  credit card number is : \n  0123 4567 89ab cdef\n\n...\n")));
  
        g_toEncrypt = textElem;
        return doc;
  
  }
  
  int main (int argc, char **argv) {
  
        try {
                XMLPlatformUtils::Initialize();
  #ifndef XSEC_NO_XALAN
                XalanTransformer::initialize();
  #endif
                XSECPlatformUtils::Initialise();
        }
        catch (const XMLException &e) {
  
                cerr << "Error during initialisation of Xerces" << endl;
                cerr << "Error Message = : "
                     << e.getMessage() << endl;
  
        }
  
        // Create a blank Document
  
      DOMImplementation *impl = 
                
DOMImplementationRegistry::getDOMImplementation(MAKE_UNICODE_STRING("Core"));
        
        // Create a letter
        DOMDocument *doc = createLetter(impl);
  
        try {
                
                /* Create the cipher object that we need */
  
                XSECProvider prov;
                XENCCipher *cipher;
  
                cipher = prov.newCipher(doc);
  
                /* Now generate a random key that we can use to encrypt the 
element
                 *
                 * First check the status of the random generation in OpenSSL
                 */
  
                if (RAND_status() != 1) {
  
                        cerr << "OpenSSL random generation not properly 
initialised" << endl;
                        exit(1);
  
                }
  
                unsigned char keyBuf[24];
                if (RAND_bytes(keyBuf, 24) == 0) {
  
                        cerr << "Error obtaining 24 bytes of random from 
OpenSSL" << endl;
                        exit(1);
  
                }
  
                /* Wrap this in a Symmetric 3DES key */
  
                OpenSSLCryptoSymmetricKey * key = 
                        new 
OpenSSLCryptoSymmetricKey(XSECCryptoSymmetricKey::KEY_3DES_192);
                key->setKey(keyBuf, 24);
                cipher->setKey(key);
  
                /* Encrypt the element that needs to be hidden */
                cipher->encryptElement(g_toEncrypt, ENCRYPT_3DES_CBC);
  
                /* Now lets create an EncryptedKey element to hold the 
generated key */
  
                /* First lets load the public key in the certificate */
                OpenSSLCryptoX509 * x509 = new OpenSSLCryptoX509();
                x509->loadX509Base64Bin(cert, strlen(cert));
        
                /* Now set the Key Encrypting Key (NOTE: Not the normal key) */
                cipher->setKEK(x509->clonePublicKey());
                
  
                /* Now do the encrypt, using RSA with PKCS 1.5 padding */
  
                XENCEncryptedKey * encryptedKey = 
                        cipher->encryptKey(keyBuf, 24, ENCRYPT_RSA_15);
  
                /*
                 * Add the encrypted Key to the previously created 
EncryptedData, which
                 * we first retrieve from the cipher object.  This will 
automatically create
                 * the appropriate <KeyInfo> element within the EncryptedData
                 */
  
                XENCEncryptedData * encryptedData = cipher->getEncryptedData();
                encryptedData->appendEncryptedKey(encryptedKey);
                
  
        }
  
        catch (XSECException &e)
        {
                char * msg = XMLString::transcode(e.getMsg());
                cerr << "An error occurred during an encryption operation\n   
Message: "
                << msg << endl;
                exit(1);
                
        }
  
        /* Output */
        docSetup(doc);
        cout << doc;
  
        return 0;
  
  }
  
  
  

Reply via email to