You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
(20) |
Apr
(14) |
May
(3) |
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2010 |
Jan
|
Feb
|
Mar
|
Apr
(22) |
May
(35) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(27) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <pgi...@li...> - 2011-06-10 02:23:04
|
Revision: 149 http://pgina.svn.sourceforge.net/pgina/?rev=149&view=rev Author: hairlesshobo Date: 2011-06-10 02:22:58 +0000 (Fri, 10 Jun 2011) Log Message: ----------- Updated Changelog.txt to include login/logout hooks Modified Paths: -------------- pGina-2.x/doc/Changelog.txt Modified: pGina-2.x/doc/Changelog.txt =================================================================== --- pGina-2.x/doc/Changelog.txt 2011-06-10 02:21:28 UTC (rev 148) +++ pGina-2.x/doc/Changelog.txt 2011-06-10 02:22:58 UTC (rev 149) @@ -1,6 +1,9 @@ v2.1.2 Future Release =============================== * Added ability to disable registry encryption + * Added login/logout hook support (fixed MySQL logger plugin, + RADIUS accounting, and many other plugins that require hooks). + Hooks patch compliments of Evan Horne. * Added option to either execute scripts before mapping, or mapping before scripts * Fixed remote script execution bug, now the app checks This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pgi...@li...> - 2011-06-10 02:21:35
|
Revision: 148 http://pgina.svn.sourceforge.net/pgina/?rev=148&view=rev Author: hairlesshobo Date: 2011-06-10 02:21:28 +0000 (Fri, 10 Jun 2011) Log Message: ----------- Changed version to 2.2 Modified Paths: -------------- pGina-2.x/doc/About.txt pGina-2.x/doc/Changelog.txt pGina-2.x/doc/Todo.txt pGina-2.x/src/ConfigApp/Properties/AssemblyInfo.cs pGina-2.x/src/pGinaSrvCS/Properties/AssemblyInfo.cs pGina-2.x/src/pGinaVersion.h pGina-2.x/src/pGinaVersion.nsi Modified: pGina-2.x/doc/About.txt =================================================================== --- pGina-2.x/doc/About.txt 2011-06-10 02:14:19 UTC (rev 147) +++ pGina-2.x/doc/About.txt 2011-06-10 02:21:28 UTC (rev 148) @@ -1,4 +1,4 @@ -pGina-2.1.1 +pGina-2.1.2 pGina-2.x, as well as the configuration application, are still in development. Please bear with us as we strive to make it all work as well as possible. Modified: pGina-2.x/doc/Changelog.txt =================================================================== --- pGina-2.x/doc/Changelog.txt 2011-06-10 02:14:19 UTC (rev 147) +++ pGina-2.x/doc/Changelog.txt 2011-06-10 02:21:28 UTC (rev 148) @@ -1,6 +1,11 @@ v2.1.2 Future Release =============================== - * Fixed remote script execution bug + * Added ability to disable registry encryption + * Added option to either execute scripts before mapping, or + mapping before scripts + * Fixed remote script execution bug, now the app checks + to make sure the file exists before executing + * Fixed "require plugin authentication" option that was broken * Registry Options Added: * autoexecBeforeMapping * disableEncryption Modified: pGina-2.x/doc/Todo.txt =================================================================== --- pGina-2.x/doc/Todo.txt 2011-06-10 02:14:19 UTC (rev 147) +++ pGina-2.x/doc/Todo.txt 2011-06-10 02:21:28 UTC (rev 148) @@ -6,7 +6,6 @@ pGina-Lib ========== - - add hooks to pGinaPluginServer for login/logout hook - password change plugin apis Other Modified: pGina-2.x/src/ConfigApp/Properties/AssemblyInfo.cs =================================================================== --- pGina-2.x/src/ConfigApp/Properties/AssemblyInfo.cs 2011-06-10 02:14:19 UTC (rev 147) +++ pGina-2.x/src/ConfigApp/Properties/AssemblyInfo.cs 2011-06-10 02:21:28 UTC (rev 148) @@ -29,4 +29,4 @@ // Build Number // Revision // -[assembly: AssemblyVersion("2.1.1.*")] +[assembly: AssemblyVersion("2.1.2.*")] Modified: pGina-2.x/src/pGinaSrvCS/Properties/AssemblyInfo.cs =================================================================== --- pGina-2.x/src/pGinaSrvCS/Properties/AssemblyInfo.cs 2011-06-10 02:14:19 UTC (rev 147) +++ pGina-2.x/src/pGinaSrvCS/Properties/AssemblyInfo.cs 2011-06-10 02:21:28 UTC (rev 148) @@ -29,4 +29,4 @@ // Build Number // Revision // -[assembly: AssemblyVersion("2.1.1.*")] +[assembly: AssemblyVersion("2.1.2.*")] Modified: pGina-2.x/src/pGinaVersion.h =================================================================== --- pGina-2.x/src/pGinaVersion.h 2011-06-10 02:14:19 UTC (rev 147) +++ pGina-2.x/src/pGinaVersion.h 2011-06-10 02:21:28 UTC (rev 148) @@ -4,7 +4,7 @@ #define VERSION_MAJOR 2 #define VERSION_MINOR 1 -#define VERSION_QFE 1 +#define VERSION_QFE 2 #define VERSION_RELEASE STR(VERSION_MAJOR) "." STR(VERSION_MINOR) "." STR(VERSION_QFE) ".0" #define VERSION_NUMBER VERSION_MAJOR,VERSION_MINOR,VERSION_QFE,VERSION_BUILD Modified: pGina-2.x/src/pGinaVersion.nsi =================================================================== --- pGina-2.x/src/pGinaVersion.nsi 2011-06-10 02:14:19 UTC (rev 147) +++ pGina-2.x/src/pGinaVersion.nsi 2011-06-10 02:21:28 UTC (rev 148) @@ -1,7 +1,7 @@ !define VERSION_MAJOR 2 !define VERSION_MINOR 1 -!define VERSION_QFE 1 -!define VERSION_BUILD 279 +!define VERSION_QFE 2 +!define VERSION_BUILD 281 !define VERSION_BUILD_DATE "10/06/2011" -!define VERSION_BUILD_TIME "02:09:56UTC" +!define VERSION_BUILD_TIME "02:20:22UTC" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pgi...@li...> - 2011-06-10 02:14:25
|
Revision: 147 http://pgina.svn.sourceforge.net/pgina/?rev=147&view=rev Author: hairlesshobo Date: 2011-06-10 02:14:19 +0000 (Fri, 10 Jun 2011) Log Message: ----------- Fixed "require plugin authentication" option that was found to not be working correctly. Modified Paths: -------------- pGina-2.x/src/pGina-Provider/pGinaCredential.cpp pGina-2.x/src/pGina-Provider/pGinaProvider.ver pGina-2.x/src/pGinaVersion.nsi Modified: pGina-2.x/src/pGina-Provider/pGinaCredential.cpp =================================================================== --- pGina-2.x/src/pGina-Provider/pGinaCredential.cpp 2011-06-10 02:00:30 UTC (rev 146) +++ pGina-2.x/src/pGina-Provider/pGinaCredential.cpp 2011-06-10 02:14:19 UTC (rev 147) @@ -546,7 +546,13 @@ L"", &errorString, createAccount, g_settings->GetBool(L"forceLogin", true), &settingsInfo); - if((authenticated || !pv1.IsRequired() ) && (g_settings->GetBool(L"forcePluginAuth", false) == false)) + + bool plugin_required = pv1.IsRequired(); + + if (g_settings->GetBool(L"forcePluginAuth", false) == true) + plugin_required = true; + + if(authenticated || (plugin_required == false)) { if(!authenticated) g_logger->Log(3, L"%s pGinaCredential::GetSerialization() - Plugin failed but is not required, passing credentials up. Plugin Error: %s", Modified: pGina-2.x/src/pGina-Provider/pGinaProvider.ver =================================================================== --- pGina-2.x/src/pGina-Provider/pGinaProvider.ver 2011-06-10 02:00:30 UTC (rev 146) +++ pGina-2.x/src/pGina-Provider/pGinaProvider.ver 2011-06-10 02:14:19 UTC (rev 147) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 1294 -#define VERSION_BUILD_DATE "09/06/2011" -#define VERSION_BUILD_TIME "00:53:10UTC" +#define VERSION_BUILD 1297 +#define VERSION_BUILD_DATE "10/06/2011" +#define VERSION_BUILD_TIME "02:09:36UTC" #define VERSION_FILENAME "pGinaProvider.dll" #define VERSION_FILE_DESCRIPTION "Credential Provider for pGina" Modified: pGina-2.x/src/pGinaVersion.nsi =================================================================== --- pGina-2.x/src/pGinaVersion.nsi 2011-06-10 02:00:30 UTC (rev 146) +++ pGina-2.x/src/pGinaVersion.nsi 2011-06-10 02:14:19 UTC (rev 147) @@ -2,6 +2,6 @@ !define VERSION_MAJOR 2 !define VERSION_MINOR 1 !define VERSION_QFE 1 -!define VERSION_BUILD 278 -!define VERSION_BUILD_DATE "09/06/2011" -!define VERSION_BUILD_TIME "00:53:43UTC" +!define VERSION_BUILD 279 +!define VERSION_BUILD_DATE "10/06/2011" +!define VERSION_BUILD_TIME "02:09:56UTC" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pgi...@li...> - 2011-06-10 02:00:37
|
Revision: 146 http://pgina.svn.sourceforge.net/pgina/?rev=146&view=rev Author: hairlesshobo Date: 2011-06-10 02:00:30 +0000 (Fri, 10 Jun 2011) Log Message: ----------- Added ability to disable registry encryption. Many thanks to Nate for the help with this!! Modified Paths: -------------- pGina-2.x/doc/Registry Options.txt pGina-2.x/installer/installDefaultConfig.nsi pGina-2.x/src/ConfigApp/FormMain.cs pGina-2.x/src/ConfigApp/locale_en.txt pGina-2.x/src/ConfigApp/options.xml pGina-2.x/src/ConfigApp/pGinaOptionInfo/pGinaBooleanOption.cs pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver pGina-2.x/src/LibTester/LibTester.ver pGina-2.x/src/Reg.cs pGina-2.x/src/pGina-Provider/pGinaProvider.ver pGina-2.x/src/pGinaCrypt/pGinaCrypt.cpp pGina-2.x/src/pGinaCrypt/pGinaCrypt.h pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver pGina-2.x/src/pGinaVersion.nsi Modified: pGina-2.x/doc/Registry Options.txt =================================================================== --- pGina-2.x/doc/Registry Options.txt 2011-06-09 02:30:32 UTC (rev 145) +++ pGina-2.x/doc/Registry Options.txt 2011-06-10 02:00:30 UTC (rev 146) @@ -19,6 +19,8 @@ REG_DWORD automapRegular (bool) Enable drive mapping for regular users REG_DWORD disableDefaultCP (bool) Disable the default credential provider (must be changed through config app) +REG_DWORD disableEncryption (bool) Disables the use of the pGinaKey.dll functionality for storing + registry settings REG_DWORD disableShutdown (bool) Disable pre-logon shutdown options (must be changed through config app) REG_DWORD disableUserRemoval (bool) For testing purposes only. Disables user removal regardless of Modified: pGina-2.x/installer/installDefaultConfig.nsi =================================================================== --- pGina-2.x/installer/installDefaultConfig.nsi 2011-06-09 02:30:32 UTC (rev 145) +++ pGina-2.x/installer/installDefaultConfig.nsi 2011-06-10 02:00:30 UTC (rev 146) @@ -9,6 +9,7 @@ WriteRegDWORD HKLM "Software\${APPNAME}" "automapRegular" "0" WriteRegDWORD HKLM "Software\${APPNAME}" "disableDefaultCP" "0" + WriteRegDWORD HKLM "Software\${APPNAME}" "disableEncryption" "0" WriteRegDWORD HKLM "Software\${APPNAME}" "disableShutdown" "0" WriteRegDWORD HKLM "Software\${APPNAME}" "enableAutoexec" "0" Modified: pGina-2.x/src/ConfigApp/FormMain.cs =================================================================== --- pGina-2.x/src/ConfigApp/FormMain.cs 2011-06-09 02:30:32 UTC (rev 145) +++ pGina-2.x/src/ConfigApp/FormMain.cs 2011-06-10 02:00:30 UTC (rev 146) @@ -504,6 +504,13 @@ } private void buttonOk_Click(object sender, EventArgs e) { + // Here we handle turning on and off encryption + if (pGina.Settings.GetBoolean("disableEncryption") != pGina.Settings.encryptionDisabled) + { + pGina.Settings.SetString("lastSuccessfulUsername", ""); + pGina.Settings.SetBoolean("disableEncryption", pGina.Settings.encryptionDisabled); + } + // save all settings and exit bool success = true; Modified: pGina-2.x/src/ConfigApp/locale_en.txt =================================================================== --- pGina-2.x/src/ConfigApp/locale_en.txt 2011-06-09 02:30:32 UTC (rev 145) +++ pGina-2.x/src/ConfigApp/locale_en.txt 2011-06-10 02:00:30 UTC (rev 146) @@ -95,4 +95,7 @@ autoexecBeforeMapping = Execute script(s) before drives are mapped autoexecAdmin = Enable for Administrators autoexecRegular = Enable for Regular Users -autoexecPaths = Applications to run at logon. One per line.\n\nEx: C:\SomeProgram.exe \ No newline at end of file +autoexecPaths = Applications to run at logon. One per line.\n\nEx: C:\SomeProgram.exe + +; [Advanced] +disableEncryption = Disable use of pGinaKey.dll for registry encryption \ No newline at end of file Modified: pGina-2.x/src/ConfigApp/options.xml =================================================================== --- pGina-2.x/src/ConfigApp/options.xml 2011-06-09 02:30:32 UTC (rev 145) +++ pGina-2.x/src/ConfigApp/options.xml 2011-06-10 02:00:30 UTC (rev 146) @@ -217,5 +217,11 @@ </option> </category> + + <category name="Advanced"> + <option optionName="disableEncryption"> + <booleanOption /> + </option> + </category> </pgina> Modified: pGina-2.x/src/ConfigApp/pGinaOptionInfo/pGinaBooleanOption.cs =================================================================== --- pGina-2.x/src/ConfigApp/pGinaOptionInfo/pGinaBooleanOption.cs 2011-06-09 02:30:32 UTC (rev 145) +++ pGina-2.x/src/ConfigApp/pGinaOptionInfo/pGinaBooleanOption.cs 2011-06-10 02:00:30 UTC (rev 146) @@ -84,6 +84,21 @@ return; } } + + if (RegValueName == "disableEncryption") + { + if (((CheckBox)BoundControl).Checked == true) + { + // show our message box + if (MessageBox.Show("Are you sure you want to disable the use of registry encryption?", "Are you sure?", MessageBoxButtons.YesNo) == DialogResult.No) + { + // looks like we changed our mind. clear the checkbox and leave. + ((CheckBox)BoundControl).Checked = false; + } + } + + pGina.Settings.encryptionDisabled = ((CheckBox)BoundControl).Checked; + } // end steve's code // for each dependency, enable or disable depending on checked state @@ -93,7 +108,6 @@ else poi.BoundControl.Enabled = ( (WrappingCheckBox)sender ).Checked; } - } /// <summary> @@ -130,6 +144,11 @@ } } + // we skip this one because it is handled in a special way in FormMain.cs + // before any other Save function are called in the option classes + if (RegValueName == "disableEncryption") + return; + // check to see if we are dealing with disableShutdown, if // we are then special action needs to be taken if (RegValueName == "disableShutdown") Modified: pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver =================================================================== --- pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver 2011-06-09 02:30:32 UTC (rev 145) +++ pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver 2011-06-10 02:00:30 UTC (rev 146) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 142 -#define VERSION_BUILD_DATE "07/06/2011" -#define VERSION_BUILD_TIME "23:41:03UTC" +#define VERSION_BUILD 144 +#define VERSION_BUILD_DATE "09/06/2011" +#define VERSION_BUILD_TIME "00:53:17UTC" #define VERSION_FILENAME "CredUI-Prompt.exe" #define VERSION_FILE_DESCRIPTION "Credential Provider tester for pGina" Modified: pGina-2.x/src/LibTester/LibTester.ver =================================================================== --- pGina-2.x/src/LibTester/LibTester.ver 2011-06-09 02:30:32 UTC (rev 145) +++ pGina-2.x/src/LibTester/LibTester.ver 2011-06-10 02:00:30 UTC (rev 146) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 122 -#define VERSION_BUILD_DATE "07/06/2011" -#define VERSION_BUILD_TIME "23:41:07UTC" +#define VERSION_BUILD 124 +#define VERSION_BUILD_DATE "09/06/2011" +#define VERSION_BUILD_TIME "00:53:04UTC" #define VERSION_FILENAME "LibTester.exe" #define VERSION_FILE_DESCRIPTION "pGina Library Tester" Modified: pGina-2.x/src/Reg.cs =================================================================== --- pGina-2.x/src/Reg.cs 2011-06-09 02:30:32 UTC (rev 145) +++ pGina-2.x/src/Reg.cs 2011-06-10 02:00:30 UTC (rev 146) @@ -14,6 +14,7 @@ private pGinaCrypt pCrypt; private const string basePath = "Software\\pGina"; private string regPath = ""; + public bool encryptionDisabled; /// <summary> /// Default constructor, takes no arguments @@ -21,6 +22,7 @@ public Reg() { regPath = basePath; + encryptionDisabled = GetBoolean("disableEncryption"); prepareEncryption(); } @@ -31,6 +33,7 @@ public Reg(string path) { regPath = basePath + "\\" + path; + encryptionDisabled = GetBoolean("disableEncryption"); prepareEncryption(); } @@ -226,7 +229,6 @@ /// <returns>Plaintext string value in registry</returns> public string GetEncryptedString(string valueName) { - string strval = ""; try Modified: pGina-2.x/src/pGina-Provider/pGinaProvider.ver =================================================================== --- pGina-2.x/src/pGina-Provider/pGinaProvider.ver 2011-06-09 02:30:32 UTC (rev 145) +++ pGina-2.x/src/pGina-Provider/pGinaProvider.ver 2011-06-10 02:00:30 UTC (rev 146) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 1292 -#define VERSION_BUILD_DATE "07/06/2011" -#define VERSION_BUILD_TIME "23:41:09UTC" +#define VERSION_BUILD 1294 +#define VERSION_BUILD_DATE "09/06/2011" +#define VERSION_BUILD_TIME "00:53:10UTC" #define VERSION_FILENAME "pGinaProvider.dll" #define VERSION_FILE_DESCRIPTION "Credential Provider for pGina" Modified: pGina-2.x/src/pGinaCrypt/pGinaCrypt.cpp =================================================================== --- pGina-2.x/src/pGinaCrypt/pGinaCrypt.cpp 2011-06-09 02:30:32 UTC (rev 145) +++ pGina-2.x/src/pGinaCrypt/pGinaCrypt.cpp 2011-06-10 02:00:30 UTC (rev 146) @@ -48,7 +48,6 @@ memset(keyPath, 0, 1024); bool found = false; - found = false; if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\pGina"), 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS) { if(RegQueryValueEx(hKey, _T(""), NULL, NULL, (LPBYTE)&result, &dwBytesRead) == ERROR_SUCCESS) @@ -103,6 +102,9 @@ * Encrypt a string using CryptProtectData() */ PGINA_CRYPT LPTSTR encryptString(LPTSTR origString) { + if (checkDisabled() == true) + return _wcsdup(origString); + DATA_BLOB original; DATA_BLOB encrypted; DATA_BLOB encrypted_encoded; @@ -129,6 +131,9 @@ * Decrypt a string using CryptUnprotectData() */ PGINA_CRYPT LPTSTR decryptString(LPTSTR origString) { + if (checkDisabled() == true) + return _wcsdup(origString); + DATA_BLOB original; DATA_BLOB original_decoded; DATA_BLOB decrypted; @@ -240,7 +245,27 @@ return to; } +bool checkDisabled(void) +{ + HKEY hKey; + DWORD dwBytesRead = 6000; + DWORD result = 0; + bool disabled = false; + if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\pGina"), 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS) + { + if(RegQueryValueEx(hKey, _T("disableEncryption"), NULL, NULL, (LPBYTE)&result, &dwBytesRead) == ERROR_SUCCESS) + { + if(result == 1) + disabled = true; + } + } + + RegCloseKey(hKey); + + return disabled; +} + /* extern "C" __declspec(dllexport) DATA_BLOB *EncryptionKey(void) { // Initialize our key Modified: pGina-2.x/src/pGinaCrypt/pGinaCrypt.h =================================================================== --- pGina-2.x/src/pGinaCrypt/pGinaCrypt.h 2011-06-09 02:30:32 UTC (rev 145) +++ pGina-2.x/src/pGinaCrypt/pGinaCrypt.h 2011-06-10 02:00:30 UTC (rev 146) @@ -26,6 +26,7 @@ void decode(DATA_BLOB *data,DATA_BLOB *result); TCHAR * convert_to_wchar(const char *from); char * convert_to_char(const TCHAR *from); + bool checkDisabled(void); DLLGETENCRYPTIONKEY dllEncryptionKey; Modified: pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver =================================================================== --- pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver 2011-06-09 02:30:32 UTC (rev 145) +++ pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver 2011-06-10 02:00:30 UTC (rev 146) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 54 -#define VERSION_BUILD_DATE "07/06/2011" -#define VERSION_BUILD_TIME "23:41:05UTC" +#define VERSION_BUILD 56 +#define VERSION_BUILD_DATE "09/06/2011" +#define VERSION_BUILD_TIME "00:53:04UTC" #define VERSION_FILENAME "pGinaLogoffUtility.exe" #define VERSION_FILE_DESCRIPTION "pGina Utility to end User's Session" Modified: pGina-2.x/src/pGinaVersion.nsi =================================================================== --- pGina-2.x/src/pGinaVersion.nsi 2011-06-09 02:30:32 UTC (rev 145) +++ pGina-2.x/src/pGinaVersion.nsi 2011-06-10 02:00:30 UTC (rev 146) @@ -2,6 +2,6 @@ !define VERSION_MAJOR 2 !define VERSION_MINOR 1 !define VERSION_QFE 1 -!define VERSION_BUILD 277 -!define VERSION_BUILD_DATE "07/06/2011" -!define VERSION_BUILD_TIME "23:41:26UTC" +!define VERSION_BUILD 278 +!define VERSION_BUILD_DATE "09/06/2011" +!define VERSION_BUILD_TIME "00:53:43UTC" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pgi...@li...> - 2011-06-09 02:30:39
|
Revision: 145 http://pgina.svn.sourceforge.net/pgina/?rev=145&view=rev Author: aksooo Date: 2011-06-09 02:30:32 +0000 (Thu, 09 Jun 2011) Log Message: ----------- Added x64 platform Added Paths: ----------- Plugins/ChainingPlugin/Chaining Plugin.sln Plugins/ChainingPlugin/Chaining Plugin.suo Plugins/ChainingPlugin/Chaining Plugin.vcproj Removed Paths: ------------- Plugins/ChainingPlugin/Chaining Plugin.ncb Plugins/ChainingPlugin/Chaining Plugin.vs2005.ncb Plugins/ChainingPlugin/_UpgradeReport_Files/ Deleted: Plugins/ChainingPlugin/Chaining Plugin.ncb =================================================================== (Binary files differ) Added: Plugins/ChainingPlugin/Chaining Plugin.sln =================================================================== --- Plugins/ChainingPlugin/Chaining Plugin.sln (rev 0) +++ Plugins/ChainingPlugin/Chaining Plugin.sln 2011-06-09 02:30:32 UTC (rev 145) @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Chaining Plugin", "Chaining Plugin.vcproj", "{F9867850-CEB1-4743-9BAD-0EB8454E3F8C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F9867850-CEB1-4743-9BAD-0EB8454E3F8C}.Debug|Win32.ActiveCfg = Debug|Win32 + {F9867850-CEB1-4743-9BAD-0EB8454E3F8C}.Debug|Win32.Build.0 = Debug|Win32 + {F9867850-CEB1-4743-9BAD-0EB8454E3F8C}.Debug|x64.ActiveCfg = Debug|x64 + {F9867850-CEB1-4743-9BAD-0EB8454E3F8C}.Debug|x64.Build.0 = Debug|x64 + {F9867850-CEB1-4743-9BAD-0EB8454E3F8C}.Release|Win32.ActiveCfg = Release|Win32 + {F9867850-CEB1-4743-9BAD-0EB8454E3F8C}.Release|Win32.Build.0 = Release|Win32 + {F9867850-CEB1-4743-9BAD-0EB8454E3F8C}.Release|x64.ActiveCfg = Release|x64 + {F9867850-CEB1-4743-9BAD-0EB8454E3F8C}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Added: Plugins/ChainingPlugin/Chaining Plugin.suo =================================================================== (Binary files differ) Property changes on: Plugins/ChainingPlugin/Chaining Plugin.suo ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: Plugins/ChainingPlugin/Chaining Plugin.vcproj =================================================================== --- Plugins/ChainingPlugin/Chaining Plugin.vcproj (rev 0) +++ Plugins/ChainingPlugin/Chaining Plugin.vcproj 2011-06-09 02:30:32 UTC (rev 145) @@ -0,0 +1,734 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="9.00" + Name="Chaining Plugin" + ProjectGUID="{F9867850-CEB1-4743-9BAD-0EB8454E3F8C}" + RootNamespace="Chaining Plugin" + Keyword="MFCProj" + TargetFrameworkVersion="0" + > + <Platforms> + <Platform + Name="Win32" + /> + <Platform + Name="x64" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Release|Win32" + OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" + IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="2" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="NDEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\Release/Chaining Plugin.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;UNICODE" + StringPooling="true" + RuntimeLibrary="2" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="2" + PrecompiledHeaderThrough="stdafx.h" + PrecompiledHeaderFile=".\Release/Chaining Plugin.pch" + AssemblerListingLocation=".\Release/" + ObjectFile=".\Release/" + ProgramDataBaseFileName=".\Release/" + WarningLevel="3" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + OutputFile="$(OutDir)/Chaining Plugin.dll" + LinkIncremental="1" + SuppressStartupBanner="true" + ModuleDefinitionFile=".\Chaining Plugin.def" + ProgramDatabaseFile=".\Release/Chaining Plugin.pdb" + SubSystem="2" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + ImportLibrary=".\Release/Chaining Plugin.lib" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\Release/Chaining Plugin.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug|Win32" + OutputDirectory=".\Debug" + IntermediateDirectory=".\Debug" + ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="2" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="_DEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\Debug/Chaining Plugin.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + UsePrecompiledHeader="2" + PrecompiledHeaderThrough="stdafx.h" + PrecompiledHeaderFile=".\Debug/Chaining Plugin.pch" + AssemblerListingLocation=".\Debug/" + ObjectFile=".\Debug/" + ProgramDataBaseFileName=".\Debug/" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + OutputFile=".\Debug/Chaining Plugin.dll" + LinkIncremental="2" + SuppressStartupBanner="true" + ModuleDefinitionFile=".\Chaining Plugin.def" + GenerateDebugInformation="true" + ProgramDatabaseFile=".\Debug/Chaining Plugin.pdb" + SubSystem="2" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + ImportLibrary=".\Debug/Chaining Plugin.lib" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\Debug/Chaining Plugin.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|x64" + OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" + IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="2" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="NDEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="3" + TypeLibraryName=".\Release/Chaining Plugin.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;UNICODE" + StringPooling="true" + RuntimeLibrary="2" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="2" + PrecompiledHeaderThrough="stdafx.h" + PrecompiledHeaderFile=".\Release/Chaining Plugin.pch" + AssemblerListingLocation=".\Release/" + ObjectFile=".\Release/" + ProgramDataBaseFileName=".\Release/" + WarningLevel="3" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + OutputFile="$(OutDir)/Chaining Plugin.dll" + LinkIncremental="1" + SuppressStartupBanner="true" + ModuleDefinitionFile=".\Chaining Plugin.def" + ProgramDatabaseFile=".\Release/Chaining Plugin.pdb" + SubSystem="2" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + ImportLibrary=".\Release/Chaining Plugin.lib" + TargetMachine="17" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\Release/Chaining Plugin.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug|x64" + OutputDirectory="$(PlatformName)\$(ConfigurationName)" + IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="2" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="_DEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="3" + TypeLibraryName=".\Debug/Chaining Plugin.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + UsePrecompiledHeader="2" + PrecompiledHeaderThrough="stdafx.h" + PrecompiledHeaderFile=".\Debug/Chaining Plugin.pch" + AssemblerListingLocation=".\Debug/" + ObjectFile=".\Debug/" + ProgramDataBaseFileName=".\Debug/" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + OutputFile=".\Debug/Chaining Plugin.dll" + LinkIncremental="2" + SuppressStartupBanner="true" + ModuleDefinitionFile=".\Chaining Plugin.def" + GenerateDebugInformation="true" + ProgramDatabaseFile=".\Debug/Chaining Plugin.pdb" + SubSystem="2" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + ImportLibrary=".\Debug/Chaining Plugin.lib" + TargetMachine="17" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\Debug/Chaining Plugin.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + <File + RelativePath="Chaining Plugin.cpp" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|x64" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|x64" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="Chaining Plugin.def" + > + </File> + <File + RelativePath="Chaining Plugin.rc" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|x64" + > + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|x64" + > + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="ConfigurePluginDialog.cpp" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|x64" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|x64" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="PluginCollection.cpp" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|x64" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|x64" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="PluginItem.cpp" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|x64" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|x64" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="PluginSelectionDialog.cpp" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|x64" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|x64" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="StdAfx.cpp" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + UsePrecompiledHeader="1" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + UsePrecompiledHeader="1" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|x64" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + UsePrecompiledHeader="1" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|x64" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + UsePrecompiledHeader="1" + /> + </FileConfiguration> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl" + > + <File + RelativePath="Chaining Plugin.h" + > + </File> + <File + RelativePath="ConfigurePluginDialog.h" + > + </File> + <File + RelativePath="plugin_defines.h" + > + </File> + <File + RelativePath="PluginCollection.h" + > + </File> + <File + RelativePath="PluginItem.h" + > + </File> + <File + RelativePath="PluginSelectionDialog.h" + > + </File> + <File + RelativePath="Resource.h" + > + </File> + <File + RelativePath="StdAfx.h" + > + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" + > + <File + RelativePath="res\Chaining Plugin.rc2" + > + </File> + <File + RelativePath="xpalogo.bmp" + > + </File> + </Filter> + <File + RelativePath="ReadMe.txt" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Deleted: Plugins/ChainingPlugin/Chaining Plugin.vs2005.ncb =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pgi...@li...> - 2011-06-08 14:40:34
|
Revision: 144 http://pgina.svn.sourceforge.net/pgina/?rev=144&view=rev Author: hairlesshobo Date: 2011-06-08 14:40:25 +0000 (Wed, 08 Jun 2011) Log Message: ----------- Imported Kerberos5 plugin source Added Paths: ----------- Plugins/Kerberos5/ Plugins/Kerberos5/INSTALL.TXT Plugins/Kerberos5/amd64/ Plugins/Kerberos5/amd64/Krb5Plugin.dll Plugins/Kerberos5/amd64/comerr64.dll Plugins/Kerberos5/amd64/k5sprt64.dll Plugins/Kerberos5/amd64/krb5_64.dll Plugins/Kerberos5/krb5.ini Plugins/Kerberos5/src/ Plugins/Kerberos5/src/ConfigDialog.cpp Plugins/Kerberos5/src/Krb5Plugin.cpp Plugins/Kerberos5/src/Krb5Plugin.h Plugins/Kerberos5/src/Krb5Plugin.manifest Plugins/Kerberos5/src/Krb5Plugin.rc Plugins/Kerberos5/src/Krb5Plugin.sln Plugins/Kerberos5/src/Krb5Plugin.suo Plugins/Kerberos5/src/Krb5Plugin.vcproj Plugins/Kerberos5/src/Krb5Plugin.vcproj.MAUERSBERGER.heha.user Plugins/Kerberos5/src/dog.ico Plugins/Kerberos5/src/inc/ Plugins/Kerberos5/src/inc/krb5/ Plugins/Kerberos5/src/inc/krb5/KerberosIV/ Plugins/Kerberos5/src/inc/krb5/KerberosIV/des.h Plugins/Kerberos5/src/inc/krb5/KerberosIV/kadm_err.h Plugins/Kerberos5/src/inc/krb5/KerberosIV/krb.h Plugins/Kerberos5/src/inc/krb5/KerberosIV/krb_err.h Plugins/Kerberos5/src/inc/krb5/KerberosIV/mit-copyright.h Plugins/Kerberos5/src/inc/krb5/com_err.h Plugins/Kerberos5/src/inc/krb5/gssapi/ Plugins/Kerberos5/src/inc/krb5/gssapi/gssapi.h Plugins/Kerberos5/src/inc/krb5/gssapi/gssapi_generic.h Plugins/Kerberos5/src/inc/krb5/gssapi/gssapi_krb5.h Plugins/Kerberos5/src/inc/krb5/krb5.h Plugins/Kerberos5/src/inc/krb5/profile.h Plugins/Kerberos5/src/inc/krb5/win-mac.h Plugins/Kerberos5/src/lib/ Plugins/Kerberos5/src/lib/i386/ Plugins/Kerberos5/src/lib/i386/krb5_32.lib Plugins/Kerberos5/src/lib/i386/krb5_64.lib Plugins/Kerberos5/x86/ Plugins/Kerberos5/x86/Krb5Plugin.dll Plugins/Kerberos5/x86/comerr32.dll Plugins/Kerberos5/x86/k5sprt32.dll Plugins/Kerberos5/x86/krb5_32.dll Added: Plugins/Kerberos5/INSTALL.TXT =================================================================== --- Plugins/Kerberos5/INSTALL.TXT (rev 0) +++ Plugins/Kerberos5/INSTALL.TXT 2011-06-08 14:40:25 UTC (rev 144) @@ -0,0 +1,39 @@ +Installieren von pGina +---------------------- + + 1. Downloaden Sie zunächst das aktuelle pGina-Paket vom pGina-Projekt (zip-Archiv) + 2. Entpacken der Downloadquelle und starten des pGina-Installers + 3. Folgen Sie den Anweisungen des Installers + 4. Nach erfolgreicher Installation startet das pGina-Konfigurationswerkzeug, folgen Sie jetzt den Hinweisen zur Installation des Krb5Plugins + +Installieren des Krb5Plugins +---------------------------- + + 1. Downloaden Sie das Krb5Plugin (zip-Archiv) + 2. Entpacken der Downloadquelle: + 3. Kopieren Sie die Datei Krb5Plugin.dll in das Pluginverzeichnis unter dem pGina-Installationsverzeichnis + 4. Kopieren Sie die Bibliotheken comerr32.dll, k5sprt32.dll, krb5_32.dll und die Kerberoskonfiguration (TU-CHEMNITZ.DE) krb5.ini in das Windows-Verzeichnis (C:\Windows) + +Konfiguration von pGina +----------------------- + + 1. Voraussetzung ist die Installaton des Krb5Plugins + 2. Wählen Sie für den Pluginpfad den Pfad zur Krb5Plugin.dll aus + 3. Mit dem Knopf Konfigurieren sollte der Konfigurationsdialog des Krb5Plugins erscheinen, welcher Keine Einstellungen hat + 4. Stellen Sie Konfigurationsparameter nach den Anforderungen entsprechend ein: + * Empfehlungen: + o Tab Benutzerkonten > Gruppen: Benutzer + o Tab Erweiterte Einstellungen -> Passwörter bei der Abmeldung verschlüsseln darf NICHT aktiviert werden, sonst funktioniert der Offline-Modus nicht! + +Konfigurieren des Krb5Plugins +----------------------------- + +Editieren Sie dazu die mitgelieferte krb5.ini im Windows-Verzeichnis. +Ist die Kerberos-Konfiguration in Ornung, zeigt der Konfigurationsdialog des Krb5Plugins die Standard Kerberoszelle an. +Das Plugin kann auch mit dem pGina-Plugin-Tester geprüft werden. + + +Hinweis +------- +Neue Benutzer können sich nur im Online-Modus (Gerät mit Verbindung zum Campusnetz) registrieren. +Im Offline-Modus werden einmal registrierte Benutzer lokal angemeldet. Timeout bei der Suche der Authentifizierungsserver beachten. Added: Plugins/Kerberos5/amd64/Krb5Plugin.dll =================================================================== (Binary files differ) Property changes on: Plugins/Kerberos5/amd64/Krb5Plugin.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: Plugins/Kerberos5/amd64/comerr64.dll =================================================================== (Binary files differ) Property changes on: Plugins/Kerberos5/amd64/comerr64.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: Plugins/Kerberos5/amd64/k5sprt64.dll =================================================================== (Binary files differ) Property changes on: Plugins/Kerberos5/amd64/k5sprt64.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: Plugins/Kerberos5/amd64/krb5_64.dll =================================================================== (Binary files differ) Property changes on: Plugins/Kerberos5/amd64/krb5_64.dll ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: Plugins/Kerberos5/krb5.ini =================================================================== --- Plugins/Kerberos5/krb5.ini (rev 0) +++ Plugins/Kerberos5/krb5.ini 2011-06-08 14:40:25 UTC (rev 144) @@ -0,0 +1,27 @@ +[libdefaults] + default_realm = TU-CHEMNITZ.DE + dns_lookup_kdc = true + +[realms] + TU-CHEMNITZ.DE = { + kdc = kerberos.tu-chemnitz.de + kdc = kerberos-1.tu-chemnitz.de + kdc = kerberos-2.tu-chemnitz.de + admin_server = kerberos.tu-chemnitz.de + default_domain = tu-chemnitz.de + krb4_get_tickets = false + v4_name_convert = { + host = { + rcmd = host + ftp = ftp + imap = imap + pop = pop + } + } + } + +[domain_realm] + .tu-chemnitz.de = TU-CHEMNITZ.DE + +[logging] +# kdc = CONSOLE Added: Plugins/Kerberos5/src/ConfigDialog.cpp =================================================================== --- Plugins/Kerberos5/src/ConfigDialog.cpp (rev 0) +++ Plugins/Kerberos5/src/ConfigDialog.cpp 2011-06-08 14:40:25 UTC (rev 144) @@ -0,0 +1,29 @@ +// Dialogprozedur f\xFCr (einstellungs-losen) Konfigurationsdialog +#include "Krb5Plugin.h" + +EXTERN_C BOOL CALLBACK ConfigDlgProc(HWND Wnd,UINT Msg,WPARAM wParam,LPARAM lParam) { + switch (Msg) { + case WM_INITDIALOG: { + krb5_error_code err; + krb5_context context; + char *realm; + TCHAR s[256]; + err = krb5_init_context(&context); + if (!err) { + err = krb5_get_default_realm(context,&realm); + if (!err) { + MultiByteToWideChar(CP_UTF8,0,realm,-1,s,elemof(s)); + krb5_free_default_realm(context,realm); + }else LoadString(hInst,101,s,elemof(s)); //"Fehler beim Bestimmen der Zelle." + SetDlgItemText(Wnd,10,s); + } + if (context) krb5_free_context(context); + }return TRUE; + + case WM_COMMAND: switch (wParam) { // nur Buttons, LOWORD() kann entfallen + case IDOK: + case IDCANCEL: EndDialog(Wnd,wParam); + }break; + } + return FALSE; +} Added: Plugins/Kerberos5/src/Krb5Plugin.cpp =================================================================== --- Plugins/Kerberos5/src/Krb5Plugin.cpp (rev 0) +++ Plugins/Kerberos5/src/Krb5Plugin.cpp 2011-06-08 14:40:25 UTC (rev 144) @@ -0,0 +1,163 @@ +// Krb5Plugin.cpp : Initialisierungsroutinen +#include <shlwapi.h> +#include "Krb5Plugin.h" + +#define TKT_LIFETIME 30 /* 30 seconds */ +#define USE_MEMORY_CC /* use in-memory ccache */ + +HINSTANCE hInst; + +// L\xE4dt String aus Ressource und dupliziert ihn auf den lokalen Windows-Heap +// Die Stringpuffer-Freigabe ist unklar! +LPTSTR LoadStr(UINT id) { + TCHAR buf[256]; + LoadString(hInst,id,buf,elemof(buf)); + return StrDup(buf); +} + +KRB5PLUGIN_API BOOL UserLogin(LPTSTR Username, LPTSTR Password, pGinaInfo *settingsInfo) { + krb5_error_code err; + krb5_context context; + krb5_ccache ccache; + krb5_principal user_principal; + krb5_get_init_creds_opt gic_options; + krb5_creds credentials; + char *realm = NULL; + bool have_realm = false, + have_user_principal = false, + have_credentials = false, + ret = false; + // bypass local administrator + if (!lstrcmpi(Username,T("administrator"))) { + // dont return true, only use local account + settingsInfo->errorString = LoadStr(102); // "Check Admin-Account locally!" + return false; + } + // init kerberos context + err = krb5_init_context(&context); + if (err) { + settingsInfo->errorString = LoadStr(103); // "Fehler beim Initialisieren des Kerberos-Kontextes." + goto cleanup; + } + err = krb5_get_default_realm(context,&realm); + if (err) { + settingsInfo->errorString = LoadStr(104); // "Fehler beim Ermitteln der Standard-Kerberoszelle." + goto cleanup; + } + have_realm = true; + +#ifdef USE_MEMORY_CC + char ccache_name[MAX_PATH]; + // Note, Kerberos use on Windows the API:krb5cc Ticket Cache (shared memory) + lstrcpynA(ccache_name,"MEMORY:",elemof(ccache_name)); + GetTempFileNameA(".","krb",0,ccache_name+7); +// tmpnam_s(ccache_name+7,sizeof(ccache_name)-7); + err = krb5_cc_resolve(context, ccache_name, &ccache); +#else + err = krb5_cc_default(context, &ccache); +#endif + if (err) { + settingsInfo->errorString = LoadStr(105); // "Fehler bei Auswahl des Credential Caches." + goto cleanup; + } + + char UsernameA[256]; // UTF-8-Version vom Nutzerkennzeichen + WideCharToMultiByte(CP_UTF8,0,Username,-1,UsernameA,elemof(UsernameA),NULL,NULL); + + err = krb5_parse_name(context,UsernameA,&user_principal); + if (err) { + settingsInfo->errorString = LoadStr(106); // "Fehler beim Ermitteln des Principals." + goto cleanup; + } + have_user_principal = 1; + + err = krb5_cc_initialize(context, ccache, user_principal); + if (err) { + settingsInfo->errorString = LoadStr(107); // "Fehler beim Initialisieren des Credential Caches." + goto cleanup; + } + + krb5_get_init_creds_opt_init(&gic_options); + krb5_get_init_creds_opt_set_tkt_life(&gic_options, TKT_LIFETIME); + + RtlZeroMemory(&credentials,sizeof(credentials)); + + char PasswordA[256]; // UTF-8-Version vom Passwort (modern?) + WideCharToMultiByte(CP_UTF8,0,Password,-1,PasswordA,elemof(PasswordA),NULL,NULL); + + err = krb5_get_init_creds_password(context, &credentials, + user_principal, PasswordA, 0, 0, 0, 0, &gic_options); + + switch (err) { + case 0: + /* Success. */ + // This user can change their password + settingsInfo->allowPassChange = false; + // This users description + settingsInfo->userDescription = LoadStr(108); // "User, created by Krb5Plugin" + // This users full name + settingsInfo->userFullName = StrDup(Username); + // This user should be in the Administrator group + settingsInfo->isAdmin = false; + // Return Message + settingsInfo->errorString = LoadStr(109); // "Password o.k." + have_credentials = 1; + ret = true; + break; + case KRB5KDC_ERR_PREAUTH_FAILED: + case KRB5KRB_AP_ERR_BAD_INTEGRITY: + case KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN: + /* Bad username or password, unknown user etc */ + settingsInfo->errorString = LoadStr(110); // "Nutzername oder Passwort inkorrekt!" + break; + default: + /* Some other sort of failure. */ + settingsInfo->errorString = LoadStr(111); // "Unbekannter Fehler bei der Authentifizierung!" + } + +cleanup: + if (have_user_principal) krb5_free_principal(context, user_principal); + if (have_credentials) krb5_free_cred_contents(context, &credentials); + if (realm) krb5_free_default_realm(context,realm); + if (context) krb5_free_context(context); + // return result + return ret; +} + +KRB5PLUGIN_API BOOL ChangeUserPassword(LPTSTR Username,LPTSTR OldPassword,LPTSTR NewPassword) { + // return always false, its not allowed + return false; +} + +KRB5PLUGIN_API LPCTSTR AboutPlugin(void) { + return LoadStr(100); // "Kerberos5 Authentifizierungs-Plugin." +} + +KRB5PLUGIN_API void ChangePluginSettings(void) { + DialogBox(hInst,MAKEINTRESOURCE(101),0,(DLGPROC)ConfigDlgProc); +} + +KRB5PLUGIN_API void LoginHook(pGinaInfo *settingsInfo) { + // get kerberos ticket + /*FILE *debugFile; + debugFile = fopen("C:\\tmp\\krb5plugin.log", "a"); + fprintf(debugFile, "call LoginHook: %s.\n\n", convert_to_char(settingsInfo->userDescription)); + fclose(debugFile); */ +} + +KRB5PLUGIN_API void LogoutHook(pGinaInfo *settingsInfo) { +} + +KRB5PLUGIN_API BOOL IsRequired(void) { + return false; +} + +EXTERN_C BOOL APIENTRY _DllMainCRTStartup(HMODULE hModule, DWORD reason, LPVOID) { + switch (reason) { + case DLL_PROCESS_ATTACH: { + hInst=(HINSTANCE)hModule; + DisableThreadLibraryCalls(hModule); + }break; + } + return TRUE; +} Added: Plugins/Kerberos5/src/Krb5Plugin.h =================================================================== --- Plugins/Kerberos5/src/Krb5Plugin.h (rev 0) +++ Plugins/Kerberos5/src/Krb5Plugin.h 2011-06-08 14:40:25 UTC (rev 144) @@ -0,0 +1,45 @@ +#pragma once + +#include "krb5.h" + +#define KRB5PLUGIN_API extern "C" __declspec(dllexport) + +typedef struct pGinaInfo { + LPTSTR pathMSGina; + LPTSTR pathPlugin; + LPTSTR pathProfile; + LPTSTR mapPaths; + LPTSTR Username; + LPTSTR Password; + LPTSTR homeDir; + BOOL isAdmin; + BOOL disabled; + int authType; + HANDLE hUser; + LPTSTR userGroups; + LPTSTR userDescription; + LPTSTR userFullName; + BOOL allowPassChange; + LPTSTR errorString; + LPTSTR defaultDomain; + BOOL Reserved3; + BOOL Reserved4; +} pGinaInfo; + + +KRB5PLUGIN_API BOOL UserLogin(LPTSTR,LPTSTR,pGinaInfo*); +KRB5PLUGIN_API BOOL ChangeUserPassword(LPTSTR,LPTSTR,LPTSTR); +KRB5PLUGIN_API LPCTSTR AboutPlugin(void); +KRB5PLUGIN_API void ChangePluginSettings(void); +KRB5PLUGIN_API void LoginHook(pGinaInfo*); +KRB5PLUGIN_API void LogoutHook(pGinaInfo*); +KRB5PLUGIN_API BOOL IsRequired(void); + +#undef RtlZeroMemory +EXTERN_C void WINAPI RtlZeroMemory(PVOID,SIZE_T); + +extern HINSTANCE hInst; +#define T(x) TEXT(x) +#define elemof(x) (sizeof(x)/sizeof(*(x))) +//ConfigDialog.cpp +EXTERN_C BOOL CALLBACK ConfigDlgProc(HWND,UINT,WPARAM,LPARAM); Added: Plugins/Kerberos5/src/Krb5Plugin.manifest =================================================================== --- Plugins/Kerberos5/src/Krb5Plugin.manifest (rev 0) +++ Plugins/Kerberos5/src/Krb5Plugin.manifest 2011-06-08 14:40:25 UTC (rev 144) @@ -0,0 +1,10 @@ +<?xml version='1.0' encoding='UTF-8' standalone='yes'?> +<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> + <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> + <security> + <requestedPrivileges> + <requestedExecutionLevel level="asInvoker" uiAccess="false" /> + </requestedPrivileges> + </security> + </trustInfo> +</assembly> \ No newline at end of file Added: Plugins/Kerberos5/src/Krb5Plugin.rc =================================================================== --- Plugins/Kerberos5/src/Krb5Plugin.rc (rev 0) +++ Plugins/Kerberos5/src/Krb5Plugin.rc 2011-06-08 14:40:25 UTC (rev 144) @@ -0,0 +1,72 @@ +#include <windows.h> +#define IDC_STATIC -1 + +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL + +100 ICON "dog.ico" + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,1,2009,0525 + PRODUCTVERSION 1,1,2009,0525 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x2L + FILESUBTYPE 0x0L +{ + BLOCK "StringFileInfo" + { + BLOCK "080004b0" + { + VALUE "CompanyName", "TU Chemnitz, URZ" + VALUE "FileDescription", "Krb5Plugin DLL" + VALUE "FileVersion", "1.1 (5/09)" + VALUE "InternalName", "Krb5Plugin" + VALUE "LegalCopyright", "Freeware, A. Heik, H. Haftmann" + VALUE "OriginalFilename", "Krb5Plugin.DLL" + VALUE "ProductName", "Krb5Plugin" + VALUE "ProductVersion", "1.1 (5/09)" + } + } + BLOCK "VarFileInfo" + { + VALUE "Translation", 0x800, 1200 + } +} + +2 RT_MANIFEST "Krb5Plugin.manifest" + +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN + +101 DIALOGEX 0, 0, 186, 74 + STYLE DS_SETFONT|DS_MODALFRAME|WS_POPUP|WS_CAPTION|WS_SYSMENU + CAPTION "Kerberos5-Plugin: Konfiguration" + FONT 8, "MS Sans Serif", 0, 0, 0x0 +{ + DEFPUSHBUTTON "OK",IDOK,64,54,50,14 + ICON 100,IDC_STATIC,7,7,21,20 + LTEXT "Dieses Plugin hat keine Einstellungen.",IDC_STATIC,45,14,134,13 + LTEXT "Kerberoszelle:",IDC_STATIC,7,31,48,18 + EDITTEXT 10,54,33,125,14,ES_AUTOHSCROLL|ES_READONLY +} + +STRINGTABLE +{ + 100 "Kerberos5 Authentifizierungs-Plugin." + 101 "Fehler beim Bestimmen der Zelle." + 102 "Check Admin-Account locally!" + 103 "Fehler beim Initialisieren des Kerberos-Kontextes." + 104 "Fehler beim Ermitteln der Standard-Kerberoszelle." + 105 "Fehler bei Auswahl des Credential Caches." + 106 "Fehler beim Ermitteln des Principals." + 107 "Fehler beim Initialisieren des Credential Caches." + 108 "Benutzer, automatisch von Krb5Plugin angelegt" + 109 "Password o.k." + 110 "Nutzername oder Passwort inkorrekt!" + 111 "Unbekannter Fehler bei der Authentifizierung!" +} + Added: Plugins/Kerberos5/src/Krb5Plugin.sln =================================================================== --- Plugins/Kerberos5/src/Krb5Plugin.sln (rev 0) +++ Plugins/Kerberos5/src/Krb5Plugin.sln 2011-06-08 14:40:25 UTC (rev 144) @@ -0,0 +1,25 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Krb5Plugin", "Krb5Plugin.vcproj", "{327D86BB-3F41-4BF7-B370-DE835725D524}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {327D86BB-3F41-4BF7-B370-DE835725D524}.Debug|Win32.ActiveCfg = Debug|Win32 + {327D86BB-3F41-4BF7-B370-DE835725D524}.Debug|Win32.Build.0 = Debug|Win32 + {327D86BB-3F41-4BF7-B370-DE835725D524}.Debug|x64.ActiveCfg = Debug|x64 + {327D86BB-3F41-4BF7-B370-DE835725D524}.Debug|x64.Build.0 = Debug|x64 + {327D86BB-3F41-4BF7-B370-DE835725D524}.Release|Win32.ActiveCfg = Release|Win32 + {327D86BB-3F41-4BF7-B370-DE835725D524}.Release|Win32.Build.0 = Release|Win32 + {327D86BB-3F41-4BF7-B370-DE835725D524}.Release|x64.ActiveCfg = Release|x64 + {327D86BB-3F41-4BF7-B370-DE835725D524}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Added: Plugins/Kerberos5/src/Krb5Plugin.suo =================================================================== (Binary files differ) Property changes on: Plugins/Kerberos5/src/Krb5Plugin.suo ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: Plugins/Kerberos5/src/Krb5Plugin.vcproj =================================================================== --- Plugins/Kerberos5/src/Krb5Plugin.vcproj (rev 0) +++ Plugins/Kerberos5/src/Krb5Plugin.vcproj 2011-06-08 14:40:25 UTC (rev 144) @@ -0,0 +1,576 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="9,00" + Name="Krb5Plugin" + ProjectGUID="{327D86BB-3F41-4BF7-B370-DE835725D524}" + RootNamespace="Krb5Plugin" + Keyword="MFCProj" + TargetFrameworkVersion="131072" + > + <Platforms> + <Platform + Name="Win32" + /> + <Platform + Name="x64" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Release|Win32" + OutputDirectory="x86\Release" + IntermediateDirectory="x86\Release" + ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="NDEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\Release/Krb5Plugin.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="1" + InlineFunctionExpansion="1" + AdditionalIncludeDirectories="inc\krb5" + PreprocessorDefinitions="WIN32;UNICODE" + StringPooling="true" + ExceptionHandling="0" + RuntimeLibrary="0" + BufferSecurityCheck="false" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" + PrecompiledHeaderThrough="" + PrecompiledHeaderFile="" + AssemblerListingLocation="x86\Release/" + ObjectFile="x86\Release/" + ProgramDataBaseFileName="x86\Release/" + WarningLevel="3" + SuppressStartupBanner="true" + CallingConvention="0" + CompileAs="0" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + Culture="1031" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="lib\i386\krb5_32.lib kernel32.lib user32.lib shlwapi.lib" + OutputFile="x86\Release/Krb5Plugin.dll" + LinkIncremental="1" + SuppressStartupBanner="true" + GenerateManifest="false" + IgnoreAllDefaultLibraries="true" + ModuleDefinitionFile="" + ProgramDatabaseFile="x86\Release/Krb5Plugin.pdb" + SubSystem="2" + OptimizeForWindows98="0" + SetChecksum="true" + RandomizedBaseAddress="0" + DataExecutionPrevention="0" + ImportLibrary="x86\Release/Krb5Plugin.lib" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|x64" + OutputDirectory="$(PlatformName)\$(ConfigurationName)" + IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="NDEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="3" + TypeLibraryName=".\Release/Krb5Plugin.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="1" + InlineFunctionExpansion="1" + AdditionalIncludeDirectories="inc\krb5" + PreprocessorDefinitions="WIN32;UNICODE" + StringPooling="true" + ExceptionHandling="0" + RuntimeLibrary="0" + BufferSecurityCheck="false" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" + AssemblerListingLocation="$(IntDir)/" + ObjectFile="$(IntDir)/" + ProgramDataBaseFileName="$(IntDir)/" + WarningLevel="3" + SuppressStartupBanner="true" + Detect64BitPortabilityProblems="false" + CompileAs="0" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1031" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="lib\i386\krb5_64.lib kernel32.lib user32.lib shlwapi.lib" + OutputFile="$(OutDir)/Krb5Plugin.dll" + LinkIncremental="1" + SuppressStartupBanner="true" + GenerateManifest="false" + EnableUAC="true" + IgnoreAllDefaultLibraries="true" + ProgramDatabaseFile="$(IntDir)/Krb5Plugin.pdb" + SubSystem="2" + SetChecksum="true" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + ImportLibrary="$(OutDir)/Krb5Plugin.lib" + TargetMachine="17" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + EmbedManifest="false" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug|Win32" + OutputDirectory="x86\Debug" + IntermediateDirectory="x86\Debug" + ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="_DEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\Debug/Krb5Plugin.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="inc\krb5" + PreprocessorDefinitions="_DEBUG;WIN32;UNICODE" + StringPooling="true" + ExceptionHandling="0" + RuntimeLibrary="0" + BufferSecurityCheck="false" + UsePrecompiledHeader="0" + AssemblerListingLocation="x86\Debug/" + ObjectFile="x86\Debug/" + ProgramDataBaseFileName="x86\Debug/" + WarningLevel="3" + SuppressStartupBanner="true" + Detect64BitPortabilityProblems="false" + DebugInformationFormat="4" + CallingConvention="0" + CompileAs="0" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="lib\i386\krb5_32.lib kernel32.lib user32.lib shlwapi.lib" + OutputFile="x86\Debug/Krb5Plugin.dll" + LinkIncremental="0" + SuppressStartupBanner="true" + GenerateManifest="false" + IgnoreAllDefaultLibraries="true" + ModuleDefinitionFile="" + GenerateDebugInformation="true" + ProgramDatabaseFile="x86\Debug/Krb5Plugin.pdb" + SubSystem="2" + OptimizeForWindows98="0" + SetChecksum="true" + RandomizedBaseAddress="0" + DataExecutionPrevention="0" + ImportLibrary="x86\Debug/Krb5Plugin.lib" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug|x64" + OutputDirectory="$(PlatformName)\$(ConfigurationName)" + IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="_DEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="3" + TypeLibraryName=".\Debug/Krb5Plugin.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="inc\krb5" + PreprocessorDefinitions="_DEBUG;WIN32;_WINDOS;_MBCS;_USRDLL;UNICODE" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + UsePrecompiledHeader="2" + PrecompiledHeaderThrough="stdafx.h" + PrecompiledHeaderFile=".\Debug/Krb5Plugin.pch" + AssemblerListingLocation=".\Debug/" + ObjectFile=".\Debug/" + ProgramDataBaseFileName=".\Debug/" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + OutputFile=".\Debug/Krb5Plugin.dll" + LinkIncremental="1" + SuppressStartupBanner="true" + ModuleDefinitionFile=".\Krb5Plugin.def" + GenerateDebugInformation="true" + ProgramDatabaseFile=".\Debug/Krb5Plugin.pdb" + SubSystem="2" + SetChecksum="true" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + ImportLibrary=".\Debug/Krb5Plugin.lib" + TargetMachine="17" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + <File + RelativePath="ConfigDialog.cpp" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + Optimization="2" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|x64" + > + <Tool + Name="VCCLCompilerTool" + Optimization="2" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="" + BasicRuntimeChecks="3" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|x64" + > + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="" + BasicRuntimeChecks="3" + /> + </FileConfiguration> + </File> + <File + RelativePath="Krb5Plugin.cpp" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + Optimization="2" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|x64" + > + <Tool + Name="VCCLCompilerTool" + Optimization="2" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="" + BasicRuntimeChecks="3" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|x64" + > + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="" + BasicRuntimeChecks="3" + /> + </FileConfiguration> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl" + > + <File + RelativePath="Krb5Plugin.h" + > + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" + > + <File + RelativePath="Krb5Plugin.rc" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG;_AFXDLL;$(NoInherit)" + /> + </FileConfiguration> + <FileConfiguration + Name="Release|x64" + > + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG;_AFXDLL;$(NoInherit)" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG;_AFXDLL;$(NoInherit)" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|x64" + > + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG;_AFXDLL;$(NoInherit)" + /> + </FileConfiguration> + </File> + </Filter> + </Files> + <Globals> + <Global + Name="RESOURCE_FILE" + Value="Krb5Plugin.rc" + /> + </Globals> +</VisualStudioProject> Added: Plugins/Kerberos5/src/Krb5Plugin.vcproj.MAUERSBERGER.heha.user =================================================================== --- Plugins/Kerberos5/src/Krb5Plugin.vcproj.MAUERSBERGER.heha.user (rev 0) +++ Plugins/Kerberos5/src/Krb5Plugin.vcproj.MAUERSBERGER.heha.user 2011-06-08 14:40:25 UTC (rev 144) @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioUserFile + ProjectType="Visual C++" + Version="9,00" + ShowAllFiles="false" + > + <Configurations> + <Configuration + Name="Release|Win32" + > + <DebugSettings + Command="" + WorkingDirectory="" + CommandArguments="" + Attach="false" + DebuggerType="3" + Remote="1" + RemoteMachine="MAUERSBERGER" + RemoteCommand="" + HttpUrl="" + PDBPath="" + SQLDebugging="" + Environment="" + EnvironmentMerge="true" + DebuggerFlavor="" + MPIRunCommand="" + MPIRunArguments="" + MPIRunWorkingDirectory="" + ApplicationCommand="" + ApplicationArguments="" + ShimCommand="" + MPIAcceptMode="" + MPIAcceptFilter="" + /> + </Configuration> + <Configuration + Name="Release|x64" + > + <DebugSettings + Command="" + WorkingDirectory="" + CommandArguments="" + Attach="false" + DebuggerType="3" + Remote="1" + RemoteMachine="MAUERSBERGER" + RemoteCommand="" + HttpUrl="" + PDBPath="" + SQLDebugging="" + Environment="" + EnvironmentMerge="true" + DebuggerFlavor="" + MPIRunCommand="" + MPIRunArguments="" + MPIRunWorkingDirectory="" + ApplicationCommand="" + ApplicationArguments="" + ShimCommand="" + MPIAcceptMode="" + MPIAcceptFilter="" + /> + </Configuration> + <Configuration + Name="Debug|Win32" + > + <DebugSettings + Command="" + WorkingDirectory="" + CommandArguments="" + Attach="false" + DebuggerType="3" + Remote="1" + RemoteMachine="MAUERSBERGER" + RemoteCommand="" + HttpUrl="" + PDBPath="" + SQLDebugging="" + Environment="" + EnvironmentMerge="true" + DebuggerFlavor="" + MPIRunCommand="" + MPIRunArguments="" + MPIRunWorkingDirectory="" + ApplicationCommand="" + ApplicationArguments="" + ShimCommand="" + MPIAcceptMode="" + MPIAcceptFilter="" + /> + </Configuration> + <Configuration + Name="Debug|x64" + > + <DebugSettings + Command="" + WorkingDirectory="" + CommandArguments="" + Attach="false" + DebuggerType="3" + Remote="1" + RemoteMachine="MAUERSBERGER" + RemoteCommand="" + HttpUrl="" + PDBPath="" + SQLDebugging="" + Environment="" + EnvironmentMerge="true" + DebuggerFlavor="" + MPIRunCommand="" + MPIRunArguments="" + MPIRunWorkingDirectory="" + ApplicationCommand="" + ApplicationArguments="" + ShimCommand="" + MPIAcceptMode="" + MPIAcceptFilter="" + /> + </Configuration> + </Configurations> +</VisualStudioUserFile> Added: Plugins/Kerberos5/src/dog.ico =================================================================== (Binary files differ) Property changes on: Plugins/Kerberos5/src/dog.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: Plugins/Kerberos5/src/inc/krb5/KerberosIV/des.h =================================================================== --- Plugins/Kerberos5/src/inc/krb5/KerberosIV/des.h (rev 0) +++ Plugins/Kerberos5/src/inc/krb5/KerberosIV/des.h 2011-06-08 14:40:25 UTC (rev 144) @@ -0,0 +1,195 @@ +/* + * include/kerberosIV/des.h + * + * Copyright 1987, 1988, 1994, 2002 by the Massachusetts Institute of + * Technology. All Rights Reserved. + * + * Export of this software from the United States of America may + * require a specific license from the United States Government. + * It is the responsibility of any person or organization contemplating + * export to obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + * distribute this software and its documentation for any purpose and + * without fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright notice and + * this permission notice appear in supporting documentation, and that + * the name of M.I.T. not be used in advertising or publicity pertaining + * to distribution of the software without specific, written prior + * permission. Furthermore if you modify this software you must label + * your software as modified software and not distribute it in such a + * fashion that it might be confused with the original M.I.T. software. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" without express + * or implied warranty. + * + * Include file for the Data Encryption Standard library. + */ + +#if defined(__MACH__) && defined(__APPLE__) +# include <TargetConditionals.h> +# if TARGET_RT_MAC_CFM +# error "Use KfM 4.0 SDK headers for CFM compilation." +# endif +#endif + +#ifdef __cplusplus +#ifndef KRBINT_BEGIN_DECLS +#define KRBINT_BEGIN_DECLS extern "C" { +#define KRBINT_END_DECLS } +#endif +#else +#define KRBINT_BEGIN_DECLS +#define KRBINT_END_DECLS +#endif + +#ifndef KRB5INT_DES_TYPES_DEFINED +#define KRB5INT_DES_TYPES_DEFINED + +#include <limits.h> + +KRBINT_BEGIN_DECLS + +#if TARGET_OS_MAC +# pragma options align=mac68k +#endif + +#if UINT_MAX >= 0xFFFFFFFFUL +#define DES_INT32 int +#define DES_UINT32 unsigned int +#else +#define DES_INT32 long +#define DES_UINT32 unsigned long +#endif + +typedef unsigned char des_cblock[8]; /* crypto-block size */ +/* + * Key schedule. + * + * This used to be + * + * typedef struct des_ks_struct { + * union { DES_INT32 pad; des_cblock _;} __; + * } des_key_schedule[16]; + * + * but it would cause trouble if DES_INT32 were ever more than 4 + * bytes. The reason is that all the encryption functions cast it to + * (DES_INT32 *), and treat it as if it were DES_INT32[32]. If + * 2*sizeof(DES_INT32) is ever more than sizeof(des_cblock), the + * caller-allocated des_key_schedule will be overflowed by the key + * scheduling functions. We can't assume that every platform will + * have an exact 32-bit int, and nothing should be looking inside a + * des_key_schedule anyway. + */ +typedef struct des_ks_struct { DES_INT32 _[2]; } des_key_schedule[16]; + +#if TARGET_OS_MAC +# pragma options align=reset +#endif + +KRBINT_END_DECLS + +#endif /* KRB5INT_DES_TYPES_DEFINED */ + +/* only do the whole thing once */ +#ifndef DES_DEFS +/* + * lib/crypto/des/des_int.h defines KRB5INT_CRYPTO_DES_INT temporarily + * to avoid including the defintions and declarations below. The + * reason that the crypto library needs to include this file is that + * it needs to have its types aligned with krb4's types. + */ +#ifndef KRB5INT_CRYPTO_DES_INT +#define DES_DEFS + +#if defined(_WIN32) +#ifndef KRB4 +#define KRB4 1 +#endif +#include <win-mac.h> +#endif +#include <stdio.h> /* need FILE for des_cblock_print_file */ + +KRBINT_BEGIN_DECLS + +#if TARGET_OS_MAC +# pragma options align=mac68k +#endif + +/* Windows declarations */ +#ifndef KRB5_CALLCONV +#define KRB5_CALLCONV +#define KRB5_CALLCONV_C +#endif + +#define DES_KEY_SZ (sizeof(des_cblock)) +#define DES_ENCRYPT 1 +#define DES_DECRYPT 0 + +#ifndef NCOMPAT +#define C_Block des_cblock +#define Key_schedule des_key_schedule +#define ENCRYPT DES_ENCRYPT +#define DECRYPT DES_DECRYPT +#define KEY_SZ DES_KEY_SZ +#define string_to_key des_string_to_key +#define read_pw_string des_read_pw_string +#define random_key des_random_key +#define pcbc_encrypt des_pcbc_encrypt +#define key_sched des_key_sched +#define cbc_encrypt des_cbc_encrypt +#define cbc_cksum des_cbc_cksum +#define C_Block_print des_cblock_print +#define quad_cksum des_quad_cksum +typedef struct des_ks_struct bit_64; +#endif + +#define des_cblock_print(x) des_cblock_print_file(x, stdout) + +/* + * Function Prototypes + */ + +int KRB5_CALLCONV des_key_sched (C_Block, Key_schedule); + +int KRB5_CALLCONV +des_pcbc_encrypt (C_Block *in, C_Block *out, long length, + const des_key_schedule schedule, C_Block *ivec, + int enc); + +unsigned long KRB5_CALLCONV +des_quad_cksum (const unsigned char *in, unsigned DES_INT32 *out, + long length, int out_count, C_Block *seed); +/* + * XXX ABI change: used to return void; also, cns/kfm have signed long + * instead of unsigned long length. + */ +unsigned long KRB5_CALLCONV +des_cbc_cksum(const des_cblock *, des_cblock *, unsigned long, + const des_key_schedule, const des_cblock *); +int KRB5_CALLCONV des_string_to_key (const char *, C_Block); +void afs_string_to_key(char *, char *, des_cblock); + +/* XXX ABI change: used to return krb5_error_code */ +int KRB5_CALLCONV des_read_password(des_cblock *, char *, int); +int KRB5_CALLCONV des_ecb_encrypt(des_cblock *, des_cblock *, + const des_key_schedule, int); +/* XXX kfm/cns have signed long length */ +int des_cbc_encrypt(des_cblock *, des_cblock *, unsigned long, + const des_key_schedule, const des_cblock *, int); +void des_fixup_key_parity(des_cblock); +int des_check_key_parity(des_cblock); +int KRB5_CALLCONV des_new_random_key(des_cblock); +void des_init_random_number_generator(des_cblock); +int des_random_key(des_cblock *); +int des_is_weak_key(des_cblock); +void des_cblock_print_file(des_cblock *, FILE *fp); + +#if TARGET_OS_MAC +# pragma options align=reset +#endif + +KRBINT_END_DECLS + +#endif /* KRB5INT_CRYPTO_DES_INT */ +#endif /* DES_DEFS */ Added: Plugins/Kerberos5/src/inc/krb5/KerberosIV/kadm_err.h =================================================================== --- Plugins/Kerberos5/src/inc/krb5/KerberosIV/kadm_err.h (rev 0) +++ Plugins/Kerberos5/src/inc/krb5/KerberosIV/kadm_err.h 2011-06-08 14:40:25 UTC (rev 144) @@ -0,0 +1,58 @@ +/* + * include//kerberosIV/kadm_err.h: + * This file is automatically generated; please do not edit it. + */ + +#include <com_err.h> + +#define KADM_RCSID (-1783126272L) +#define KADM_NO_REALM (-1783126271L) +#define KADM_NO_CRED (-1783126270L) +#define KADM_BAD_KEY (-1783126269L) +#define KADM_NO_ENCRYPT (-1783126268L) +#define KADM_NO_AUTH (-1783126267L) +#define KADM_WRONG_REALM (-1783126266L) +#define KADM_NO_ROOM (-1783126265L) +#define KADM_BAD_VER (-1783126264L) +#define KADM_BAD_CHK (-1783126263L) +#define KADM_NO_READ (-1783126262L) +#define KADM_NO_OPCODE (-1783126261L) +#define KADM_NO_HOST (-1783126260L) +#define KADM_UNK_HOST (-1783126259L) +#define KADM_NO_SERV (-1783126258L) +#define KADM_NO_SOCK (-1783126257L) +#define KADM_NO_CONN (-1783126256L) +#define KADM_NO_HERE (-1783126255L) +#define KADM_NO_MAST (-1783126254L) +#define KADM_NO_VERI (-1783126253L) +#define KADM_INUSE (-1783126252L) +#define KADM_UK_SERROR (-1783126251L) +#define KADM_UK_RERROR (-1783126250L) +#define KADM_UNAUTH (-1783126249L) +#define KADM_DATA (-1783126248L) +#define KADM_NOENTRY (-1783126247L) +#define KADM_NOMEM (-1783126246L) +#define KADM_NO_HOSTNAME (-1783126245L) +#define KADM_NO_BIND (-1783126244L) +#define KADM_LENGTH_ERROR (-1783126243L) +#define KADM_ILL_WILDCARD (-1783126242L) +#define KADM_DB_INUSE (-1783126241L) +#define KADM_INSECURE_PW (-1783126240L) +#define KADM_PW_MISMATCH (-1783126239L) +#define KADM_NOT_SERV_PRINC (-1783126238L) +#define KADM_REALM_TOO_LONG (-1783126237L) +#define ERROR_TABLE_BASE_kadm (-1783126272L) + +extern const struct error_table et_kadm_error_table; + +#if !defined(_WIN32) +/* for compatibility with older versions... */ +extern void initialize_kadm_error_table (void) /*@modifies internalState@*/; +#else +#define initialize_kadm_error_table() +#endif + +#if !defined(_WIN32) +#define init_kadm_err_tbl initialize_kadm_error_table +#define kadm_err_base ERROR_TABLE_BASE_kadm +#endif Added: Plugins/Kerberos5/src/inc/krb5/KerberosIV/krb.h =================================================================== --- Plugins/Kerberos5/src/inc/krb5/KerberosIV/krb.h (rev 0) +++ Plugins/Kerberos5/src/inc/krb5/KerberosIV/krb.h 2011-06-08 14:40:25 UTC (rev 144) @@ -0,0 +1,787 @@ +/* + * include/kerberosIV/krb.h + * + * Copyright 1987, 1988, 1994, 2001, 2002 by the Massachusetts + * Institute of Technology. All Rights Reserved. + * + * Export of this software from the United States of America may + * require a specific license from the United States Government. + * It is the responsibility of any person or organization contemplating + * export to obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + * distribute this software and its documentation for any purpose and + * without fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright notice and + * this permission notice appear in supporting documentation, and that + * the name of M.I.T. not be used in advertising or publicity pertaining + * to distribution of the software without specific, written prior + * permission. Furthermore if you modify this software you must label + * your software as modified software and not distribute it in such a + * fashion that it might be confused with the original M.I.T. software. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" without express + * or implied warranty. + * + * Include file for the Kerberos V4 library. + */ + +/* Only one time, please */ +#ifndef KRB_DEFS +#define KRB_DEFS + +/* + * For MacOS, don't expose prototypes of various private functions. + * Unfortuantely, they've leaked out everywhere else. + */ +#if defined(__MACH__) && defined(__APPLE__) +# include <TargetConditionals.h> +# if TARGET_RT_MAC_CFM +# error "Use KfM 4.0 SDK headers for CFM compilation." +# endif +# ifndef KRB_PRIVATE +# define KRB_PRIVATE 0 +# endif +#else +# ifndef KRB_PRIVATE +# define KRB_PRIVATE 1 +# endif +#endif + +/* Define u_char, u_short, u_int, and u_long. */ +/* XXX these typdef names are not standardized! */ +#include <sys/types.h> + +/* Need some defs from des.h */ +#include <kerberosIV/des.h> +#include <kerberosIV/krb_err.h> +#include <profile.h> + +#ifdef _WIN32 +#include <time.h> +#endif /* _WIN32 */ + +#ifdef __cplusplus +#ifndef KRBINT_BEGIN_DECLS +#define KRBINT_BEGIN_DECLS extern "C" { +#define KRBINT_END_DECLS } +#endif +#else +#define KRBINT_BEGIN_DECLS +#define KRBINT_END_DECLS +#endif +KRBINT_BEGIN_DECLS + +#if TARGET_OS_MAC +# pragma options align=mac68k +#endif + +#define KRB4_32 DES_INT32 +#define KRB_INT32 DES_INT32 +#define KRB_UINT32 DES_UINT32 + +#define MAX_KRB_ERRORS 256 + +#if TARGET_OS_MAC +/* ABI divergence on Mac for backwards compatibility. */ +extern const char * const * const krb_err_txt; +#else +extern const char * const krb_err_txt[MAX_KRB_ERRORS]; +#endif + +/* General definitions */ +#define KSUCCESS 0 +#define KFAILURE 255 + +/* + * Kerberos specific definitions + * + * KRBLOG is the log file for the kerberos master server. KRB_CONF is + * the configuration file where different host machines running master + * and slave servers can be found. KRB_MASTER is the name of the + * machine with the master database. The admin_server runs on this + * machine, and all changes to the db (as opposed to read-only + * requests, which can go to slaves) must go to it. KRB_HOST is the + * default machine * when looking for a kerberos slave server. Other + * possibilities are * in the KRB_CONF file. KRB_REALM is the name of + * the realm. + */ + +#define KRB_CONF "/etc/krb.conf" +#define KRB_RLM_TRANS "/etc/krb.realms" +#define KRB_MASTER "kerberos" +#define KRB_HOST KRB_MASTER +#define KRB_REALM "ATHENA.MIT.EDU" + +/* The maximum sizes for aname, realm, sname, and instance +1 */ +#define ANAME_SZ 40 +#define REALM_SZ 40 +#define SNAME_SZ 40 +#define INST_SZ 40 +#define ADDR_SZ 40 +/* + * NB: This overcounts due to NULs. + */ +/* include space for '.' and '@' */ +#define MAX_K_NAME_SZ (ANAME_SZ + INST_SZ + REALM_SZ + 2) +#define KKEY_SZ 100 +#define VERSION_SZ 1 +#define MSG_TYPE_SZ 1 +#define DATE_SZ 26 /* RTI date output */ + +#define MAX_HSTNM 100 + +#ifndef DEFAULT_TKT_LIFE /* allow compile-time override */ +#define DEFAULT_TKT_LIFE 120 /* default lifetime for krb_mk_req */ +#endif + +#define KRB_TICKET_GRANTING_TICKET "krbtgt" + +/* Definition of text structure used to pass text around */ +#define MAX_KTXT_LEN 1250 + +struct ktext { + int length; /* Length of the text */ + unsigned char dat[MAX_KTXT_LEN]; /* The data itself */ + unsigned long mbz; /* zero to catch runaway strings */ +}; + +typedef struct ktext *KTEXT; +typedef struct ktext KTEXT_ST; + + +/* Definitions for send_to_kdc */ +#define CLIENT_KRB_TIMEOUT 4 /* time between retries */ +#define CLIENT_KRB_RETRY 5 /* retry this many times */ +#define CLIENT_KRB_BUFLEN 512 /* max unfragmented packet */ + +/* Definitions for ticket file utilities */ +#define R_TKT_FIL 0 +#define W_TKT_FIL 1 + +/* Definitions for cl_get_tgt */ +#ifdef PC +#define CL_GTGT_INIT_FILE "\\kerberos\\k_in_tkts" +#else +#define CL_GTGT_INIT_FILE "/etc/k_in_tkts" +#endif /* PC */ + +/* Parameters for rd_ap_req */ +/* Maximum allowable clock skew in seconds */ +#define CLOCK_SKEW 5*60 +/* Filename for readservkey */ +#define KEYFILE ((char*)krb__get_srvtabname("/etc/srvtab")) + +/* Structure definition for rd_ap_req */ + +struct auth_dat { + unsigned char k_flags; /* Flags from ticket */ + char pname[ANAME_SZ]; /* Principal's name */ + char pinst[INST_SZ]; /* His Instance */ + char prealm[REALM_SZ]; /* His Realm */ + unsigned KRB4_32 checksum; /* Data checksum (opt) */ + C_Block session; /* Session Key */ + int life; /* Life of ticket */ + unsigned KRB4_32 time_sec; /* Time ticket issued */ + unsigned KRB4_32 address; /* Address in ticket */ + KTEXT_ST reply; /* Auth reply (opt) */ +}; + +typedef struct auth_dat AUTH_DAT; + +/* Structure definition for credentials returned by get_cred */ + +struct credentials { + char service[ANAME_SZ]; /* Service name */ + char instance[INST_SZ]; /* Instance */ + char realm[REALM_SZ]; /* Auth domain */ + C_Block session; /* Session key */ + int lifetime; /* Lifetime */ + int kvno; /* Key version number */ + KTEXT_ST ticket_st; /* The ticket itself */ + KRB4_32 issue_date; /* The issue time */ + char pname[ANAME_SZ]; /* Principal's name */ + char pinst[INST_SZ]; /* Principal's instance */ +#if TARGET_OS_MAC + KRB_UINT32 address; /* Address in ticket */ + KRB_UINT32 stk_type; /* string_to_key function needed */ +#endif +#ifdef _WIN32 + char address[ADDR_SZ]; /* Address in ticket */ +#endif +}; + +typedef struct credentials CREDENTIALS; + +/* Structure definition for rd_private_msg and rd_safe_msg */ + +struct msg_dat { + unsigned char *app_data; /* pointer to appl data */ + unsigned KRB4_32 app_length; /* length of appl data */ + unsigned KRB4_32 hash; /* hash to lookup replay */ + int swap; /* swap bytes? */ + KRB4_32 time_sec; /* msg timestamp seconds */ + unsigned char time_5ms; /* msg timestamp 5ms units */ +}; + +typedef struct msg_dat MSG_DAT; + + +/* Location of ticket file for save_cred and get_cred */ +#ifdef _WIN32 +#define TKT_FILE "\\kerberos\\ticket.ses" +#else +#define TKT_FILE tkt_string() +#define TKT_ROOT "/tmp/tkt" +#endif /* _WIN32 */ + +/* + * Error codes are now defined as offsets from com_err (krb_err.et) + * values. + */ +#define KRB_ET(x) ((KRBET_ ## x) - ERROR_TABLE_BASE_krb) + +/* Error codes returned from the KDC */ +#define KDC_OK KRB_ET(KSUCCESS) /* 0 - Request OK */ +#define KDC_NAME_EXP KRB_ET(KDC_NAME_EXP) /* 1 - Principal expired */ +#define KDC_SERVICE_EXP KRB_ET(KDC_SERVICE_EXP) /* 2 - Service expired */ +#define KDC_AUTH_EXP KRB_ET(KDC_AUTH_EXP) /* 3 - Auth expired */ +#define KDC_PKT_VER KRB_ET(KDC_PKT_VER) /* 4 - Prot version unknown */ +#define KDC_P_MKEY_VER KRB_ET(KDC_P_MKEY_VER) /* 5 - Wrong mkey version */ +#define KDC_S_MKEY_VER KRB_ET(KDC_S_MKEY_VER) /* 6 - Wrong mkey version */ +#define KDC_BYTE_ORDER KRB_ET(KDC_BYTE_ORDER) /* 7 - Byte order unknown */ +#define KDC_PR_UNKNOWN KRB_ET(KDC_PR_UNKNOWN) /* 8 - Princ unknown */ +#define KDC_PR_N_UNIQUE KRB_ET(KDC_PR_N_UNIQUE) /* 9 - Princ not unique */ +#define KDC_NULL_KEY KRB_ET(KDC_NULL_KEY) /* 10 - Princ has null key */ +#define KDC_GEN_ERR KRB_ET(KDC_GEN_ERR) /* 20 - Generic err frm KDC */ + +/* Values returned by get_credentials */ +#define GC_OK KRB_ET(KSUCCESS) /* 0 - Retrieve OK */ +#define RET_OK KRB_ET(KSUCCESS) /* 0 - Retrieve OK */ +#define GC_TKFIL KRB_ET(GC_TKFIL) /* 21 - Can't rd tkt file */ +#define RET_TKFIL KRB_ET(GC_TKFIL) /* 21 - Can't rd tkt file */ +#define GC_NOTKT KRB_ET(GC_NOTKT) /* 22 - Can't find tkt|TGT */ +#define RET_NOTKT KRB_ET(GC_NOTKT) /* 22 - Can't find tkt|TGT */ + +/* Values returned by mk_ap_req */ +#define MK_AP_OK KRB_ET(KSUCCESS) /* 0 - Success */ +#define MK_AP_TGTEXP KRB_ET(MK_AP_TGTEXP) /* 26 - TGT Expired */ + +/* Values returned by rd_ap_req */ +#define RD_AP_OK KRB_ET(KSUCCESS) /* 0 - Request authentic */ +#define RD_AP_UNDEC KRB_ET(RD_AP_UNDEC) /* 31 - Can't decode authent */ +#define RD_AP_EXP KRB_ET(RD_AP_EXP) /* 32 - Ticket expired */ +#define RD_AP_NYV KRB_ET(RD_AP_NYV) /* 33 - Ticket not yet valid */ +#define RD_AP_REPEAT KRB_ET(RD_AP_REPEAT) /* 34 - Repeated request */ +#define RD_AP_NOT_US KRB_ET(RD_AP_NOT_US) /* 35 - Ticket isn't for us */ +#define RD_AP_INCON KRB_ET(RD_AP_INCON) /* 36 - Request inconsistent */ +#define RD_AP_TIME KRB_ET(RD_AP_TIME) /* 37 - delta_t too big */ +#define RD_AP_BADD KRB_ET(RD_AP_BADD) /* 38 - Incorrect net addr */ +#define RD_AP_VERSION KRB_ET(RD_AP_VERSION) /* 39 - prot vers mismatch */ +#define RD_AP_MSG_TYPE KRB_ET(RD_AP_MSG_TYPE) /* 40 - invalid msg type */ +#define RD_AP_MODIFIED KRB_ET(RD_AP_MODIFIED) /* 41 - msg stream modified */ +#define RD_AP_ORDER KRB_ET(RD_AP_ORDER) /* 42 - message out of order */ +#define RD_AP_UNAUTHOR KRB_ET(RD_AP_UNAUTHOR) /* 43 - unauthorized request */ + +/* Values returned by get_pw_tkt */ +#define GT_PW_OK KRB_ET(KSUCCESS) /* 0 - Got passwd chg tkt */ +#define GT_PW_NULL KRB_ET(GT_PW_NULL) /* 51 - Current PW is null */ +#define GT_PW_BADPW KRB_ET(GT_PW_BADPW) /* 52 - Wrong passwd */ +#define GT_PW_PROT KRB_ET(GT_PW_PROT) /* 53 - Protocol Error */ +#define GT_PW_KDCERR KRB_ET(GT_PW_KDCERR) /* 54 - Error ret by KDC */ +#define GT_PW_NULLTKT KRB_ET(GT_PW_NULLTKT) /* 55 - Null tkt ret by KDC */ + +/* Values returned by send_to_kdc */ +#define SKDC_OK KRB_ET(KSUCCESS) /* 0 - Response received */ +#define SKDC_RETRY KRB_ET(SKDC_RETRY) /* 56 - Retry count exceeded */ +#define SKDC_CANT KRB_ET(SKDC_CANT) /* 57 - Can't send request */ + +/* + * Values returned by get_intkt + * (can also return SKDC_* and KDC errors) + */ + +#define INTK_OK KRB_ET(KSUCCESS) /* 0 - Ticket obtained */ +#define INTK_PW_NULL KRB_ET(GT_PW_NULL) /* 51 - Current PW is null */ +#define INTK_W_NOTALL KRB_ET(INTK_W_NOTALL) /* 61 - Not ALL tkts retd */ +#define INTK_BADPW KRB_ET(INTK_BADPW) /* 62 - Incorrect password */ +#define INTK_PROT KRB_ET(INTK_PROT) /* 63 - Protocol Error */ +#define INTK_ERR KRB_ET(INTK_ERR) /* 70 - Other error */ + +/* Values returned by get_adtkt */ +#define AD_OK KRB_ET(KSUCCESS) /* 0 - Ticket Obtained */ +#define AD_NOTGT KRB_ET(AD_NOTGT) /* 71 - Don't have tgt */ + +/* Error codes returned by ticket file utilities */ +#define NO_TKT_FIL KRB_ET(NO_TKT_FIL) /* 76 - No ticket file found */ +#define TKT_FIL_ACC KRB_ET(TKT_FIL_ACC) /* 77 - Can't acc tktfile */ +#define TKT_FIL_LCK KRB_ET(TKT_FIL_LCK) /* 78 - Can't lck tkt file */ +#define TKT_FIL_FMT KRB_ET(TKT_FIL_FMT) /* 79 - Bad tkt file format */ +#define TKT_FIL_INI KRB_ET(TKT_FIL_INI) /* 80 - tf_init not called */ + +/* Error code returned by kparse_name */ +#define KNAME_FMT KRB_ET(KNAME_FMT) /* 81 - Bad krb name fmt */ + +/* Error code returned by krb_mk_safe */ +#define SAFE_PRIV_ERROR (-1) /* syscall error */ + +/* Kerberos ticket flag field bit definitions */ +#define K_FLAG_ORDER 0 /* bit 0 --> lsb */ +#define K_FLAG_1 /* reserved */ +#define K_FLAG_2 /* reserved */ +#define K_FLAG_3 /* reserved */ +#define K_FLAG_4 /* reserved */ +#define K_FLAG_5 /* reserved */ +#define K_FLAG_6 /* reserved */ +#define K_FLAG_7 /* reserved, bit 7 --> msb */ + +/* Are these needed anymore? */ +#ifdef OLDNAMES +#define krb_mk_req mk_ap_req +#define krb_rd_req rd_ap_req +#define krb_kntoln an_to_ln +#define krb_set_key set_serv_key +#define krb_get_cred get_credentials +#define krb_mk_priv mk_private_msg +#define krb_rd_priv rd_private_msg +#define krb_mk_safe mk_safe_msg +#define krb_rd_safe rd_safe_msg +#define krb_mk_err mk_appl_err_msg +#define krb_rd_err rd_appl_err_msg +#define krb_ck_repl check_replay +#define krb_get_pw_in_tkt get_in_tkt +#define krb_get_svc_in_tkt get_svc_in_tkt +#define krb_get_pw_tkt get_pw_tkt +#define krb_realmofhost krb_getrealm +#define krb_get_phost get_phost +#define krb_get_krbhst get_krbhst +#define krb_get_lrealm get_krbrlm +#endif /* OLDNAMES */ + +/* Defines for krb_sendauth and krb_recvauth */ + +#define KOPT_DONT_MK_REQ 0x00000001 /* don't call krb_mk_req */ +#define KOPT_DO_MUTUAL 0x00000002 /* do mutual auth */ +#define KOPT_DONT_CANON 0x00000004 /* don't canonicalize inst as a host */ + +#define KRB_SENDAUTH_VLEN 8 /* length for version strings */ + +#ifdef ATHENA_COMPAT +#define KOPT_DO_OLDSTYLE 0x00000008 /* use the old-style protocol */ +#endif /* ATHENA_COMPAT */ + + +#ifdef _WIN32 +#define TIME_GMT_UNIXSEC win_time_gmt_unixsec((unsigned KRB4_32 *)0) +#define TIME_GMT_UNIXSEC_US(us) win_time_gmt_unixsec((us)) +#define CONVERT_TIME_EPOCH win_time_get_epoch() +#else +/* until we do V4 compat under DOS, just turn this off */ +#define _fmemcpy memcpy +#define _fstrncpy strncpy +#define far_fputs fputs +/* and likewise, just drag in the unix time interface */ +#define TIME_GMT_UNIXSEC unix_time_gmt_unixsec((unsigned KRB4_32 *)0) +#define TIME_GMT_UNIXSEC_US(us) unix_time_gmt_unixsec((us)) +#define CONVERT_TIME_EPOCH ((long)0) /* Unix epoch is Krb epoch */ +#endif /*... [truncated message content] |
From: <pgi...@li...> - 2011-06-08 12:31:32
|
Revision: 143 http://pgina.svn.sourceforge.net/pgina/?rev=143&view=rev Author: hairlesshobo Date: 2011-06-08 12:31:20 +0000 (Wed, 08 Jun 2011) Log Message: ----------- Imported PAM plugin sources Added Paths: ----------- Plugins/PAM/ Plugins/PAM/patches/ Plugins/PAM/patches/sslfix-7212007.patch Plugins/PAM/plugin/ Plugins/PAM/plugin/ChangePass.cpp Plugins/PAM/plugin/ChangePass.h Plugins/PAM/plugin/PAMPlugin.aps Plugins/PAM/plugin/PAMPlugin.clw Plugins/PAM/plugin/PAMPlugin.cpp Plugins/PAM/plugin/PAMPlugin.def Plugins/PAM/plugin/PAMPlugin.dsp Plugins/PAM/plugin/PAMPlugin.dsw Plugins/PAM/plugin/PAMPlugin.h Plugins/PAM/plugin/PAMPlugin.opt Plugins/PAM/plugin/PAMPlugin.plg Plugins/PAM/plugin/PAMPlugin.rc Plugins/PAM/plugin/PAMPlugin.sln Plugins/PAM/plugin/PAMPlugin.vcproj Plugins/PAM/plugin/PAMPluginConfig.cpp Plugins/PAM/plugin/PAMPluginConfig.h Plugins/PAM/plugin/ReadMe.txt Plugins/PAM/plugin/StdAfx.cpp Plugins/PAM/plugin/StdAfx.h Plugins/PAM/plugin/logo.bmp Plugins/PAM/plugin/res/ Plugins/PAM/plugin/res/PAMPlugin.rc2 Plugins/PAM/plugin/resource.h Plugins/PAM/server/ Plugins/PAM/server/GPL Plugins/PAM/server/Makefile.in Plugins/PAM/server/README Plugins/PAM/server/authasst.conf/ Plugins/PAM/server/authasst.conf/authasst.allow Plugins/PAM/server/authasst.conf/authasst.deny Plugins/PAM/server/authasst.conf/authasst.groups Plugins/PAM/server/authasst.conf/authasst.hosts Plugins/PAM/server/authasst.conf/authasst.users Plugins/PAM/server/config/ Plugins/PAM/server/config/config.guess Plugins/PAM/server/config/config.sub Plugins/PAM/server/config/install-sh Plugins/PAM/server/configure Plugins/PAM/server/configure.in Plugins/PAM/server/make_cert.pl Plugins/PAM/server/src/ Plugins/PAM/server/src/Makefile.in Plugins/PAM/server/src/access.c Plugins/PAM/server/src/access.h Plugins/PAM/server/src/actions.c Plugins/PAM/server/src/actions.h Plugins/PAM/server/src/client_test/ Plugins/PAM/server/src/client_test/Makefile Plugins/PAM/server/src/client_test/access_test.c Plugins/PAM/server/src/client_test/client.c Plugins/PAM/server/src/client_test/client2-old.c Plugins/PAM/server/src/client_test/client2.c Plugins/PAM/server/src/client_test/client_old.c Plugins/PAM/server/src/client_test/ssl_agent.c Plugins/PAM/server/src/client_test/ssl_agent.h Plugins/PAM/server/src/common_ssl.c Plugins/PAM/server/src/common_ssl.h Plugins/PAM/server/src/linkedlist.c Plugins/PAM/server/src/linkedlist.h Plugins/PAM/server/src/pam_convs.c Plugins/PAM/server/src/pgina_pam_misc.c Plugins/PAM/server/src/pgina_pam_misc.h Plugins/PAM/server/src/pgina_pam_server.c Plugins/PAM/server/src/pgina_pam_server.h Plugins/PAM/server/src/ssl_stuff.c Plugins/PAM/server/src/ssl_stuff.h Added: Plugins/PAM/patches/sslfix-7212007.patch =================================================================== --- Plugins/PAM/patches/sslfix-7212007.patch (rev 0) +++ Plugins/PAM/patches/sslfix-7212007.patch 2011-06-08 12:31:20 UTC (rev 143) @@ -0,0 +1,65 @@ +diff -Naur pgina_pam-1.1.3/make_cert.pl pgina_pam-working/make_cert.pl +--- pgina_pam-1.1.3/make_cert.pl 2003-09-12 06:30:13.000000000 -0700 ++++ pgina_pam-working/make_cert.pl 2007-07-21 00:26:13.000000000 -0700 +@@ -27,12 +27,12 @@ + qx{$openssl_loc req -newkey rsa:2048 -sha1 -keyout CA_key.pem -out CA_request.pem}; + print "\n\nNow for the second part, provide the pass you gave last step when prompted\n"; + qx{$openssl_loc x509 -req -in CA_request.pem -sha1 -extensions v3_ca -CA root.pem -CAkey root.pem -CAcreateserial -out CAcert.pem}; +-qx{cat CAcert.pem CA_key.pem root_certificate > CA.pem}; ++qx{cat CAcert.pem CA_key.pem root_certificate.pem > CA.pem}; + print "\n\nNow we can actually create the cert for your daemon. One moment while we generate a key\n"; + qx{$openssl_loc genrsa 2048 > server_key.pem}; + print "\nOne more time through the drill as before."; + qx{$openssl_loc req -new -key server_key.pem -sha1 -out server_request.pem}; + qx{$openssl_loc x509 -req -in server_request.pem -sha1 -extensions usr_cert -CA CA.pem -CAkey CA.pem -CAcreateserial -out server_certificate.pem}; +-qx{cat server_certificate.pem server_key.pem CAcert.pem root_certificate > cert.pem}; ++qx{cat server_certificate.pem server_key.pem CAcert.pem root_certificate.pem > cert.pem}; + qx{cat cert.pem > /etc/pgina_pam/cert.pem}; + print "\n\nYour certificate has been generated and stored in /etc/pgina_pam/cert.pem. This completes the installation of the pGina PAM daemon.\n"; +diff -Naur pgina_pam-1.1.3/src/Makefile.in pgina_pam-working/src/Makefile.in +--- pgina_pam-1.1.3/src/Makefile.in 2003-09-12 06:30:13.000000000 -0700 ++++ pgina_pam-working/src/Makefile.in 2007-07-21 00:29:05.000000000 -0700 +@@ -23,5 +23,5 @@ + all: $(TARGET) + + $(TARGET): $(OBJECTS) +- $(CC) -o $(TARGET) $(OBJECTS) $(LIBS) ++ $(CC) $(CFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS) + +diff -Naur pgina_pam-1.1.3/src/pgina_pam_server.c pgina_pam-working/src/pgina_pam_server.c +--- pgina_pam-1.1.3/src/pgina_pam_server.c 2003-09-12 06:30:13.000000000 -0700 ++++ pgina_pam-working/src/pgina_pam_server.c 2007-07-21 00:30:39.000000000 -0700 +@@ -583,12 +583,13 @@ + + syslog(LOG_INFO,"Using port: %s and certificate: %s",port,certfile); + ++ SSL_library_init(); + OpenSSL_add_all_algorithms(); // Initialize the OpenSSL library + SSL_load_error_strings(); // Have the OpenSSL library load its error strings + + + syslog(LOG_INFO,"Loading entropy, this may take a minute."); +- ++ + if(!seed_prng(2048)) // Seed OpenSSL's PRNG + syslog(LOG_INFO,"Error loading entropy - continuing anyway."); + +diff -Naur pgina_pam-1.1.3/src/ssl_stuff.c pgina_pam-working/src/ssl_stuff.c +--- pgina_pam-1.1.3/src/ssl_stuff.c 2003-09-12 06:30:13.000000000 -0700 ++++ pgina_pam-working/src/ssl_stuff.c 2007-07-21 00:23:05.000000000 -0700 +@@ -71,9 +71,14 @@ + + SSL_CTX *setup_ssl_ctx(char *certfile) + { +- SSL_CTX *ctx; ++ SSL_CTX *ctx = 0; + + ctx = SSL_CTX_new(TLSv1_server_method()); ++ if(!ctx) ++ { ++ ERR_print_errors_fp(stderr); ++ return ctx; ++ } + if(SSL_CTX_use_certificate_file(ctx,certfile,SSL_FILETYPE_PEM) != 1) + return NULL; + if(SSL_CTX_use_PrivateKey_file(ctx,certfile,SSL_FILETYPE_PEM) != 1) Added: Plugins/PAM/plugin/ChangePass.cpp =================================================================== --- Plugins/PAM/plugin/ChangePass.cpp (rev 0) +++ Plugins/PAM/plugin/ChangePass.cpp 2011-06-08 12:31:20 UTC (rev 143) @@ -0,0 +1,87 @@ +// ChangePass.cpp : implementation file +// + +#include "stdafx.h" +#include "PAMPlugin.h" +#include "ChangePass.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CChangePass dialog + + +CChangePass::CChangePass(CWnd* pParent /*=NULL*/) + : CDialog(CChangePass::IDD, pParent) +{ + //{{AFX_DATA_INIT(CChangePass) + m_pass1 = _T(""); + m_pass2 = _T(""); + m_message = _T(PAMPLUGIN_ABOUT); + //}}AFX_DATA_INIT +} + + +void CChangePass::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CChangePass) + DDX_Control(pDX, IDC_PASS1, m_pass1ctl); + DDX_Text(pDX, IDC_PASS1, m_pass1); + DDX_Text(pDX, IDC_PASS2, m_pass2); + DDX_Text(pDX, ID_MESSAGES, m_message); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CChangePass, CDialog) + //{{AFX_MSG_MAP(CChangePass) + ON_BN_CLICKED(IDOK, OnApply) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CChangePass message handlers + +void CChangePass::OnApply() +{ + // TODO: Add your control notification handler code here + UpdateData(TRUE); // get the data + if(m_pass1 != m_pass2) + { + m_message = "Your new passwords do not match, please try again."; + m_pass1 = ""; + m_pass2 = ""; + m_pass1ctl.SetFocus(); + // TODO: Set focus to IDC_PASS1 + UpdateData(FALSE); + } + else + { + CString glo = glPassword; + if(m_pass1 != glo) + { + glPassword = strdup(m_pass1.GetBuffer(m_pass1.GetLength())); + CDialog::OnOK(); + } + else + { + m_message = "You cannot use the same password you had previously set. Please choose another."; + m_pass1 = ""; + m_pass2 = ""; + m_pass1ctl.SetFocus(); + UpdateData(FALSE); + } + } +} + +void CChangePass::OnCancel() +{ + // TODO: Add extra cleanup here + glPassword = NULL; + CDialog::OnCancel(); +} Property changes on: Plugins/PAM/plugin/ChangePass.cpp ___________________________________________________________________ Added: svn:executable + * Added: Plugins/PAM/plugin/ChangePass.h =================================================================== --- Plugins/PAM/plugin/ChangePass.h (rev 0) +++ Plugins/PAM/plugin/ChangePass.h 2011-06-08 12:31:20 UTC (rev 143) @@ -0,0 +1,51 @@ +#if !defined(AFX_CHANGEPASS_H__0D07993A_0328_4B77_8456_EDCAAACB45A2__INCLUDED_) +#define AFX_CHANGEPASS_H__0D07993A_0328_4B77_8456_EDCAAACB45A2__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// ChangePass.h : header file +// + +///////////////////////////////////////////////////////////////////////////// +// CChangePass dialog +#include "PAMPlugin.h" +extern char *glPassword; +class CChangePass : public CDialog +{ +// Construction +public: + CChangePass(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CChangePass) + enum { IDD = IDD_CHGPASS }; + CEdit m_pass1ctl; + CString m_pass1; + CString m_pass2; + CString m_message; + //}}AFX_DATA + + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CChangePass) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + //}}AFX_VIRTUAL + +// Implementation +protected: + + // Generated message map functions + //{{AFX_MSG(CChangePass) + afx_msg void OnApply(); + virtual void OnCancel(); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_CHANGEPASS_H__0D07993A_0328_4B77_8456_EDCAAACB45A2__INCLUDED_) Property changes on: Plugins/PAM/plugin/ChangePass.h ___________________________________________________________________ Added: svn:executable + * Added: Plugins/PAM/plugin/PAMPlugin.aps =================================================================== (Binary files differ) Property changes on: Plugins/PAM/plugin/PAMPlugin.aps ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: Plugins/PAM/plugin/PAMPlugin.clw =================================================================== --- Plugins/PAM/plugin/PAMPlugin.clw (rev 0) +++ Plugins/PAM/plugin/PAMPlugin.clw 2011-06-08 12:31:20 UTC (rev 143) @@ -0,0 +1,75 @@ +; CLW file contains information for the MFC ClassWizard + +[General Info] +Version=1 +ClassCount=3 +Class1=PAMPluginConfig +LastClass=PAMPluginConfig +NewFileInclude2=#include "PAMPlugin.h" +ResourceCount=2 +NewFileInclude1=#include "stdafx.h" +LastTemplate=CDialog +Class2=EditClass +Resource1=IDD_CONFIG_DIALOG +Class3=CChangePass +Resource2=IDD_CHGPASS + +[DLG:IDD_CONFIG_DIALOG] +Type=1 +Class=PAMPluginConfig +ControlCount=15 +Control1=IDOK,button,1342242817 +Control2=IDCANCEL,button,1342242816 +Control3=IDC_STATIC,static,1350569998 +Control4=IDC_STATIC,button,1342177799 +Control5=IDC_ABOUT,edit,1342179332 +Control6=IDC_STATIC,static,1342308352 +Control7=IDC_HOSTNAME,edit,1350631552 +Control8=IDC_STATIC,static,1342308352 +Control9=IDC_PORT,edit,1350631552 +Control10=IDC_STATIC,button,1342177287 +Control11=IDC_REFLECTGROUP,button,1342242819 +Control12=IDC_CREATEADMINS,button,1342251011 +Control13=IDC_ADMINGROUP,edit,1350631552 +Control14=IDC_PASSCHANGE,button,1342242819 +Control15=IDC_REQUIRED,button,1342242819 + +[CLS:PAMPluginConfig] +Type=0 +HeaderFile=PAMPluginConfig.h +ImplementationFile=PAMPluginConfig.cpp +BaseClass=CDialog +Filter=D +LastObject=IDC_REFLECTGROUP +VirtualFilter=dWC + +[CLS:EditClass] +Type=0 +HeaderFile=EditClass.h +ImplementationFile=EditClass.cpp +BaseClass=CEdit +Filter=W + +[DLG:IDD_CHGPASS] +Type=1 +Class=CChangePass +ControlCount=9 +Control1=IDOK,button,1342242817 +Control2=IDCANCEL,button,1342242816 +Control3=IDC_STATIC,static,1342308352 +Control4=IDC_STATIC,static,1342308352 +Control5=IDC_STATIC,static,1342308352 +Control6=IDC_PASS1,edit,1350631584 +Control7=IDC_PASS2,edit,1350631584 +Control8=IDC_STATIC,button,1342177287 +Control9=ID_MESSAGES,static,1342308352 + +[CLS:CChangePass] +Type=0 +HeaderFile=ChangePass.h +ImplementationFile=ChangePass.cpp +BaseClass=CDialog +Filter=D +VirtualFilter=dWC +LastObject=CChangePass + Property changes on: Plugins/PAM/plugin/PAMPlugin.clw ___________________________________________________________________ Added: svn:executable + * Added: Plugins/PAM/plugin/PAMPlugin.cpp =================================================================== --- Plugins/PAM/plugin/PAMPlugin.cpp (rev 0) +++ Plugins/PAM/plugin/PAMPlugin.cpp 2011-06-08 12:31:20 UTC (rev 143) @@ -0,0 +1,558 @@ +/* +pGina PAM Plugin for pGina +Copyright (C) 2003 Nathan Yocom + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +Email: nat...@xp... +Web: http://pgina.xpasystems.com +Snail Mail: + Nathan Yocom + 9 Evergreen Farms Rd. + Scarborough, ME 04074 + Phone: 207-450-4948 +*/ + +// PAMPlugin.cpp : Defines the initialization routines for the DLL. +// + +#include "stdafx.h" +#include "PAMPlugin.h" +#include "PAMPluginConfig.h" +#include "ChangePass.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +//#include <wchar.h> +//#include <tchar.h> + +#include <openssl/ssl.h> + +//#include <string> + +// Our messages for sending to the server +#define AUTH_ACTION "AUTH" +#define SUCCESS "SUCC" +#define EXPIRED "EXP" +#define ERROR "ERR" +#define CHANGE_PASS "CHPS" +#define GET_GROUP "GGRP" +#define LOCKEDOUT "LKD" +#define DONE "!" + +char * glPassword; + +CTestApp theApp; + +int check_login(LPTSTR Username,LPTSTR Password,pGinaInfo *settingsInfo) +{ + SSL *ssl; + char *result; + char *admin_groups; + char *current_group; + bool authenticated = false; + + settingsInfo->allowPassChange = false; + settingsInfo->isAdmin = false; + + ssl = connect_to_server(settingsInfo); + + if(!ssl) + { + return 0; + } + // If we get this far, we are connected and can begin our authentication + + // Tell the server what action we are doing + send_string(ssl,AUTH_ACTION); + // Then send username and password (seperatley) + send_string(ssl,convert_to_char(settingsInfo->Username)); + send_string(ssl,convert_to_char(settingsInfo->Password)); + + result = read_string(ssl); + + + if(!strcmp(result,SUCCESS)) + { + // Now process group membership etc + if(regReadBool("reflect_group") || regReadBool("create_admins")) + { + send_string(ssl,GET_GROUP); + send_string(ssl,convert_to_char(settingsInfo->Username)); + result = read_string(ssl); // Get the resulting group + + if(strcmp(result,ERROR) && regReadBool("reflect_group")) + settingsInfo->userGroups = convert_to_wchar(result); + + if(strcmp(result,ERROR) && regReadBool("create_admins")) + { + // Check to see if the resulting group is in the list of admin groups + // admin_groups looks like: group1,group2,group3 + // probably a pretty massive mem leak here.. but hey, we get unloaded later right? :) + + // First read the entyr + admin_groups = regReadString("admin_group"); + // As long as we got something + if(admin_groups != NULL) + { + // Get the first group + current_group = strtok(admin_groups,","); + // So long as there are groups to get + while(current_group != NULL) { + // If this group matches the one the user is in, they are an admin + if(strcmp(result,current_group) == 0) + { + settingsInfo->isAdmin = true; + settingsInfo->allowPassChange = true; + } + current_group = strtok(NULL,","); + } + } + + /* The Old Way + if(!strcmp(result,regReadString("admin_group"))) + { + settingsInfo->isAdmin = true; + settingsInfo->allowPassChange = true; + }*/ + } + + if(regReadBool("change_pass")) + settingsInfo->allowPassChange = true; + } + + send_string(ssl,DONE); + SSL_shutdown(ssl); + return 1; + } + else + { + if(!strcmp(result,EXPIRED)) + { + send_string(ssl,DONE); + SSL_shutdown(ssl); + return -1; // Return expired + } + else + { + send_string(ssl,DONE); // Tell the server we need nothing more right now + SSL_shutdown(ssl); + return 0; + } + } +} + +/* This is the function that pGina calls to find out whether a user is authorized or not + it is also the place to put changes in per-user configurations etc. */ +PAMPLUGIN_API BOOL UserLogin(LPTSTR Username, LPTSTR Password, pGinaInfo *settingsInfo) +{ + int retval = 0; + pGinaInfo pInfo; + retval = check_login(Username,Password,settingsInfo); + + switch(retval) { + case -1: + glPassword = convert_to_char(settingsInfo->Password); + show_change_pass(); + if(glPassword != NULL) + { + if(change_pass(Username,Password,glPassword)) + { + // Messageboxes just end up behind pgina.. when it works they'll know + //MessageBox(NULL,"You password was changed and updated successfully","Success",MB_OK|MB_ICONINFORMATION); + pInfo.Username = settingsInfo->Username; + pInfo.Password = convert_to_wchar(glPassword); + retval = check_login(Username,convert_to_wchar(glPassword),&pInfo); + } + else + { + settingsInfo->errorString = convert_to_wchar("Unable to reset your password. Please contact a system administrator for details"); + retval = 0; + } + } + else + { + settingsInfo->errorString = convert_to_wchar("You need to reset your password before you can be admitted."); + retval = 0; + } + + if(retval != 1) + return false; + else + { + // If we get here, then pInfo holds the info we want + settingsInfo->isAdmin = pInfo.isAdmin; + settingsInfo->allowPassChange = pInfo.allowPassChange; + settingsInfo->Password = convert_to_wchar(glPassword); + return true; + } + break; + case 0: + return false; + break; + case 1: + return true; + break; + } + + return false; +} + +void show_change_pass(void) +{ + AFX_MANAGE_STATE(AfxGetStaticModuleState()); + CChangePass MyDialog; + MyDialog.DoModal(); +} + +bool change_pass(LPTSTR Username, LPTSTR OldPassword,char *NewPassword) +{ + pGinaInfo settingsInfo; + SSL *ssl = connect_to_server(&settingsInfo); + char *result = NULL; + + if(!ssl) + return false; // Had a problem, fail out + + send_string(ssl,CHANGE_PASS); // Tell the server what we want to do + send_string(ssl,convert_to_char(Username)); // Now we need to auth the username and pass + send_string(ssl,convert_to_char(OldPassword)); // Old password to verify who we are + result = read_string(ssl); // Find out what the server says + send_string(ssl,NewPassword); // Send our new pass + result = read_string(ssl); // Find out whether the change works or not + send_string(ssl,DONE); + SSL_shutdown(ssl); + + if(!strcmp(result,SUCCESS)) + return true; + else + { + return false; + } + +} +PAMPLUGIN_API BOOL ChangeUserPassword(LPTSTR Username,LPTSTR OldPassword,LPTSTR NewPassword) +{ + pGinaInfo settingsInfo; + SSL *ssl = connect_to_server(&settingsInfo); + char *result = NULL; + + if(!ssl) + return false; // Had a problem, fail out + + send_string(ssl,CHANGE_PASS); // Tell the server what we want to do + send_string(ssl,convert_to_char(Username)); // Now we need to auth the username and pass + send_string(ssl,convert_to_char(OldPassword)); // Old password to verify who we are + result = read_string(ssl); // Find out what the server says + + if(!strcmp(result,SUCCESS)) + { + send_string(ssl,convert_to_char(NewPassword)); // Send our new pass + result = read_string(ssl); // Find out whether the change works or not + send_string(ssl,DONE); + SSL_shutdown(ssl); + + if(!strcmp(result,SUCCESS)) + return true; + else + { + return false; + } + } + else + { + // We werent able to prove our identity + send_string(ssl,DONE); + SSL_shutdown(ssl); + return false; + } +} + +PAMPLUGIN_API LPCTSTR AboutPlugin(void) +{ + // Return a sample descriptions string + return convert_to_wchar(PAMPLUGIN_ABOUT); +} +PAMPLUGIN_API void ChangePluginSettings(void) +{ + AFX_MANAGE_STATE(AfxGetStaticModuleState()); + PAMPluginConfig MyDialog; + MyDialog.DoModal(); +} +PAMPLUGIN_API void LoginHook(pGinaInfo *settingsInfo) +{ + +} +PAMPLUGIN_API void LogoutHook(pGinaInfo *settingsInfo) +{ + +} + +PAMPLUGIN_API BOOL IsRequired(void) +{ + if(regReadBool("am_i_required")) + return true; + else + return false; +} + +char * regReadString(LPCSTR location) +{ + LONG lResult; + HKEY hKey; + DWORD dwBytesRead = 2048; + char result[2048]; + char *ret; + + lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE,_T("SOFTWARE\\pGina\\PAMPlugin"),0,KEY_QUERY_VALUE,&hKey); + + if(lResult == ERROR_SUCCESS) + { + lResult = RegQueryValueEx(hKey,location,NULL,NULL,(LPBYTE)&result,&dwBytesRead); + + if(lResult == ERROR_SUCCESS) + { + if(dwBytesRead != 0) + { + //ret = (TCHAR *)malloc((sizeof(TCHAR) * dwBytesRead) + 1); + ret = strdup(result); + RegCloseKey(hKey); + return ret; + } + else + { + return NULL; + } + } + } + RegCloseKey(hKey); + return NULL; +} + +void regWriteString(LPCSTR value,LPCSTR location) +{ + HKEY hKey; + + if(RegCreateKeyEx(HKEY_LOCAL_MACHINE,_T("SOFTWARE\\pGina\\PAMPlugin"),0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,NULL) == ERROR_SUCCESS) + { + if(value != NULL) + if(RegSetValueEx(hKey,location,0,REG_SZ,(CONST BYTE *) value, strlen(value)*sizeof(char)) == ERROR_SUCCESS) + { + RegFlushKey(hKey); + RegCloseKey(hKey); + return; + } + } + + RegFlushKey(hKey); + RegCloseKey(hKey); + return; +} + +void regWriteBool(BOOL value,LPCSTR location) +{ + HKEY hKey; + DWORD write; + + write = (value ? 1 : 0); + + if(RegCreateKeyEx(HKEY_LOCAL_MACHINE,_T("SOFTWARE\\pGina\\PAMPlugin"),0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL, &hKey,NULL) == ERROR_SUCCESS) + if(RegSetValueEx(hKey,location,0,REG_DWORD,(LPBYTE)&write,sizeof(DWORD)) == ERROR_SUCCESS) + { + RegFlushKey(hKey); + RegCloseKey(hKey); + return; + } + RegFlushKey(hKey); + RegCloseKey(hKey); + return; +} + +BOOL regReadBool(LPCSTR location) +{ + LONG lResult; + HKEY hKey; + DWORD value = 0; + DWORD size = sizeof(DWORD); + + lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE,_T("SOFTWARE\\pGina\\PAMPlugin"),0,KEY_QUERY_VALUE,&hKey); + + if(lResult == ERROR_SUCCESS) + { + lResult = RegQueryValueEx(hKey,location,NULL,NULL,(LPBYTE)&value,&size); + + if(lResult == ERROR_SUCCESS) + { + RegCloseKey(hKey); + if(value == 1) + return true; + else + return false; + } + } + RegCloseKey(hKey); + return false; +} + + + +char * convert_to_char(const TCHAR *from) +{ + char *to = (char *) GlobalAlloc(NULL,1024); + + WideCharToMultiByte(CP_ACP, + NULL, + (LPCWSTR)from, + -1, + to, + 1024, + NULL, + NULL); + + return to; +} + +TCHAR* convert_to_wchar(const char *from) +{ + TCHAR *to; + + to = (TCHAR *) GlobalAlloc(NULL,1024*sizeof(TCHAR)+1); + MultiByteToWideChar(CP_ACP, + NULL, + (LPCSTR)from, + strlen(from)+1, + (LPWSTR)to, + 1024*sizeof(TCHAR)+1); + + return to; + +} + +void send_string(SSL *mySSL, char *message) +{ + int error = 0, wrote = 0; + + for(wrote = 0; wrote <= strlen(message); wrote++) + { + error = SSL_write(mySSL,&message[wrote],1); + + if(error <= 0) + break; + } + return; +} + +char * read_string(SSL *mySSL) +{ + char buffer[1024]; + char *ret; + char this_one; + int error = 0, read_in = 0; + + memset(buffer,'\0',sizeof(buffer)); + + for(read_in = 0; read_in < sizeof(buffer); read_in += error) + { + error = SSL_read(mySSL,&this_one,1); + buffer[read_in] = this_one; + + if(error <= 0 || this_one == '\0' || this_one == '\n') + break; + } + + // Buffer is good here + ret = (char *) malloc(strlen(buffer) + 1); + strcpy(ret,buffer); + + return ret; +} + +SSL * connect_to_server(pGinaInfo *settingsInfo) +{ + SSL *ssl; + SSL_CTX *ctx; + BIO *conn; + char *pam_host; + + // Init OpenSSL + OpenSSL_add_all_algorithms(); + SSL_load_error_strings(); + + // Init context + ctx = SSL_CTX_new(TLSv1_method()); + if(!ctx) + { + settingsInfo->errorString = convert_to_wchar("PAMPlugin: Error creating context."); + return NULL; + } + + // Init SSL + ssl = SSL_new(ctx); + if(!ssl) + { + settingsInfo->errorString = convert_to_wchar("PAMPlugin: Error creating SSL."); + return NULL; + } + + pam_host = regReadString(TEXT("PAMHost")); + conn = BIO_new_connect(pam_host); + + if(!conn) + { + settingsInfo->errorString = convert_to_wchar("PAMPlugin: Error in BIO_new_connect."); + return NULL; + } + + if(BIO_do_connect(conn) <= 0) + { + settingsInfo->errorString = convert_to_wchar("PAMPlugin: Error in BIO_do_connect."); + return NULL; + } + + SSL_set_bio(ssl,conn,conn); + + if(SSL_connect(ssl) <= 0) + { + settingsInfo->errorString = convert_to_wchar("PAMPlugin: Error in SSL handshake."); + return NULL; + } + + return ssl; +} + + +BEGIN_MESSAGE_MAP(CTestApp, CWinApp) + //{{AFX_MSG_MAP(CTestApp) + // NOTE - the ClassWizard will add and remove mapping macros here. + // DO NOT EDIT what you see in these blocks of generated code! + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CTestApp construction + +CTestApp::CTestApp() +{ + // TODO: add construction code here, + // Place all significant initialization in InitInstance +} + +///////////////////////////////////////////////////////////////////////////// +// The one and only CTestApp object + Property changes on: Plugins/PAM/plugin/PAMPlugin.cpp ___________________________________________________________________ Added: svn:executable + * Added: Plugins/PAM/plugin/PAMPlugin.def =================================================================== --- Plugins/PAM/plugin/PAMPlugin.def (rev 0) +++ Plugins/PAM/plugin/PAMPlugin.def 2011-06-08 12:31:20 UTC (rev 143) @@ -0,0 +1,7 @@ +; PAMPlugin.def : Declares the module parameters for the DLL. + +LIBRARY "PAMPlugin" +DESCRIPTION 'PAMPlugin Windows Dynamic Link Library' + +EXPORTS + ; Explicit exports can go here Property changes on: Plugins/PAM/plugin/PAMPlugin.def ___________________________________________________________________ Added: svn:executable + * Added: Plugins/PAM/plugin/PAMPlugin.dsp =================================================================== --- Plugins/PAM/plugin/PAMPlugin.dsp (rev 0) +++ Plugins/PAM/plugin/PAMPlugin.dsp 2011-06-08 12:31:20 UTC (rev 143) @@ -0,0 +1,169 @@ +# Microsoft Developer Studio Project File - Name="PAMPlugin" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=PAMPlugin - Win32 Debug +!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 "PAMPlugin.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 "PAMPlugin.mak" CFG="PAMPlugin - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "PAMPlugin - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "PAMPlugin - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "PAMPlugin - Win32 Release" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL /FORCE:MULTIPLE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 libeay32.lib ssleay32.lib /nologo /subsystem:windows /dll /machine:I386 +# SUBTRACT LINK32 /incremental:yes + +!ELSEIF "$(CFG)" == "PAMPlugin - Win32 Debug" + +# PROP BASE Use_MFC 6 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 6 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL /FORCE:MULTIPLE" /Yu"stdafx.h" /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +# ADD RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 libeay32.lib ssleay32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "PAMPlugin - Win32 Release" +# Name "PAMPlugin - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\ChangePass.cpp +# End Source File +# Begin Source File + +SOURCE=.\PAMPlugin.cpp +# End Source File +# Begin Source File + +SOURCE=.\PAMPlugin.def +# End Source File +# Begin Source File + +SOURCE=.\PAMPlugin.rc +# End Source File +# Begin Source File + +SOURCE=.\PAMPluginConfig.cpp +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\ChangePass.h +# End Source File +# Begin Source File + +SOURCE=.\PAMPlugin.h +# End Source File +# Begin Source File + +SOURCE=.\PAMPluginConfig.h +# End Source File +# Begin Source File + +SOURCE=.\Resource.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\bitmap1.bmp +# End Source File +# Begin Source File + +SOURCE=.\logo.bmp +# End Source File +# Begin Source File + +SOURCE=.\pam_pgin.bmp +# End Source File +# Begin Source File + +SOURCE=.\res\PAMPlugin.rc2 +# End Source File +# End Group +# Begin Source File + +SOURCE=.\ReadMe.txt +# End Source File +# End Target +# End Project Property changes on: Plugins/PAM/plugin/PAMPlugin.dsp ___________________________________________________________________ Added: svn:executable + * Added: Plugins/PAM/plugin/PAMPlugin.dsw =================================================================== --- Plugins/PAM/plugin/PAMPlugin.dsw (rev 0) +++ Plugins/PAM/plugin/PAMPlugin.dsw 2011-06-08 12:31:20 UTC (rev 143) @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "PAMPlugin"=".\PAMPlugin.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + Property changes on: Plugins/PAM/plugin/PAMPlugin.dsw ___________________________________________________________________ Added: svn:executable + * Added: Plugins/PAM/plugin/PAMPlugin.h =================================================================== --- Plugins/PAM/plugin/PAMPlugin.h (rev 0) +++ Plugins/PAM/plugin/PAMPlugin.h 2011-06-08 12:31:20 UTC (rev 143) @@ -0,0 +1,126 @@ +/* +pGina PAM Plugin for pGina +Copyright (C) 2003 Nathan Yocom + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +Email: nat...@xp... +Web: http://pgina.xpasystems.com +Snail Mail: + Nathan Yocom + 9 Evergreen Farms Rd. + Scarborough, ME 04074 + Phone: 207-450-4948 +*/ +// PAMPlugin.h : main header file for the PAMPLUGIN DLL +// + +#if !defined(AFX_PAMPLUGIN_H__FE64E388_890E_4EA3_8B91_B9894F1D249D__INCLUDED_) +#define AFX_PAMPLUGIN_H__FE64E388_890E_4EA3_8B91_B9894F1D249D__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#ifndef __AFXWIN_H__ + #error include 'stdafx.h' before including this file for PCH +#endif + +#include "resource.h" // main symbols + +#define PAMPLUGIN_API extern "C" __declspec(dllexport) + +#define PAMPLUGIN_VERSION "1.0.1" +#define PAMPLUGIN_ABOUT "PAM Plugin Version " PAMPLUGIN_VERSION " for pGina -- By Nathan Yocom (nat...@xp...) -- Released under the GPL by XPA Systems -- http://www.xpasystems.com" + +#include <openssl/ssl.h> + +typedef struct pGinaInfo { + LPTSTR pathMSGina; + LPTSTR pathPlugin; + LPTSTR pathProfile; + LPTSTR mapPaths; + LPTSTR Username; + LPTSTR Password; + LPTSTR homeDir; + BOOL isAdmin; + BOOL disabled; + int authType; + HANDLE hUser; + LPTSTR userGroups; + LPTSTR userDescription; + LPTSTR userFullName; + BOOL allowPassChange; + LPTSTR errorString; + LPTSTR defaultDomain; + BOOL Reserved3; + BOOL Reserved4; +} pGinaInfo ; + +// Export these methods... - REQUIRED +PAMPLUGIN_API BOOL UserLogin(LPTSTR, LPTSTR,pGinaInfo *); +PAMPLUGIN_API BOOL ChangeUserPassword(LPTSTR,LPTSTR,LPTSTR); +PAMPLUGIN_API LPCTSTR AboutPlugin(void); +PAMPLUGIN_API void ChangePluginSettings(void); +PAMPLUGIN_API void LoginHook(pGinaInfo *); +PAMPLUGIN_API void LogoutHook(pGinaInfo *); + +// Option method with the 1.6.x series and up of pGina +PAMPLUGIN_API BOOL IsRequired(void); + +TCHAR * regReadString(LPCTSTR); +void regWriteString(LPCSTR,LPCSTR); +void regWriteBool(BOOL,LPCSTR); +BOOL regReadBool(LPCSTR); + + +char * convert_to_char(const TCHAR *); // from unicode to non for host/port string +TCHAR* convert_to_wchar(const char *); + +void send_string(SSL *,char *); +char * read_string(SSL *); +SSL * connect_to_server(pGinaInfo *); +bool change_pass(LPTSTR Username, LPTSTR OldPassword,char *NewPassword); +// 0 = fail +// 1 = good +// -1 = expired +// -2 = locked +int check_login(LPTSTR,LPTSTR,pGinaInfo *); +void show_change_pass(void); + + +class CTestApp : public CWinApp +{ +public: + CTestApp(); + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CTestApp) + //}}AFX_VIRTUAL + + //{{AFX_MSG(CTestApp) + // NOTE - the ClassWizard will add and remove member functions here. + // DO NOT EDIT what you see in these blocks of generated code ! + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +///////////////////////////////////////////////////////////////////////////// + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_PAMPLUGIN_H__FE64E388_890E_4EA3_8B91_B9894F1D249D__INCLUDED_) Property changes on: Plugins/PAM/plugin/PAMPlugin.h ___________________________________________________________________ Added: svn:executable + * Added: Plugins/PAM/plugin/PAMPlugin.opt =================================================================== (Binary files differ) Property changes on: Plugins/PAM/plugin/PAMPlugin.opt ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: Plugins/PAM/plugin/PAMPlugin.plg =================================================================== --- Plugins/PAM/plugin/PAMPlugin.plg (rev 0) +++ Plugins/PAM/plugin/PAMPlugin.plg 2011-06-08 12:31:20 UTC (rev 143) @@ -0,0 +1,55 @@ +<html> +<body> +<pre> +<h1>Build Log</h1> +<h3> +--------------------Configuration: PAMPlugin - Win32 Release-------------------- +</h3> +<h3>Command Lines</h3> +Creating command line "rc.exe /l 0x409 /fo"Release/PAMPlugin.res" /d "NDEBUG" /d "_AFXDLL" "Z:\Plugins\PAM\PAMPlugin\PAMPlugin.rc"" +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSPDF.tmp" with contents +[ +/nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL /FORCE:MULTIPLE" /Fp"Release/PAMPlugin.pch" /Yu"stdafx.h" /Fo"Release/" /Fd"Release/" /FD /c +"Z:\Plugins\PAM\PAMPlugin\ChangePass.cpp" +"Z:\Plugins\PAM\PAMPlugin\PAMPlugin.cpp" +"Z:\Plugins\PAM\PAMPlugin\PAMPluginConfig.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSPDF.tmp" +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSPE0.tmp" with contents +[ +/nologo /MD /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL /FORCE:MULTIPLE" /Fp"Release/PAMPlugin.pch" /Yc"stdafx.h" /Fo"Release/" /Fd"Release/" /FD /c +"Z:\Plugins\PAM\PAMPlugin\StdAfx.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSPE0.tmp" +Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSPE1.tmp" with contents +[ +libeay32.lib ssleay32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"Release/PAMPlugin.pdb" /machine:I386 /def:".\PAMPlugin.def" /out:"Release/PAMPlugin.dll" /implib:"Release/PAMPlugin.lib" +.\Release\ChangePass.obj +.\Release\PAMPlugin.obj +.\Release\PAMPluginConfig.obj +.\Release\StdAfx.obj +.\Release\PAMPlugin.res +] +Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSPE1.tmp" +<h3>Output Window</h3> +Compiling resources... +Compiling... +StdAfx.cpp +Compiling... +ChangePass.cpp +PAMPlugin.cpp +Z:\Plugins\PAM\PAMPlugin\PAMPlugin.cpp(53) : warning C4005: 'ERROR' : macro redefinition + C:\Program Files\Microsoft SDK\Include\wingdi.h(98) : see previous definition of 'ERROR' +Z:\Plugins\PAM\PAMPlugin\PAMPlugin.cpp(451) : warning C4018: '<=' : signed/unsigned mismatch +PAMPluginConfig.cpp +Generating Code... +Linking... + Creating library Release/PAMPlugin.lib and object Release/PAMPlugin.exp + + + +<h3>Results</h3> +PAMPlugin.dll - 0 error(s), 2 warning(s) +</pre> +</body> +</html> Property changes on: Plugins/PAM/plugin/PAMPlugin.plg ___________________________________________________________________ Added: svn:executable + * Added: Plugins/PAM/plugin/PAMPlugin.rc =================================================================== --- Plugins/PAM/plugin/PAMPlugin.rc (rev 0) +++ Plugins/PAM/plugin/PAMPlugin.rc 2011-06-08 12:31:20 UTC (rev 143) @@ -0,0 +1,221 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "#define _AFX_NO_SPLITTER_RESOURCES\r\n" + "#define _AFX_NO_OLE_RESOURCES\r\n" + "#define _AFX_NO_TRACKER_RESOURCES\r\n" + "#define _AFX_NO_PROPERTY_RESOURCES\r\n" + "\r\n" + "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" + "#ifdef _WIN32\r\n" + "LANGUAGE 9, 1\r\n" + "#pragma code_page(1252)\r\n" + "#endif //_WIN32\r\n" + "#include ""res\\PAMPlugin.rc2"" // non-Microsoft Visual C++ edited resources\r\n" + "#include ""afxres.rc"" // Standard components\r\n" + "#endif\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "Comments", "\0" + VALUE "CompanyName", "\0" + VALUE "FileDescription", "PAMPlugin DLL\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "PAMPlugin\0" + VALUE "LegalCopyright", "Copyright (C) 2003\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "PAMPlugin.DLL\0" + VALUE "PrivateBuild", "\0" + VALUE "ProductName", "PAMPlugin Dynamic Link Library\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + VALUE "SpecialBuild", "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_CONFIG_DIALOG DIALOGEX 0, 0, 243, 202 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "pGina PAM Plugin Configuration" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "&Save",IDOK,64,177,50,14 + PUSHBUTTON "&Close",IDCANCEL,129,177,50,14 + CONTROL 2004,IDC_STATIC,"Static",SS_BITMAP | SS_SUNKEN | + WS_BORDER,15,14,45,32,WS_EX_STATICEDGE + GROUPBOX "About",IDC_STATIC,66,14,162,32,BS_RIGHT + EDITTEXT IDC_ABOUT,71,23,150,18,ES_MULTILINE | ES_READONLY | NOT + WS_BORDER | NOT WS_TABSTOP + LTEXT "Enter the hostname of your server:",IDC_STATIC,15,55, + 114,9 + EDITTEXT IDC_HOSTNAME,15,64,117,12,ES_AUTOHSCROLL + LTEXT "Port (default is 299):",IDC_STATIC,137,55,65,8 + EDITTEXT IDC_PORT,137,64,92,12,ES_AUTOHSCROLL + GROUPBOX "Options",IDC_STATIC,17,84,210,88 + CONTROL "Reflect user's primary group membership", + IDC_REFLECTGROUP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, + 29,107,178,12 + CONTROL "Use any of the following group names to indicate an Administrator (comma seperated):", + IDC_CREATEADMINS,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | + WS_TABSTOP,29,132,185,17 + EDITTEXT IDC_ADMINGROUP,29,152,184,12,ES_AUTOHSCROLL + CONTROL "Allow non-admin users to change their password", + IDC_PASSCHANGE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,29, + 119,178,12 + CONTROL "Plugin is required for access to system",IDC_REQUIRED, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,29,95,178,12 +END + +IDD_CHGPASS DIALOG DISCARDABLE 0, 0, 173, 135 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Update Password" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "&Apply",IDOK,37,82,50,14 + PUSHBUTTON "Cancel",IDCANCEL,91,82,50,14 + LTEXT "The server has indicated that your password seems to have expired. Please enter a new password in the boxes below and select ""Apply"" to update your password.", + IDC_STATIC,7,7,159,34 + LTEXT "New Password:",IDC_STATIC,11,50,56,10 + LTEXT "Verify:",IDC_STATIC,11,64,56,10 + EDITTEXT IDC_PASS1,67,49,85,12,ES_PASSWORD | ES_AUTOHSCROLL + EDITTEXT IDC_PASS2,67,62,85,12,ES_PASSWORD | ES_AUTOHSCROLL + GROUPBOX "",IDC_STATIC,7,98,159,33 + LTEXT "",ID_MESSAGES,11,103,151,25 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_CONFIG_DIALOG, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 236 + TOPMARGIN, 7 + BOTTOMMARGIN, 197 + END + + IDD_CHGPASS, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 166 + TOPMARGIN, 7 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDB_LOGO BITMAP DISCARDABLE "logo.bmp" +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +#define _AFX_NO_SPLITTER_RESOURCES +#define _AFX_NO_OLE_RESOURCES +#define _AFX_NO_TRACKER_RESOURCES +#define _AFX_NO_PROPERTY_RESOURCES + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE 9, 1 +#pragma code_page(1252) +#endif //_WIN32 +#include "res\PAMPlugin.rc2" // non-Microsoft Visual C++ edited resources +#include "afxres.rc" // Standard components +#endif + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + Property changes on: Plugins/PAM/plugin/PAMPlugin.rc ___________________________________________________________________ Added: svn:executable + * Added: Plugins/PAM/plugin/PAMPlugin.sln =================================================================== --- Plugins/PAM/plugin/PAMPlugin.sln (rev 0) +++ Plugins/PAM/plugin/PAMPlugin.sln 2011-06-08 12:31:20 UTC (rev 143) @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PAMPlugin", "PAMPlugin.vcproj", "{4610D595-C12B-458A-9A09-98968B421AAA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4610D595-C12B-458A-9A09-98968B421AAA}.Debug|Win32.ActiveCfg = Debug|Win32 + {4610D595-C12B-458A-9A09-98968B421AAA}.Debug|Win32.Build.0 = Debug|Win32 + {4610D595-C12B-458A-9A09-98968B421AAA}.Release|Win32.ActiveCfg = Release|Win32 + {4610D595-C12B-458A-9A09-98968B421AAA}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Added: Plugins/PAM/plugin/PAMPlugin.vcproj =================================================================== --- Plugins/PAM/plugin/PAMPlugin.vcproj (rev 0) +++ Plugins/PAM/plugin/PAMPlugin.vcproj 2011-06-08 12:31:20 UTC (rev 143) @@ -0,0 +1,387 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="PAMPlugin" + ProjectGUID="{4610D595-C12B-458A-9A09-98968B421AAA}" + RootNamespace="PAMPlugin" + Keyword="MFCProj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Release|Win32" + OutputDirectory=".\Release" + IntermediateDirectory=".\Release" + ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="2" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="NDEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\Release/PAMPlugin.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="2" + InlineFunctionExpansion="1" + AdditionalIncludeDirectories="C:\working\OpenSSL\include" + PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_USRDLL /FORCE:MULTIPLE" + StringPooling="true" + RuntimeLibrary="2" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="2" + PrecompiledHeaderThrough="stdafx.h" + PrecompiledHeaderFile=".\Release/PAMPlugin.pch" + AssemblerListingLocation=".\Release/" + ObjectFile=".\Release/" + ProgramDataBaseFileName=".\Release/" + WarningLevel="3" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="libeay32MD.lib ssleay32MD.lib" + OutputFile=".\Release/PAMPlugin.dll" + LinkIncremental="1" + SuppressStartupBanner="true" + AdditionalLibraryDirectories="C:\working\OpenSSL\lib\VC\" + ModuleDefinitionFile=".\PAMPlugin.def" + ProgramDatabaseFile=".\Release/PAMPlugin.pdb" + SubSystem="2" + ImportLibrary=".\Release/PAMPlugin.lib" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\Release/PAMPlugin.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug|Win32" + OutputDirectory=".\Debug" + IntermediateDirectory=".\Debug" + ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" + UseOfMFC="2" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="_DEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\Debug/PAMPlugin.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="C:\working\OpenSSL\include" + PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_USRDLL /FORCE:MULTIPLE" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + UsePrecompiledHeader="2" + PrecompiledHeaderThrough="stdafx.h" + PrecompiledHeaderFile=".\Debug/PAMPlugin.pch" + AssemblerListingLocation=".\Debug/" + ObjectFile=".\Debug/" + ProgramDataBaseFileName=".\Debug/" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="1033" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="libeay32MD.lib ssleay32MD.lib" + OutputFile=".\Debug/PAMPlugin.dll" + LinkIncremental="2" + SuppressStartupBanner="true" + AdditionalLibraryDirectories="C:\working\OpenSSL\lib\VC" + ModuleDefinitionFile=".\PAMPlugin.def" + GenerateDebugInformation="true" + ProgramDatabaseFile=".\Debug/PAMPlugin.pdb" + SubSystem="2" + ImportLibrary=".\Debug/PAMPlugin.lib" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + SuppressStartupBanner="true" + OutputFile=".\Debug/PAMPlugin.bsc" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCWebDeploymentTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > + <File + RelativePath="ChangePass.cpp" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="PAMPlugin.cpp" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="PAMPlugin.def" + > + </File> + <File + RelativePath="PAMPlugin.rc" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="PAMPluginConfig.cpp" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + /> + </FileConfiguration> + </File> + <File + RelativePath="StdAfx.cpp" + > + <FileConfiguration + Name="Release|Win32" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + UsePrecompiledHeader="1" + /> + </FileConfiguration> + <FileConfiguration + Name="Debug|Win32" + > + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="" + UsePrecompiledHeader="1" + /> + </FileConfiguration> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl" + > + <File + RelativePath="ChangePass.h" + > + </File> + <File + RelativePath="PAMPlugin.h" + > + </File> + <File + RelativePath="PAMPluginConfig.h" + > + </File> + <File + RelativePath="Resource.h" + > + </File> + <File + RelativePath="StdAfx.h" + > + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" + > + <File + RelativePath="bitmap1.bmp" + > + </File> + <File + RelativePath="logo.bmp" + > + </File> + <File + RelativePath="pam_pgin.bmp" + > + </File> + <File + RelativePath="res\PAMPlugin.rc2" + > + </File> + </Filter> + <File + RelativePath="ReadMe.txt" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Added: Plugins/PAM/plugin/PAMPluginConfig.cpp =================================================================== --- Plugins/PAM/plugin/PAMPluginConfig.cpp (rev 0) +++ Plugins/PAM/plugin/PAMPluginConfig.cpp 2011-06-08 12:31:20 UTC (rev 143) @@ -0,0 +1,134 @@ +/* +pGina PAM Plugin for pGina +Copyright (C) 2003 Nathan Yocom + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +Email: nat...@xp... +Web: http://pgina.xpasystems.com +Snail Mail: + Nathan Yocom + 9 Evergreen Farms Rd. + Scarborough, ME 04074 + Phone: 207-450-4948 +*/ +// PAMPluginConfig.cpp : implementation file +// + +#include "stdafx.h" +#include "PAMPlugin.h" +#include "PAMPluginConfig.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// PAMPluginConfig dialog + + +PAMPluginConfig::PAMPluginConfig(CWnd* pParent /*=NULL*/) + : CDialog(PAMPluginConfig::IDD, pParent) +{ + //{{AFX_DATA_INIT(PAMPluginConfig) + m_AboutString = _T(""); + m_admin_group = _T(""); + m_check_admin = FALSE; + m_hostname = _T(""); + m_port = _T(""); + m... [truncated message content] |
From: <pgi...@li...> - 2011-06-07 23:50:17
|
Revision: 142 http://pgina.svn.sourceforge.net/pgina/?rev=142&view=rev Author: hairlesshobo Date: 2011-06-07 23:50:10 +0000 (Tue, 07 Jun 2011) Log Message: ----------- Added missing semicolon to pGinaCredential.cpp Modified Paths: -------------- pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver pGina-2.x/src/LibTester/LibTester.ver pGina-2.x/src/pGina-Provider/pGinaCredential.cpp pGina-2.x/src/pGina-Provider/pGinaProvider.ver pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver pGina-2.x/src/pGinaVersion.nsi Modified: pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver =================================================================== --- pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver 2011-06-07 23:38:54 UTC (rev 141) +++ pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver 2011-06-07 23:50:10 UTC (rev 142) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 140 +#define VERSION_BUILD 142 #define VERSION_BUILD_DATE "07/06/2011" -#define VERSION_BUILD_TIME "22:56:01UTC" +#define VERSION_BUILD_TIME "23:41:03UTC" #define VERSION_FILENAME "CredUI-Prompt.exe" #define VERSION_FILE_DESCRIPTION "Credential Provider tester for pGina" Modified: pGina-2.x/src/LibTester/LibTester.ver =================================================================== --- pGina-2.x/src/LibTester/LibTester.ver 2011-06-07 23:38:54 UTC (rev 141) +++ pGina-2.x/src/LibTester/LibTester.ver 2011-06-07 23:50:10 UTC (rev 142) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 120 +#define VERSION_BUILD 122 #define VERSION_BUILD_DATE "07/06/2011" -#define VERSION_BUILD_TIME "22:56:06UTC" +#define VERSION_BUILD_TIME "23:41:07UTC" #define VERSION_FILENAME "LibTester.exe" #define VERSION_FILE_DESCRIPTION "pGina Library Tester" Modified: pGina-2.x/src/pGina-Provider/pGinaCredential.cpp =================================================================== --- pGina-2.x/src/pGina-Provider/pGinaCredential.cpp 2011-06-07 23:38:54 UTC (rev 141) +++ pGina-2.x/src/pGina-Provider/pGinaCredential.cpp 2011-06-07 23:50:10 UTC (rev 142) @@ -645,7 +645,7 @@ afterAutoexec: - + ; } // store username that was able to successfully authenticate Modified: pGina-2.x/src/pGina-Provider/pGinaProvider.ver =================================================================== --- pGina-2.x/src/pGina-Provider/pGinaProvider.ver 2011-06-07 23:38:54 UTC (rev 141) +++ pGina-2.x/src/pGina-Provider/pGinaProvider.ver 2011-06-07 23:50:10 UTC (rev 142) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 1289 +#define VERSION_BUILD 1292 #define VERSION_BUILD_DATE "07/06/2011" -#define VERSION_BUILD_TIME "22:56:15UTC" +#define VERSION_BUILD_TIME "23:41:09UTC" #define VERSION_FILENAME "pGinaProvider.dll" #define VERSION_FILE_DESCRIPTION "Credential Provider for pGina" Modified: pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver =================================================================== --- pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver 2011-06-07 23:38:54 UTC (rev 141) +++ pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver 2011-06-07 23:50:10 UTC (rev 142) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 52 +#define VERSION_BUILD 54 #define VERSION_BUILD_DATE "07/06/2011" -#define VERSION_BUILD_TIME "22:56:06UTC" +#define VERSION_BUILD_TIME "23:41:05UTC" #define VERSION_FILENAME "pGinaLogoffUtility.exe" #define VERSION_FILE_DESCRIPTION "pGina Utility to end User's Session" Modified: pGina-2.x/src/pGinaVersion.nsi =================================================================== --- pGina-2.x/src/pGinaVersion.nsi 2011-06-07 23:38:54 UTC (rev 141) +++ pGina-2.x/src/pGinaVersion.nsi 2011-06-07 23:50:10 UTC (rev 142) @@ -2,6 +2,6 @@ !define VERSION_MAJOR 2 !define VERSION_MINOR 1 !define VERSION_QFE 1 -!define VERSION_BUILD 276 +!define VERSION_BUILD 277 !define VERSION_BUILD_DATE "07/06/2011" -!define VERSION_BUILD_TIME "22:56:54UTC" +!define VERSION_BUILD_TIME "23:41:26UTC" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pgi...@li...> - 2011-06-07 23:39:00
|
Revision: 141 http://pgina.svn.sourceforge.net/pgina/?rev=141&view=rev Author: hairlesshobo Date: 2011-06-07 23:38:54 +0000 (Tue, 07 Jun 2011) Log Message: ----------- Updated installer and documentation for autoexecBeforeMapping option Modified Paths: -------------- pGina-2.x/doc/Registry Options.txt pGina-2.x/installer/installDefaultConfig.nsi Modified: pGina-2.x/doc/Registry Options.txt =================================================================== --- pGina-2.x/doc/Registry Options.txt 2011-06-07 23:37:05 UTC (rev 140) +++ pGina-2.x/doc/Registry Options.txt 2011-06-07 23:38:54 UTC (rev 141) @@ -6,6 +6,7 @@ REG_DWORD archiveLogCount Number of rotated logs that should be kept REG_DWORD autoexecAdmin (bool) Enable automatic execution for administrators +REG_DWORD autoexecBeforeMapping (bool) Force scripts to be executed before shares are mapped REG_SZ autoexecPaths A ';' seperated list of commands to execute at user logon. %username% is permitted REG_DWORD autoexecRegular (bool) Enable automatic execution for regular users Modified: pGina-2.x/installer/installDefaultConfig.nsi =================================================================== --- pGina-2.x/installer/installDefaultConfig.nsi 2011-06-07 23:37:05 UTC (rev 140) +++ pGina-2.x/installer/installDefaultConfig.nsi 2011-06-07 23:38:54 UTC (rev 141) @@ -4,35 +4,41 @@ WriteRegStr HKLM "Software\${APPNAME}" "autoexecPaths" "" WriteRegDWORD HKLM "Software\${APPNAME}" "autoexecRegular" "0" WriteRegDWORD HKLM "Software\${APPNAME}" "autofillLastUsername" "0" - WriteRegDWORD HKLM "Software\${APPNAME}" "automapAdmin" "0" WriteRegStr HKLM "Software\${APPNAME}" "automapDrives" "" WriteRegDWORD HKLM "Software\${APPNAME}" "automapRegular" "0" + WriteRegDWORD HKLM "Software\${APPNAME}" "disableDefaultCP" "0" WriteRegDWORD HKLM "Software\${APPNAME}" "disableShutdown" "0" WriteRegDWORD HKLM "Software\${APPNAME}" "enableAutoexec" "0" WriteRegDWORD HKLM "Software\${APPNAME}" "enableAutomapDrives" "0" WriteRegDWORD HKLM "Software\${APPNAME}" "enforceSessTimeout" "0" + WriteRegDWORD HKLM "Software\${APPNAME}" "forceLogin" "1" WriteRegDWORD HKLM "Software\${APPNAME}" "forcePluginAuth" "0" WriteRegStr HKLM "Software\${APPNAME}" "globalGroups" "" + WriteRegDWORD HKLM "Software\${APPNAME}" "hiddenProfile" "0" WriteRegDWORD HKLM "Software\${APPNAME}" "hideMotd" "0" WriteRegDWORD HKLM "Software\${APPNAME}" "hidePlugin" "0" + WriteRegDWORD HKLM "Software\${APPNAME}" "keepProfile" "0" WriteRegStr HKLM "Software\${APPNAME}" "lastSuccessfulUsername" "" WriteRegStr HKLM "Software\${APPNAME}" "logFile" "$INSTDIR\docs\pGinaLog.txt" WriteRegDWORD HKLM "Software\${APPNAME}" "logLevel" "10" WriteRegStr HKLM "Software\${APPNAME}" "logo" "$INSTDIR\pGinaLogo.bmp" + WriteRegDWORD HKLM "Software\${APPNAME}" "maxLogSize" "2" + WriteRegStr HKLM "Software\${APPNAME}" "motd" "Welcome to %hostname%." - WriteRegStr HKLM "Software\${APPNAME}" "motd" "Welcome to %hostname%." WriteRegDWORD HKLM "Software\${APPNAME}" "overridePluginSession" "0" + WriteRegStr HKLM "Software\${APPNAME}" "pathPlugin" "$INSTDIR\plugins\DummyPlugin.dll" WriteRegStr HKLM "Software\${APPNAME}" "pluginName" "" + WriteRegDWORD HKLM "Software\${APPNAME}" "rotateLogs" "1" WriteRegDWORD HKLM "Software\${APPNAME}" "sessionTimeout" "0" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pgi...@li...> - 2011-06-07 23:37:11
|
Revision: 140 http://pgina.svn.sourceforge.net/pgina/?rev=140&view=rev Author: hairlesshobo Date: 2011-06-07 23:37:05 +0000 (Tue, 07 Jun 2011) Log Message: ----------- Added autoexecBeforeMapping option Modified Paths: -------------- pGina-2.x/src/ConfigApp/locale_en.txt pGina-2.x/src/ConfigApp/options.xml pGina-2.x/src/pGina-Lib/pGinaFunctions.cpp pGina-2.x/src/pGina-Provider/pGinaCredential.cpp Modified: pGina-2.x/src/ConfigApp/locale_en.txt =================================================================== --- pGina-2.x/src/ConfigApp/locale_en.txt 2011-06-07 23:06:30 UTC (rev 139) +++ pGina-2.x/src/ConfigApp/locale_en.txt 2011-06-07 23:37:05 UTC (rev 140) @@ -92,6 +92,7 @@ automapRegular = Enable for Regular Users automapDrives = Drives to map at logon. One per line.\n\nEx: L:\\srv\share enableAutoexec = Automatically execute script/program at logon +autoexecBeforeMapping = Execute script(s) before drives are mapped autoexecAdmin = Enable for Administrators autoexecRegular = Enable for Regular Users -autoexecPaths = Applications to run at logon. One per line.\n\nEx: C:\SomeProgram.exe +autoexecPaths = Applications to run at logon. One per line.\n\nEx: C:\SomeProgram.exe \ No newline at end of file Modified: pGina-2.x/src/ConfigApp/options.xml =================================================================== --- pGina-2.x/src/ConfigApp/options.xml 2011-06-07 23:06:30 UTC (rev 139) +++ pGina-2.x/src/ConfigApp/options.xml 2011-06-07 23:37:05 UTC (rev 140) @@ -176,6 +176,10 @@ <booleanOption /> </option> + <option optionName="autoexecBeforeMapping"> + <booleanOption dependsOn="enableAutoexec" /> + </option> + <option optionName="autoexecAdmin"> <booleanOption dependsOn="enableAutoexec" /> </option> @@ -213,5 +217,5 @@ </option> </category> - + </pgina> Modified: pGina-2.x/src/pGina-Lib/pGinaFunctions.cpp =================================================================== --- pGina-2.x/src/pGina-Lib/pGinaFunctions.cpp 2011-06-07 23:06:30 UTC (rev 139) +++ pGina-2.x/src/pGina-Lib/pGinaFunctions.cpp 2011-06-07 23:37:05 UTC (rev 140) @@ -537,11 +537,9 @@ TCHAR *pGinaFunctions::ReplaceCRLFwithSemicolon(TCHAR *original) { TCHAR *dest = (TCHAR *)malloc(_tcslen(original) * sizeof(TCHAR)); - size_t destsize = _tcslen(original) * 2; size_t length_source = _tcslen(original); size_t x = 0; size_t dest_pos = 0; - size_t macro_pos = 0; memset(dest , 0, _tcslen(original) * sizeof(TCHAR)); @@ -555,7 +553,8 @@ else if (original[x] == L'\r') { continue; - } else if (original[x] == L'\n') + } + else if (original[x] == L'\n') { dest[dest_pos++] = L';'; } Modified: pGina-2.x/src/pGina-Provider/pGinaCredential.cpp =================================================================== --- pGina-2.x/src/pGina-Provider/pGinaCredential.cpp 2011-06-07 23:06:30 UTC (rev 139) +++ pGina-2.x/src/pGina-Provider/pGinaCredential.cpp 2011-06-07 23:37:05 UTC (rev 140) @@ -496,6 +496,8 @@ CREDENTIAL_PROVIDER_STATUS_ICON* pcpsiOptionalStatusIcon ) { + HWND parent = GetParent(NULL); + HRESULT hr = S_OK; UNREFERENCED_PARAMETER(ppwszOptionalStatusText); @@ -579,59 +581,73 @@ g_logger->Log(3, L"%s pGinaCredential::GetSerialization() FAILED. Unable to notify service of sesssion timeout", PGINA_LOG_ERROR_1); } - // If autoexec has been enabled then we need to notify the service so that - // it can handle the execution for the user when they log in - if (g_settings->GetBool(L"enableAutoexec", false) == true) + // if the user would like to autoexec scripts before mapping drives, then + // we need to jump to that first + if (g_settings->GetBool(L"autoexecBeforeMapping", false) == true) + goto autoexec; + + // If automap has been enabled then we need to notify the service so that + // it can handle the mapping of drives when users log in +automap: + if (g_settings->GetBool(L"enableAutomapDrives", false) == true) { if ( - (g_settings->GetBool(L"autoexecAdmin", false) == true && settingsInfo.isAdmin == TRUE) + (g_settings->GetBool(L"automapAdmin", false) == true && settingsInfo.isAdmin == TRUE) || - (g_settings->GetBool(L"autoexecRegular", false) == true && settingsInfo.isAdmin == FALSE) + (g_settings->GetBool(L"automapRegular", false) == true && settingsInfo.isAdmin == FALSE) ) { - wchar_t * autoexecPaths = _tcsdup(g_settings->GetEncryptedString(L"autoexecPaths", L"")); + wchar_t * automapDrives = _tcsdup(g_settings->GetEncryptedString(L"automapDrives", L"")); - if (_tcscmp(autoexecPaths, L"") != 0) + if (_tcscmp(automapDrives, L"") != 0) { - if (!pClient->SendAutoexecEvent(m_fieldStrings[INDEX_USERNAME_TEXT], pFunc->ReplaceCRLFwithSemicolon(autoexecPaths))) - g_logger->Log(3, L"%s pGinaCredential::GetSerialization() FAILED. Unable to notify service of applications that need to be executed.", PGINA_LOG_ERROR_1); + if (!pClient->SendMapDriveEvent(m_fieldStrings[INDEX_USERNAME_TEXT], pFunc->ReplaceCRLFwithSemicolon(automapDrives))) + g_logger->Log(3, L"%s pGinaCredential::GetSerialization() FAILED. Unable to notify service of drives to map.", PGINA_LOG_ERROR_1); else - g_logger->Log(5, L"%s pGinaCredential::GetSerialization() Successfully notified pGina service of applications that need to be executed.", PGINA_LOG_INFO); + g_logger->Log(5, L"%s pGinaCredential::GetSerialization() Successfully notified pGina service of the drives drives that need to be mapped.", PGINA_LOG_INFO); } - free(autoexecPaths); + free(automapDrives); } } - // If automap has been enabled then we need to notify the service so that - // it can handle the mapping of drives when users log in - if (g_settings->GetBool(L"enableAutomapDrives", false) == true) + if (g_settings->GetBool(L"autoexecBeforeMapping", false) == true) + goto afterAutoexec; + + // If autoexec has been enabled then we need to notify the service so that + // it can handle the execution for the user when they log in +autoexec: + if (g_settings->GetBool(L"enableAutoexec", false) == true) { if ( - (g_settings->GetBool(L"automapAdmin", false) == true && settingsInfo.isAdmin == TRUE) + (g_settings->GetBool(L"autoexecAdmin", false) == true && settingsInfo.isAdmin == TRUE) || - (g_settings->GetBool(L"automapRegular", false) == true && settingsInfo.isAdmin == FALSE) + (g_settings->GetBool(L"autoexecRegular", false) == true && settingsInfo.isAdmin == FALSE) ) { - wchar_t * automapDrives = _tcsdup(g_settings->GetEncryptedString(L"automapDrives", L"")); - - if (_tcscmp(automapDrives, L"") != 0) + wchar_t * autoexecPaths = _tcsdup(g_settings->GetEncryptedString(L"autoexecPaths", L"")); + if (_tcscmp(autoexecPaths, L"") != 0) { - if (!pClient->SendMapDriveEvent(m_fieldStrings[INDEX_USERNAME_TEXT], pFunc->ReplaceCRLFwithSemicolon(automapDrives))) - g_logger->Log(3, L"%s pGinaCredential::GetSerialization() FAILED. Unable to notify service of drives to map.", PGINA_LOG_ERROR_1); + if (!pClient->SendAutoexecEvent(m_fieldStrings[INDEX_USERNAME_TEXT], pFunc->ReplaceCRLFwithSemicolon(autoexecPaths))) + g_logger->Log(3, L"%s pGinaCredential::GetSerialization() FAILED. Unable to notify service of applications that need to be executed.", PGINA_LOG_ERROR_1); else - g_logger->Log(5, L"%s pGinaCredential::GetSerialization() Successfully notified pGina service of the drives drives that need to be mapped.", PGINA_LOG_INFO); + g_logger->Log(5, L"%s pGinaCredential::GetSerialization() Successfully notified pGina service of applications that need to be executed.", PGINA_LOG_INFO); } - free(automapDrives); + free(autoexecPaths); } } - - } + if (g_settings->GetBool(L"autoexecBeforeMapping", false) == true) + goto automap; +afterAutoexec: + + + } + // store username that was able to successfully authenticate if (!g_settings->SetEncryptedString(L"lastSuccessfulUsername", m_fieldStrings[INDEX_USERNAME_TEXT])) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pgi...@li...> - 2011-06-07 23:06:36
|
Revision: 139 http://pgina.svn.sourceforge.net/pgina/?rev=139&view=rev Author: hairlesshobo Date: 2011-06-07 23:06:30 +0000 (Tue, 07 Jun 2011) Log Message: ----------- Removed old installerDO_NOT_USE from source tree. Removed Paths: ------------- pGina-2.x/installerDO_NOT_USE/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pgi...@li...> - 2011-06-07 23:03:53
|
Revision: 138 http://pgina.svn.sourceforge.net/pgina/?rev=138&view=rev Author: hairlesshobo Date: 2011-06-07 23:03:46 +0000 (Tue, 07 Jun 2011) Log Message: ----------- Take 2: Merged login/logout hooks patch provided by Evan Horne. I have not tested the login/logout functionality myself, but I have had reports that it works well and it does not appear to break anything else (that I have found anyways). I discovered that I did not actually know how to use the patch functionality of TortoiseSVN because I only managed to patch one file last time around. This time I made sure that all the files were patched correctly. Also, verified that both Release-Win32 and Release-x64 will still build. Modified Paths: -------------- pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver pGina-2.x/src/LibTester/LibTester.ver pGina-2.x/src/pGina-Lib/pGinaPluginServer.cpp pGina-2.x/src/pGina-Lib/pGinaPluginServer.h pGina-2.x/src/pGina-Lib/pGinaSrvClient.cpp pGina-2.x/src/pGina-Lib/pGinaSrvClient.h pGina-2.x/src/pGina-Provider/Dll.cpp pGina-2.x/src/pGina-Provider/pGinaCredential.cpp pGina-2.x/src/pGina-Provider/pGinaProvider.h pGina-2.x/src/pGina-Provider/pGinaProvider.ver pGina-2.x/src/pGinaCrypt/pGinaCrypt.h pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver pGina-2.x/src/pGinaSrvCS/pGinaLib.cs pGina-2.x/src/pGinaSrvCS/pGinaPipes.cs pGina-2.x/src/pGinaVersion.nsi Removed Paths: ------------- pGina-2.x/src/pGinaCrypt/res/ Property Changed: ---------------- pGina-2.x/src/ pGina-2.x/src/CredUI-Prompt/ pGina-2.x/src/LibTester/ pGina-2.x/src/pGina-Lib/ pGina-2.x/src/pGina-Provider/ Property changes on: pGina-2.x/src ___________________________________________________________________ Modified: svn:ignore - Release Win32 bin build pGina-2.0-vs2008.ncb pGina-2.0.ncb pGina-2.0.suo x64 + *.suo Release Win32 bin build pGina-2.0-vs2008.ncb pGina-2.0.ncb pGina-2.0.suo x64 Property changes on: pGina-2.x/src/CredUI-Prompt ___________________________________________________________________ Modified: svn:ignore - *.aps CredUI-Prompt.vcproj.MACBOOKWIN7.flip.user CredUI-Prompt.vcproj.MacbookWin7x64.Steve.user Win32 x64 + *.aps *.user CredUI-Prompt.vcproj.MACBOOKWIN7.flip.user CredUI-Prompt.vcproj.MacbookWin7x64.Steve.user Win32 x64 Modified: pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver =================================================================== --- pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver 2011-06-07 03:55:49 UTC (rev 137) +++ pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver 2011-06-07 23:03:46 UTC (rev 138) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 138 +#define VERSION_BUILD 140 #define VERSION_BUILD_DATE "07/06/2011" -#define VERSION_BUILD_TIME "03:37:49UTC" +#define VERSION_BUILD_TIME "22:56:01UTC" #define VERSION_FILENAME "CredUI-Prompt.exe" #define VERSION_FILE_DESCRIPTION "Credential Provider tester for pGina" Property changes on: pGina-2.x/src/LibTester ___________________________________________________________________ Modified: svn:ignore - LibTester.vcproj.MACBOOKWIN7.flip.user LibTester.vcproj.MacbookWin7x64.Steve.user Win32 x64 + *.user LibTester.vcproj.MACBOOKWIN7.flip.user LibTester.vcproj.MacbookWin7x64.Steve.user Win32 x64 Modified: pGina-2.x/src/LibTester/LibTester.ver =================================================================== --- pGina-2.x/src/LibTester/LibTester.ver 2011-06-07 03:55:49 UTC (rev 137) +++ pGina-2.x/src/LibTester/LibTester.ver 2011-06-07 23:03:46 UTC (rev 138) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 118 +#define VERSION_BUILD 120 #define VERSION_BUILD_DATE "07/06/2011" -#define VERSION_BUILD_TIME "03:37:55UTC" +#define VERSION_BUILD_TIME "22:56:06UTC" #define VERSION_FILENAME "LibTester.exe" #define VERSION_FILE_DESCRIPTION "pGina Library Tester" Property changes on: pGina-2.x/src/pGina-Lib ___________________________________________________________________ Modified: svn:ignore - Win32 pGina-Lib.vcproj.MACBOOKWIN7.flip.user pGina-Lib.vcproj.MacbookWin7x64.Steve.user x64 + *.user Win32 pGina-Lib.vcproj.MACBOOKWIN7.flip.user pGina-Lib.vcproj.MacbookWin7x64.Steve.user x64 Modified: pGina-2.x/src/pGina-Lib/pGinaPluginServer.cpp =================================================================== --- pGina-2.x/src/pGina-Lib/pGinaPluginServer.cpp 2011-06-07 03:55:49 UTC (rev 137) +++ pGina-2.x/src/pGina-Lib/pGinaPluginServer.cpp 2011-06-07 23:03:46 UTC (rev 138) @@ -45,6 +45,8 @@ m_UserLoginFunc = (DLLUSERLOGIN) GetProcAddress(m_pluginHandle, "UserLogin"); m_AboutPluginFunc = (DLLABOUTPLUGIN) GetProcAddress(m_pluginHandle, "AboutPlugin"); m_IsRequiredFunc = (DLLISREQUIRED) GetProcAddress(m_pluginHandle, "IsRequired"); + m_LoginHookFunc = (DLLLOGINHOOK) GetProcAddress(m_pluginHandle, "LoginHook"); + m_LogoutHookFunc = (DLLLOGOUTHOOK) GetProcAddress(m_pluginHandle, "LogoutHook"); if(m_logger) m_logger->Log(10, L"%s pGinaPluginServerV1::LoadPlugin() - Plugin loaded", PGINA_LOG_TRACE_OUT); return true; @@ -76,7 +78,6 @@ if(amgr.CreateLocalAccount((const wchar_t *)settingsInfo->Username, (const wchar_t *)settingsInfo->Password, (const wchar_t *)settingsInfo->defaultDomain, forceCreation, settingsInfo->isAdmin)) { // Set user description, full name, and plugin groups - amgr.SetUserDescription(settingsInfo->Username, settingsInfo->defaultDomain, L"pGinaUser");//amgr.SetUserDescription(username, domain, settingsInfo.userDescription); amgr.SetUserFullName(settingsInfo->Username, settingsInfo->defaultDomain, settingsInfo->userFullName); amgr.AddUserToGroupList(settingsInfo->Username, settingsInfo->defaultDomain, settingsInfo->userGroups, true); @@ -110,3 +111,15 @@ PGINA_LOG_TRACE_IN, isRequired ? L"Yes" : L"No"); return isRequired; } + +void pGinaPluginServerV1::LoginHook(pGinaInfo *settingsInfo){ + if(m_logger) m_logger->Log(10, L"%s pGinaPluginServerV1::LoginHook()", PGINA_LOG_TRACE_IN); + m_LoginHookFunc(settingsInfo); + if(m_logger) m_logger->Log(10, L"%s pGinaPluginServerV1::LoginHook()", PGINA_LOG_TRACE_OUT); +} + +void pGinaPluginServerV1::LogoutHook(pGinaInfo *settingsInfo){ + if(m_logger) m_logger->Log(10, L"%s pGinaPluginServerV1::LogoutHook()", PGINA_LOG_TRACE_IN); + m_LogoutHookFunc(settingsInfo); + if(m_logger) m_logger->Log(10, L"%s pGinaPluginServerV1::LogoutHook()", PGINA_LOG_TRACE_OUT); +} Modified: pGina-2.x/src/pGina-Lib/pGinaPluginServer.h =================================================================== --- pGina-2.x/src/pGina-Lib/pGinaPluginServer.h 2011-06-07 03:55:49 UTC (rev 137) +++ pGina-2.x/src/pGina-Lib/pGinaPluginServer.h 2011-06-07 23:03:46 UTC (rev 138) @@ -31,6 +31,8 @@ typedef __declspec(dllimport) BOOL (*DLLUSERLOGIN)(LPTSTR, LPTSTR, void *); typedef __declspec(dllimport) LPCTSTR (*DLLABOUTPLUGIN) (void); typedef __declspec(dllimport) BOOL (*DLLISREQUIRED) (void); +typedef __declspec(dllimport) VOID (*DLLLOGINHOOK)(void *); +typedef __declspec(dllimport) VOID (*DLLLOGOUTHOOK)(void *); typedef struct pGinaInfo { LPTSTR pathMSGina; @@ -58,30 +60,7 @@ class pGinaPluginServerV1 { public: - /* - typedef struct pGinaInfo { - LPTSTR ignore1; - LPTSTR ignore2; - LPTSTR ignore3; - LPTSTR ignore4; - LPTSTR Username; - LPTSTR Password; - LPTSTR ignore5; - BOOL isAdmin; - BOOL ignore6; - int ignore7; - HANDLE ignore8; - LPTSTR userGroups; - LPTSTR userDescription; - LPTSTR userFullName; - BOOL ignore9; - LPTSTR errorString; - LPTSTR ignore10; - LPTSTR ignore11; - DWORD ignore12; - } pGinaInfo ; -*/ - + pGinaPluginServerV1(pGinaLog *logger) { m_logger = logger; @@ -101,6 +80,8 @@ bool forceCreation, pGinaInfo * settingsInfo); wchar_t * AboutPlugin(void); bool IsRequired(void); + void LoginHook(pGinaInfo *settingsInfo); + void LogoutHook(pGinaInfo *settingsInfo); private: pGinaLog *m_logger; @@ -109,6 +90,8 @@ DLLUSERLOGIN m_UserLoginFunc; DLLABOUTPLUGIN m_AboutPluginFunc; DLLISREQUIRED m_IsRequiredFunc; + DLLLOGINHOOK m_LoginHookFunc; + DLLLOGOUTHOOK m_LogoutHookFunc; }; #endif \ No newline at end of file Modified: pGina-2.x/src/pGina-Lib/pGinaSrvClient.cpp =================================================================== --- pGina-2.x/src/pGina-Lib/pGinaSrvClient.cpp 2011-06-07 03:55:49 UTC (rev 137) +++ pGina-2.x/src/pGina-Lib/pGinaSrvClient.cpp 2011-06-07 23:03:46 UTC (rev 138) @@ -25,6 +25,7 @@ #include <stdio.h> #include <stdlib.h> #include <pGina-Lib.h> +#include <wchar.h> #define PGINA_PIPE_NAME L"\\\\.\\pipe\\pginasrv" #define PGINA_MESSAGE_SIZE 4096 @@ -32,8 +33,14 @@ pGinaSrvClient::pGinaSrvClient() { HANDLE hPipe = INVALID_HANDLE_VALUE; + g_logger = NULL; }; +pGinaSrvClient::pGinaSrvClient(pGinaLog* log){ + HANDLE hPipe = INVALID_HANDLE_VALUE; + g_logger = log; +} + pGinaSrvClient::~pGinaSrvClient() { if (hPipe) @@ -225,4 +232,115 @@ } return false; +} + +bool pGinaSrvClient::CheckForLogoutEvent() +{ + if(g_logger) g_logger->Log(10, L"%s pGinaSrvClient::CheckForLogEvent()", PGINA_LOG_TRACE_IN); + + + //Sends the following commands to the pGina service: + //lev:event - request what event last occurred (e.g. logoff, logon, etc) + //lev:user - requests username, domain, station + + DWORD bytesWritten; + DWORD bytesRead; + DWORD bytesOK; + + //Send a request for info on the last event + wchar_t sndBuffer[PGINA_MESSAGE_SIZE]; + _snwprintf_s(sndBuffer, PGINA_MESSAGE_SIZE, L"lev:event"); + + if (!SendGenericText(sndBuffer, &bytesWritten)){ + if(g_logger) g_logger->Log(10, L"%s pGinaSrvClient::CheckForLogEvent() - Unable to send event request", PGINA_LOG_TRACE_OUT); + return false; + } + ZeroMemory(sndBuffer, PGINA_MESSAGE_SIZE); + bytesWritten = (DWORD)0; + + //Read the response + wchar_t* evt = ReadGenericText(&bytesRead); //evt + wchar_t* ok_resp = ReadGenericText(&bytesOK); //OK resp + //After request, if we did not get an OK response, an error occurred + if(wcscmp(ok_resp, L"OK") != 0){ + if(g_logger) g_logger->Log(10, L"%s pGinaSrvClient::CheckForLogEvent() - No OK response after event req, got: %s", PGINA_LOG_TRACE_OUT, ok_resp); + return false; + } + delete ok_resp; + ok_resp = NULL; + + bytesRead = (DWORD)0; + bytesOK = (DWORD)0; + + //Verify last even was LOGIN or LOGOUT, otherwise exit + if(wcscmp(evt, L"LOGOUT") != 0){ + if(g_logger) g_logger->Log(10, L"%s pGinaSrvClient::CheckForLogEvent() - Returned option was not LOGOUT, was: %s", PGINA_LOG_TRACE_OUT, evt); + return false; + } + + //Send the request for user details + _snwprintf_s(sndBuffer, PGINA_MESSAGE_SIZE, L"lev:user"); + if (!SendGenericText(sndBuffer, &bytesWritten)){ + if(g_logger) g_logger->Log(10, L"%s pGinaSrvClient::CheckForLogEvent() - Unable to send request for user", PGINA_LOG_TRACE_OUT); + return false; + } + + wchar_t* userResponse = ReadGenericText(&bytesRead); + ok_resp = ReadGenericText(&bytesOK); + //After request, if we did not get an OK response, an error occurred + if(wcscmp(ok_resp, L"OK") != 0){ + if(g_logger) g_logger->Log(10, L"%s pGinaSrvClient::CheckForLogEvent() - Did not recieve 2nd OK response", PGINA_LOG_TRACE_OUT, ok_resp); + return false; + } + delete ok_resp; + + //Split the user response into user/domain/station vars + wchar_t* domain; + wchar_t* user; + wchar_t* station; + + domain = wcstok(userResponse, L"\\"); + user = wcstok(NULL, L"\\"); + station = wcstok(NULL, L"\\"); + + if(!user){ + if(g_logger) g_logger->Log(10, L"%s pGinaSrvClient::CheckForLogEvent() - No user information retrieved from service.", PGINA_LOG_TRACE_OUT); + return false; + } + + pGinaSettings* g_settings = new pGinaSettings(); + + + //Prepare plugin server and settings info to call the login/logoff hook + pGinaPluginServerV1 pv1(g_logger); + pv1.LoadPlugin(g_settings->GetString(L"pathPlugin",L"")); + + //Settings info . . seems awfully empty... but we have username and domain + pGinaInfo settingsInfo; + settingsInfo.errorString = (LPTSTR) L""; + settingsInfo.isAdmin = false; + settingsInfo.Password = (LPTSTR) L""; + settingsInfo.userDescription = (LPTSTR) L""; + settingsInfo.userFullName = (LPTSTR) L""; + settingsInfo.userGroups = (LPTSTR) L""; + settingsInfo.Username = (LPTSTR) user; + settingsInfo.defaultDomain = (LPTSTR) domain; + settingsInfo.sessionTimeout = 0; + + //Call logout + pv1.LogoutHook(&settingsInfo); + + //Clean up after ourselves... + delete evt; + delete userResponse; + delete user; + delete domain; + delete station; + delete g_settings; + + + + pv1.ReleasePlugin(); + if(g_logger) g_logger->Log(10, L"%s pGinaSrvClient::CheckForLogEvent() - logout hook called", PGINA_LOG_TRACE_OUT); + return true; } \ No newline at end of file Modified: pGina-2.x/src/pGina-Lib/pGinaSrvClient.h =================================================================== --- pGina-2.x/src/pGina-Lib/pGinaSrvClient.h 2011-06-07 03:55:49 UTC (rev 137) +++ pGina-2.x/src/pGina-Lib/pGinaSrvClient.h 2011-06-07 23:03:46 UTC (rev 138) @@ -34,6 +34,7 @@ { public: pGinaSrvClient(); + pGinaSrvClient(pGinaLog *logger); ~pGinaSrvClient(); bool OpenPipe(); @@ -45,10 +46,12 @@ bool SendMapDriveEvent(wchar_t * username, wchar_t * drives); bool SendAutoexecEvent(wchar_t * username, wchar_t * paths); bool SendSessionTimeout(wchar_t * username, int timeout); + bool CheckForLogoutEvent(); private: bool SendGenericText(wchar_t * text, DWORD * bytesWritten); HANDLE hPipe; + pGinaLog *g_logger; }; #endif \ No newline at end of file Property changes on: pGina-2.x/src/pGina-Provider ___________________________________________________________________ Modified: svn:ignore - Win32 bufferoverflowu.lib pGinaProvider.vcproj.BUBBA.Nate.user pGinaProvider.vcproj.MACBOOKWIN7.flip.user pGinaProvider.vcproj.MacbookWin7x64.Steve.user x64 + *.user Win32 bufferoverflowu.lib pGinaProvider.vcproj.BUBBA.Nate.user pGinaProvider.vcproj.MACBOOKWIN7.flip.user pGinaProvider.vcproj.MacbookWin7x64.Steve.user x64 Modified: pGina-2.x/src/pGina-Provider/Dll.cpp =================================================================== --- pGina-2.x/src/pGina-Provider/Dll.cpp 2011-06-07 03:55:49 UTC (rev 137) +++ pGina-2.x/src/pGina-Provider/Dll.cpp 2011-06-07 23:03:46 UTC (rev 138) @@ -188,6 +188,15 @@ case DLL_PROCESS_DETACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: + + //Check for logout event + pGinaSrvClient * pClient = new pGinaSrvClient(g_logger); + if(pClient->OpenPipe()){ //If log off, pipe should open no problem + pClient->CheckForLogoutEvent(); + pClient->ClosePipe(); + } + delete pClient; + g_logger->Log(10, L"%s DllMain() detach", PGINA_LOG_TRACE_OUT); delete g_settings; delete g_logger; Modified: pGina-2.x/src/pGina-Provider/pGinaCredential.cpp =================================================================== --- pGina-2.x/src/pGina-Provider/pGinaCredential.cpp 2011-06-07 03:55:49 UTC (rev 137) +++ pGina-2.x/src/pGina-Provider/pGinaCredential.cpp 2011-06-07 23:03:46 UTC (rev 138) @@ -629,7 +629,8 @@ } } - } + + } // store username that was able to successfully authenticate if (!g_settings->SetEncryptedString(L"lastSuccessfulUsername", m_fieldStrings[INDEX_USERNAME_TEXT])) @@ -712,6 +713,10 @@ *pcpsiOptionalStatusIcon = CPSI_ERROR; } + //Once any drive mapping has occurred, we'll want to call the login hook + if(authenticated){ + pv1.LoginHook(&settingsInfo); + } pv1.ReleasePlugin(); } else Modified: pGina-2.x/src/pGina-Provider/pGinaProvider.h =================================================================== --- pGina-2.x/src/pGina-Provider/pGinaProvider.h 2011-06-07 03:55:49 UTC (rev 137) +++ pGina-2.x/src/pGina-Provider/pGinaProvider.h 2011-06-07 23:03:46 UTC (rev 138) @@ -66,8 +66,8 @@ __override ~pGinaProvider(); private: - LONG m_references; - pGinaCredential *m_credential; + LONG m_references; + pGinaCredential *m_credential; friend HRESULT pGinaProvider_CreateInstance(REFIID riid, __deref_out void** ppv); }; Modified: pGina-2.x/src/pGina-Provider/pGinaProvider.ver =================================================================== --- pGina-2.x/src/pGina-Provider/pGinaProvider.ver 2011-06-07 03:55:49 UTC (rev 137) +++ pGina-2.x/src/pGina-Provider/pGinaProvider.ver 2011-06-07 23:03:46 UTC (rev 138) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 1287 +#define VERSION_BUILD 1289 #define VERSION_BUILD_DATE "07/06/2011" -#define VERSION_BUILD_TIME "03:38:03UTC" +#define VERSION_BUILD_TIME "22:56:15UTC" #define VERSION_FILENAME "pGinaProvider.dll" #define VERSION_FILE_DESCRIPTION "Credential Provider for pGina" Modified: pGina-2.x/src/pGinaCrypt/pGinaCrypt.h =================================================================== --- pGina-2.x/src/pGinaCrypt/pGinaCrypt.h 2011-06-07 03:55:49 UTC (rev 137) +++ pGina-2.x/src/pGinaCrypt/pGinaCrypt.h 2011-06-07 23:03:46 UTC (rev 138) @@ -1,4 +1,3 @@ - #include <windows.h> #include <wincrypt.h> #include <TCHAR.h> Modified: pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver =================================================================== --- pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver 2011-06-07 03:55:49 UTC (rev 137) +++ pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver 2011-06-07 23:03:46 UTC (rev 138) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 50 +#define VERSION_BUILD 52 #define VERSION_BUILD_DATE "07/06/2011" -#define VERSION_BUILD_TIME "03:37:53UTC" +#define VERSION_BUILD_TIME "22:56:06UTC" #define VERSION_FILENAME "pGinaLogoffUtility.exe" #define VERSION_FILE_DESCRIPTION "pGina Utility to end User's Session" Modified: pGina-2.x/src/pGinaSrvCS/pGinaLib.cs =================================================================== --- pGina-2.x/src/pGinaSrvCS/pGinaLib.cs 2011-06-07 03:55:49 UTC (rev 137) +++ pGina-2.x/src/pGinaSrvCS/pGinaLib.cs 2011-06-07 23:03:46 UTC (rev 138) @@ -18,6 +18,7 @@ { dest = pGina.Settings.GetString("logFile"); level = pGina.Settings.GetInteger("logLevel"); + } public static class Levels Modified: pGina-2.x/src/pGinaSrvCS/pGinaPipes.cs =================================================================== --- pGina-2.x/src/pGinaSrvCS/pGinaPipes.cs 2011-06-07 03:55:49 UTC (rev 137) +++ pGina-2.x/src/pGinaSrvCS/pGinaPipes.cs 2011-06-07 23:03:46 UTC (rev 138) @@ -13,6 +13,7 @@ using pGinaCommon; using TaskScheduler; using aejw.Network; +using System.ServiceProcess; namespace pGinaSrvCS { @@ -91,128 +92,190 @@ pGina.Logger.Write(8, pGinaLib.Log.Levels.info, "pGinaPipes::HandlePipeMessage() Got message from client: " + clientCommand); + //Prepare account for removal if (clientCommand.StartsWith("ule:") == true) - { - clientCommand = clientCommand.Replace("ule:", ""); - TS.PrepareUserRemoval(clientCommand); - ValidCommand = true; - } + ValidCommand = removeUser(clientCommand); + + + //Map network drive else if (clientCommand.StartsWith("map:") == true) - { - string username; - - clientCommand = clientCommand.Replace("map:", ""); - string[] fields = clientCommand.Split('@'); - if (fields.Length == 2) - { - username = fields[0]; - string mappings = fields[1]; - - ParameterizedThreadStart pts = new ParameterizedThreadStart(delegate(object data) - { - int SessionID = (int)data; - - Impersonation ip = new Impersonation(); - ip.QueryUserToken(SessionID); - ip.Start(); + ValidCommand = mapNetworkDrive(clientCommand); - foreach (string mapping in mappings.Split(';')) - { - string[] field2 = mapping.Split(':'); - if (field2.Length == 2) - { - string localDrive = field2[0] + ":"; - string shareName = field2[1].Replace("%username", username); - pGina.Logger.Write(5, pGinaLib.Log.Levels.info, "pGinaPipes::HandlePipeMessage() Mapping drive. Username: " + username + " / Local Drive: " + localDrive + " / Remote Path: " + shareName); + //Run process + else if (clientCommand.StartsWith("exec:") == true) + ValidCommand = runProc(clientCommand); - NetworkDrive nd = new NetworkDrive(); - nd.LocalDrive = localDrive + ":"; - nd.ShareName = shareName; - nd.Force = true; - nd.MapDrive(); - } - } - ip.Stop(); - }); + //Schedule timeout period + else if (clientCommand.StartsWith("timeout:") == true) + ValidCommand = timeOut(clientCommand); - Thread runMap = new Thread(pts); - pThreads.QueueThread(username, runMap); - } + //Check last event for logon/logoff + else if (clientCommand.StartsWith("lev:")) + ValidCommand = lastEvent(clientCommand, client); - ValidCommand = true; - } - else if (clientCommand.StartsWith("exec:") == true) + if (ValidCommand) + np.SendMessage("OK", client); + else + np.SendMessage("BAD", client); + + pGina.Logger.Write(10, pGinaLib.Log.Levels.traceOut, "pGinaPipes::HandlePipeMessage()"); + } + + private bool removeUser(String clientCommand) + { + clientCommand = clientCommand.Replace("ule:", ""); + TS.PrepareUserRemoval(clientCommand); + return true; + } + + private bool mapNetworkDrive(String clientCommand) + { + string username; + + clientCommand = clientCommand.Replace("map:", ""); + string[] fields = clientCommand.Split('@'); + if (fields.Length == 2) { - string username; + username = fields[0]; + string mappings = fields[1]; - clientCommand = clientCommand.Replace("exec:", ""); - string[] fields = clientCommand.Split('@'); - if (fields.Length == 2) + ParameterizedThreadStart pts = new ParameterizedThreadStart(delegate(object data) { - username = fields[0]; - string paths = fields[1]; + int SessionID = (int)data; - ParameterizedThreadStart pts = new ParameterizedThreadStart(delegate(object data) + Impersonation ip = new Impersonation(); + ip.QueryUserToken(SessionID); + ip.Start(); + + foreach (string mapping in mappings.Split(';')) { - int SessionID = (int)data; - - Impersonation ip = new Impersonation(); - ip.QueryUserToken(SessionID); - - foreach (string path in paths.Split(';')) + string[] field2 = mapping.Split(':'); + if (field2.Length == 2) { - string absolutePath = path.Replace("%username%", username); + string localDrive = field2[0] + ":"; + string shareName = field2[1].Replace("%username", username); - if (System.IO.File.Exists(absolutePath)) - { - pGina.Logger.Write(5, pGinaLib.Log.Levels.info, "pGinaPipes::HandlePipeMessage() Executing application. Username: " + username + " / Path: " + absolutePath); + pGina.Logger.Write(5, pGinaLib.Log.Levels.info, "pGinaPipes::HandlePipeMessage() Mapping drive. Username: " + username + " / Local Drive: " + localDrive + " / Remote Path: " + shareName); - ip.CreateProcessAsUser(absolutePath); - } + NetworkDrive nd = new NetworkDrive(); + nd.LocalDrive = localDrive + ":"; + nd.ShareName = shareName; + nd.Force = true; + nd.MapDrive(); } - }); + } - Thread runExe = new Thread(pts); - pThreads.QueueThread(username, runExe); - } + ip.Stop(); + }); - ValidCommand = true; + Thread runMap = new Thread(pts); + pThreads.QueueThread(username, runMap); } - else if (clientCommand.StartsWith("timeout:") == true) + + return true; + } + + private bool runProc(String clientCommand) + { + string username; + + clientCommand = clientCommand.Replace("exec:", ""); + string[] fields = clientCommand.Split('@'); + if (fields.Length == 2) { - string username; - UInt32 timeout; + username = fields[0]; + string paths = fields[1]; - clientCommand = clientCommand.Replace("timeout:", ""); - string[] fields = clientCommand.Split('@'); - if (fields.Length == 2) + ParameterizedThreadStart pts = new ParameterizedThreadStart(delegate(object data) { - username = fields[0]; - timeout = Convert.ToUInt32(fields[1]); + int SessionID = (int)data; - if (pGina.Settings.GetBoolean("overridePluginSession") == true) + Impersonation ip = new Impersonation(); + ip.QueryUserToken(SessionID); + + foreach (string path in paths.Split(';')) { - UInt32 newTimeout = Convert.ToUInt32(pGina.Settings.GetInteger("sessionTimeout")); - if (newTimeout > 0) - timeout = newTimeout * 60; + string absolutePath = path.Replace("%username%", username); - TS.ScheduleTimeout(username, timeout); + if (System.IO.File.Exists(absolutePath)) + { + pGina.Logger.Write(5, pGinaLib.Log.Levels.info, "pGinaPipes::HandlePipeMessage() Executing application. Username: " + username + " / Path: " + absolutePath); + + ip.CreateProcessAsUser(absolutePath); + } } + }); - pGina.Logger.Write(5, pGinaLib.Log.Levels.info, "pGinaPipes::HandlePipeMessage() Creating session timeout. Username: " + username + " / Timeout: " + timeout.ToString() + " seconds"); + Thread runExe = new Thread(pts); + pThreads.QueueThread(username, runExe); + } + + return true; + } + + private bool timeOut(String clientCommand) + { + string username; + UInt32 timeout; + + clientCommand = clientCommand.Replace("timeout:", ""); + string[] fields = clientCommand.Split('@'); + if (fields.Length == 2) + { + username = fields[0]; + timeout = Convert.ToUInt32(fields[1]); + + if (pGina.Settings.GetBoolean("overridePluginSession") == true) + { + UInt32 newTimeout = Convert.ToUInt32(pGina.Settings.GetInteger("sessionTimeout")); + if (newTimeout > 0) + timeout = newTimeout * 60; + + TS.ScheduleTimeout(username, timeout); } - ValidCommand = true; + pGina.Logger.Write(5, pGinaLib.Log.Levels.info, "pGinaPipes::HandlePipeMessage() Creating session timeout. Username: " + username + " / Timeout: " + timeout.ToString() + " seconds"); } - if (ValidCommand == true) - np.SendMessage("OK", client); - else - np.SendMessage("BAD", client); + return true; + } + + private bool lastEvent(String clientCommand, NativePipes.Client client) + { + clientCommand = clientCommand.Replace("lev:", ""); + SessionChangeDescription scd = pGinaSrvCS.lastSessionEvent(); + if (scd == null) + { + np.SendMessage("NO EVENT", client); + return true; + } - pGina.Logger.Write(10, pGinaLib.Log.Levels.traceOut, "pGinaPipes::HandlePipeMessage()"); + else if (clientCommand == "event") + { + if(scd.Reason == SessionChangeReason.SessionLogon) + np.SendMessage("LOGIN", client); + + else if(scd.Reason == SessionChangeReason.SessionLogoff) + np.SendMessage("LOGOUT", client); + + else + np.SendMessage("OTHER", client); + } + + else if (clientCommand == "user") + { + Reg srvSettings = new Reg(); + int sessionID = scd.SessionId; + srvSettings.SetPath("pGinaSrvCS\\Sessions\\" + sessionID.ToString()); + String user = srvSettings.GetString("Username"); + String domain = srvSettings.GetString("Domain"); + String station = srvSettings.GetString("Station"); + + np.SendMessage(domain + "\\" + user + "\\"+station, client); + } + return true; } } Modified: pGina-2.x/src/pGinaVersion.nsi =================================================================== --- pGina-2.x/src/pGinaVersion.nsi 2011-06-07 03:55:49 UTC (rev 137) +++ pGina-2.x/src/pGinaVersion.nsi 2011-06-07 23:03:46 UTC (rev 138) @@ -2,6 +2,6 @@ !define VERSION_MAJOR 2 !define VERSION_MINOR 1 !define VERSION_QFE 1 -!define VERSION_BUILD 275 +!define VERSION_BUILD 276 !define VERSION_BUILD_DATE "07/06/2011" -!define VERSION_BUILD_TIME "03:49:41UTC" +!define VERSION_BUILD_TIME "22:56:54UTC" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pgi...@li...> - 2011-06-07 03:55:55
|
Revision: 137 http://pgina.svn.sourceforge.net/pgina/?rev=137&view=rev Author: hairlesshobo Date: 2011-06-07 03:55:49 +0000 (Tue, 07 Jun 2011) Log Message: ----------- Merged login/logout hooks patch provided by Evan Horne. I have not tested the login/logout functionality myself, but I have had reports that it works well and it does not appear to break anything else (that I have found anyways). Modified Paths: -------------- pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver pGina-2.x/src/LibTester/LibTester.ver pGina-2.x/src/pGina-Provider/pGinaProvider.ver pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver pGina-2.x/src/pGinaSrvCS/pGinaSrvCS.cs pGina-2.x/src/pGinaVersion.nsi Property Changed: ---------------- pGina-2.x/src/ Property changes on: pGina-2.x/src ___________________________________________________________________ Modified: svn:ignore - Release Win32 pGina-2.0.ncb pGina-2.0.suo x64 + Release Win32 bin build pGina-2.0-vs2008.ncb pGina-2.0.ncb pGina-2.0.suo x64 Modified: pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver =================================================================== --- pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver 2011-06-05 09:34:43 UTC (rev 136) +++ pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver 2011-06-07 03:55:49 UTC (rev 137) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 135 -#define VERSION_BUILD_DATE "05/06/2011" -#define VERSION_BUILD_TIME "09:18:24UTC" +#define VERSION_BUILD 138 +#define VERSION_BUILD_DATE "07/06/2011" +#define VERSION_BUILD_TIME "03:37:49UTC" #define VERSION_FILENAME "CredUI-Prompt.exe" #define VERSION_FILE_DESCRIPTION "Credential Provider tester for pGina" Modified: pGina-2.x/src/LibTester/LibTester.ver =================================================================== --- pGina-2.x/src/LibTester/LibTester.ver 2011-06-05 09:34:43 UTC (rev 136) +++ pGina-2.x/src/LibTester/LibTester.ver 2011-06-07 03:55:49 UTC (rev 137) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 115 -#define VERSION_BUILD_DATE "05/06/2011" -#define VERSION_BUILD_TIME "09:18:26UTC" +#define VERSION_BUILD 118 +#define VERSION_BUILD_DATE "07/06/2011" +#define VERSION_BUILD_TIME "03:37:55UTC" #define VERSION_FILENAME "LibTester.exe" #define VERSION_FILE_DESCRIPTION "pGina Library Tester" Modified: pGina-2.x/src/pGina-Provider/pGinaProvider.ver =================================================================== --- pGina-2.x/src/pGina-Provider/pGinaProvider.ver 2011-06-05 09:34:43 UTC (rev 136) +++ pGina-2.x/src/pGina-Provider/pGinaProvider.ver 2011-06-07 03:55:49 UTC (rev 137) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 1284 -#define VERSION_BUILD_DATE "05/06/2011" -#define VERSION_BUILD_TIME "09:18:29UTC" +#define VERSION_BUILD 1287 +#define VERSION_BUILD_DATE "07/06/2011" +#define VERSION_BUILD_TIME "03:38:03UTC" #define VERSION_FILENAME "pGinaProvider.dll" #define VERSION_FILE_DESCRIPTION "Credential Provider for pGina" Modified: pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver =================================================================== --- pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver 2011-06-05 09:34:43 UTC (rev 136) +++ pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver 2011-06-07 03:55:49 UTC (rev 137) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 47 -#define VERSION_BUILD_DATE "05/06/2011" -#define VERSION_BUILD_TIME "09:18:26UTC" +#define VERSION_BUILD 50 +#define VERSION_BUILD_DATE "07/06/2011" +#define VERSION_BUILD_TIME "03:37:53UTC" #define VERSION_FILENAME "pGinaLogoffUtility.exe" #define VERSION_FILE_DESCRIPTION "pGina Utility to end User's Session" Modified: pGina-2.x/src/pGinaSrvCS/pGinaSrvCS.cs =================================================================== --- pGina-2.x/src/pGinaSrvCS/pGinaSrvCS.cs 2011-06-05 09:34:43 UTC (rev 136) +++ pGina-2.x/src/pGinaSrvCS/pGinaSrvCS.cs 2011-06-07 03:55:49 UTC (rev 137) @@ -24,6 +24,7 @@ private pGinaPipes pPipes; private Thread pendingThread; + static private SessionChangeDescription lastSessionChange; /// <summary> /// Default constructor @@ -95,6 +96,9 @@ "Session Change: " + changeDescription.Reason.ToString() + " / Session ID: " + changeDescription.SessionId.ToString()); + //We want to keep track of our last session change + lastSessionChange = changeDescription; + // We must prepare any new sessions that show up if (changeDescription.Reason == SessionChangeReason.SessionLogon) TS.PrepareNewSession(changeDescription.SessionId); @@ -212,5 +216,10 @@ serviceInstaller.Start(); serviceInstaller.WaitForExit(); } + + static public SessionChangeDescription lastSessionEvent() + { + return lastSessionChange; + } } } \ No newline at end of file Modified: pGina-2.x/src/pGinaVersion.nsi =================================================================== --- pGina-2.x/src/pGinaVersion.nsi 2011-06-05 09:34:43 UTC (rev 136) +++ pGina-2.x/src/pGinaVersion.nsi 2011-06-07 03:55:49 UTC (rev 137) @@ -2,6 +2,6 @@ !define VERSION_MAJOR 2 !define VERSION_MINOR 1 !define VERSION_QFE 1 -!define VERSION_BUILD 273 -!define VERSION_BUILD_DATE "03/06/2011" -!define VERSION_BUILD_TIME "19:40:53UTC" +!define VERSION_BUILD 275 +!define VERSION_BUILD_DATE "07/06/2011" +!define VERSION_BUILD_TIME "03:49:41UTC" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pgi...@li...> - 2011-06-05 09:34:51
|
Revision: 136 http://pgina.svn.sourceforge.net/pgina/?rev=136&view=rev Author: yocomnw Date: 2011-06-05 09:34:43 +0000 (Sun, 05 Jun 2011) Log Message: ----------- - Update 2008/2010 solution and projects: * Remove Any CPU solution configuration (not necessary) * Make all Debug|Release x86|x64 targets build (both arch's include Any CPU builds of managed components) * Build everything to src/bin (managed), src/bin/x86, src/bin/x64 * Get rid of need for running mt executable (add manifest via VS and include in build) in postbuild step - Updated installer script to match new location of binaries (i think) Modified Paths: -------------- pGina-2.x/installer/installer.nsi pGina-2.x/src/ConfigApp/ConfigApp.csproj pGina-2.x/src/ConfigApp/FormMain.cs pGina-2.x/src/ConfigApp/locale.cs pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.vcproj pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.vcxproj pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver pGina-2.x/src/LibTester/LibTester.cpp pGina-2.x/src/LibTester/LibTester.vcproj pGina-2.x/src/LibTester/LibTester.vcxproj pGina-2.x/src/LibTester/LibTester.ver pGina-2.x/src/pGina-2.0-vs2008.sln pGina-2.x/src/pGina-2.0-vs2010.sln pGina-2.x/src/pGina-Lib/pGina-Lib.vcproj pGina-2.x/src/pGina-Lib/pGina-Lib.vcxproj pGina-2.x/src/pGina-Lib/pGinaLog.cpp pGina-2.x/src/pGina-Provider/pGinaProvider.vcproj pGina-2.x/src/pGina-Provider/pGinaProvider.vcxproj pGina-2.x/src/pGina-Provider/pGinaProvider.ver pGina-2.x/src/pGinaCrypt/pGinaCrypt.vcproj pGina-2.x/src/pGinaCrypt/pGinaCrypt.vcxproj pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.vcproj pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.vcxproj pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver pGina-2.x/src/pGinaSrvCS/pGinaSrvCS.csproj Added Paths: ----------- pGina-2.x/src/ConfigApp/app.manifest Removed Paths: ------------- pGina-2.x/src/ConfigApp/Properties/app.manifest pGina-2.x/src/pGinaSrv/ Modified: pGina-2.x/installer/installer.nsi =================================================================== --- pGina-2.x/installer/installer.nsi 2011-06-05 06:57:22 UTC (rev 135) +++ pGina-2.x/installer/installer.nsi 2011-06-05 09:34:43 UTC (rev 136) @@ -362,8 +362,8 @@ sys_x86: ; \ folder ${SetOutPath} "$INSTDIR\" - ${File} "..\src\Win32\Release\" "pGinaLogoffUtility.exe" - ${File} "..\src\Win32\Release\" "pGinaCrypt.dll" + ${File} "..\src\bin\Win32\" "pGinaLogoffUtility.exe" + ${File} "..\src\bin\Win32\" "pGinaCrypt.dll" ${File} "..\..\pGinaKey\Win32\Release\" "pGinaKey.dll" ;File /oname=SetACL.exe ".\SetACL\SetACLx86.exe" @@ -373,7 +373,7 @@ ; System Directory ${SetOutPath} "$SYSDIR" - ${File} "..\src\Win32\Release\" "pGinaProvider.dll" + ${File} "..\src\bin\Win32\" "pGinaProvider.dll" Goto sys_noarch @@ -382,8 +382,8 @@ ; \ folder ${SetOutPath} "$INSTDIR\" - ${File} "..\src\x64\Release\" "pGinaLogoffUtility.exe" - ${File} "..\src\x64\Release\" "pGinaCrypt.dll" + ${File} "..\src\bin\x64\" "pGinaLogoffUtility.exe" + ${File} "..\src\bin\x64\" "pGinaCrypt.dll" ${File} "..\..\pGinaKey\x64\Release\" "pGinaKey.dll" ;File /oname=SetACL.exe ".\SetACL\SetACLx64.exe" @@ -392,7 +392,7 @@ ${File} "..\..\PluginSDK\x64\Release\" "DummyPlugin.dll" ${SetOutPath} "$SYSDIR" - ${File} "..\src\x64\Release\" "pGinaProvider.dll" + ${File} "..\src\bin\x64\" "pGinaProvider.dll" Goto sys_noarch @@ -400,15 +400,15 @@ ; \ folder ${SetOutPath} "$INSTDIR\" ${File} "..\src\ConfigApp\" "options.xml" - ${File} "..\src\ConfigApp\bin\Release\" "ConfigApp.exe" - ${File} "..\src\pGinaSrvCS\bin\Release\" "pGinaSrvCS.exe" - ${File} "..\src\pGinaSrvCS\bin\Release\" "Interop.TaskScheduler.dll" + ${File} "..\src\bin\" "ConfigApp.exe" + ${File} "..\src\bin\" "pGinaSrvCS.exe" + ${File} "..\src\bin\" "Interop.TaskScheduler.dll" ${File} "..\src\" "pGinaLogo.bmp" ; \locale folder ${SetOutPath} "$INSTDIR\locale\" - ${File} "..\src\ConfigApp\" "locale_en.txt" - ${File} "..\src\ConfigApp\" "locale_pl.txt" + ${File} "..\src\bin\" "locale_en.txt" + ${File} "..\src\bin\" "locale_pl.txt" ; \docs\ folder ${SetOutPath} "$INSTDIR\docs\" @@ -853,4 +853,4 @@ nsDialogs::Show -FunctionEnd \ No newline at end of file +FunctionEnd Modified: pGina-2.x/src/ConfigApp/ConfigApp.csproj =================================================================== --- pGina-2.x/src/ConfigApp/ConfigApp.csproj 2011-06-05 06:57:22 UTC (rev 135) +++ pGina-2.x/src/ConfigApp/ConfigApp.csproj 2011-06-05 09:34:43 UTC (rev 136) @@ -38,7 +38,7 @@ <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> - <OutputPath>bin\Debug\</OutputPath> + <OutputPath>..\bin\</OutputPath> <DefineConstants>DEBUG;TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> @@ -46,11 +46,14 @@ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>pdbonly</DebugType> <Optimize>true</Optimize> - <OutputPath>bin\Release\</OutputPath> + <OutputPath>..\bin\</OutputPath> <DefineConstants>TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> + <PropertyGroup> + <ApplicationManifest>app.manifest</ApplicationManifest> + </PropertyGroup> <ItemGroup> <Reference Include="System" /> <Reference Include="System.Data" /> @@ -134,7 +137,7 @@ <DependentUpon>Resources.resx</DependentUpon> <DesignTime>True</DesignTime> </Compile> - <BaseApplicationManifest Include="Properties\app.manifest" /> + <None Include="app.manifest" /> <None Include="ClassDiagram1.cd" /> <None Include="ClassDiagram2.cd" /> <None Include="Properties\Settings.settings"> @@ -178,8 +181,15 @@ </BootstrapperPackage> </ItemGroup> <ItemGroup> - <Content Include="locale_en.txt" /> - <Content Include="options.xml" /> + <Content Include="locale_en.txt"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </Content> + <Content Include="locale_pl.txt"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </Content> + <Content Include="options.xml"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </Content> </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. @@ -190,6 +200,7 @@ </Target> --> <PropertyGroup> - <PostBuildEvent>"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\mt.exe" -manifest "$(ProjectDir)\Properties\app.manifest" -outputresource:"$(TargetDir)ConfigApp.exe";#1</PostBuildEvent> + <PostBuildEvent> + </PostBuildEvent> </PropertyGroup> </Project> \ No newline at end of file Modified: pGina-2.x/src/ConfigApp/FormMain.cs =================================================================== --- pGina-2.x/src/ConfigApp/FormMain.cs 2011-06-05 06:57:22 UTC (rev 135) +++ pGina-2.x/src/ConfigApp/FormMain.cs 2011-06-05 09:34:43 UTC (rev 136) @@ -152,11 +152,16 @@ // setup buttons and such for locale-specific items try { + WrappingLabel wl = null; // add the 'about' page here - WrappingLabel wl = new WrappingLabel(); - wl.Text = System.IO.File.ReadAllText(Application.StartupPath + "\\docs\\About.txt"); - AddCategory(Locale.GetText("About"), wl); - wl = null; + string aboutFile = Application.StartupPath + "\\docs\\About.txt"; + if(File.Exists(aboutFile)) + { + wl = new WrappingLabel(); + wl.Text = System.IO.File.ReadAllText(aboutFile); + AddCategory(Locale.GetText("About"), wl); + wl = null; + } pGinaOptionInfo.LoadSettings(this); Deleted: pGina-2.x/src/ConfigApp/Properties/app.manifest =================================================================== --- pGina-2.x/src/ConfigApp/Properties/app.manifest 2011-06-05 06:57:22 UTC (rev 135) +++ pGina-2.x/src/ConfigApp/Properties/app.manifest 2011-06-05 09:34:43 UTC (rev 136) @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> - <security> - <applicationRequestMinimum> - <defaultAssemblyRequest permissionSetReference="Custom" /> - <PermissionSet class="System.Security.PermissionSet" version="1" ID="Custom" SameSite="site" Unrestricted="true"> - </PermissionSet> - </applicationRequestMinimum> - <requestedPrivileges> - <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> - </requestedPrivileges> - </security> - </trustInfo> -</asmv1:assembly> \ No newline at end of file Added: pGina-2.x/src/ConfigApp/app.manifest =================================================================== --- pGina-2.x/src/ConfigApp/app.manifest (rev 0) +++ pGina-2.x/src/ConfigApp/app.manifest 2011-06-05 09:34:43 UTC (rev 136) @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="utf-8"?> +<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/> + <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> + <security> + <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> + <!-- UAC Manifest Options + If you want to change the Windows User Account Control level replace the + requestedExecutionLevel node with one of the following. + + <requestedExecutionLevel level="asInvoker" uiAccess="false" /> + <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> + <requestedExecutionLevel level="highestAvailable" uiAccess="false" /> + + Specifying requestedExecutionLevel node will disable file and registry virtualization. + If you want to utilize File and Registry Virtualization for backward + compatibility then delete the requestedExecutionLevel node. + --> + <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> + </requestedPrivileges> + </security> + </trustInfo> + + <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> + <application> + <!-- A list of all Windows versions that this application is designed to work with. Windows will automatically select the most compatible environment.--> + + <!-- If your application is designed to work with Windows 7, uncomment the following supportedOS node--> + <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>--> + + </application> + </compatibility> + + <!-- Enable themes for Windows common controls and dialogs (Windows XP and later) --> + <!-- <dependency> + <dependentAssembly> + <assemblyIdentity + type="win32" + name="Microsoft.Windows.Common-Controls" + version="6.0.0.0" + processorArchitecture="*" + publicKeyToken="6595b64144ccf1df" + language="*" + /> + </dependentAssembly> + </dependency>--> + +</asmv1:assembly> + Modified: pGina-2.x/src/ConfigApp/locale.cs =================================================================== --- pGina-2.x/src/ConfigApp/locale.cs 2011-06-05 06:57:22 UTC (rev 135) +++ pGina-2.x/src/ConfigApp/locale.cs 2011-06-05 09:34:43 UTC (rev 136) @@ -54,34 +54,35 @@ static string localeFile = ""; + private static string GetLocaleFile(string filename) + { + // First we check current path, then locale\ directory + string[] paths = new string[] { Application.StartupPath, Application.StartupPath + Path.DirectorySeparatorChar + "locale" }; + foreach (string path in paths) + { + string file = string.Format("{0}{1}{2}", path, Path.DirectorySeparatorChar, filename); + if (File.Exists(file)) + { + return file; + } + } + return null; + } + static public void Init() { - bool failure = false; bool fallback = false; - string myPath = Application.StartupPath; - - - // easier to debug from the IDE :) - if (System.Diagnostics.Debugger.IsAttached) - myPath += "\\..\\.."; - // determine the current locale - localeFile = myPath + "\\locale\\locale_" + CultureInfo.CurrentCulture.TwoLetterISOLanguageName + ".txt"; - - // see if the file exists - if (!File.Exists(localeFile)) { - localeFile = myPath + "\\locale\\locale_en.txt"; - fallback = true; - - // fall back to english, warn user - if (!File.Exists(localeFile)) { - // set a flag and throw an exception - failure = true; - } - } - - if (failure) + // Look for users locale, fallback on english + localeFile = GetLocaleFile("locale_" + CultureInfo.CurrentCulture.TwoLetterISOLanguageName + ".txt"); + if (localeFile == null) + { + fallback = true; + localeFile = GetLocaleFile("locale_en.txt"); + } + + if (localeFile == null) throw new Exception("Error: Could not locate a language file!"); else if (fallback) MessageBox.Show("Warning: A locale file does not exist for the current locale! English options will be used instead."); Modified: pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.vcproj =================================================================== --- pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.vcproj 2011-06-05 06:57:22 UTC (rev 135) +++ pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.vcproj 2011-06-05 09:34:43 UTC (rev 136) @@ -21,8 +21,8 @@ <Configurations> <Configuration Name="Debug|Win32" - OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" - IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + OutputDirectory="$(SolutionDir)\bin\$(PlatformName)" + IntermediateDirectory="$(SolutionDir)\build\$(PlatformName)\$(Configuration)\$(ProjectName)" ConfigurationType="1" CharacterSet="1" > @@ -98,8 +98,8 @@ </Configuration> <Configuration Name="Debug|x64" - OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" - IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + OutputDirectory="$(SolutionDir)\bin\$(PlatformName)" + IntermediateDirectory="$(SolutionDir)\build\$(PlatformName)\$(Configuration)\$(ProjectName)" ConfigurationType="1" CharacterSet="1" > @@ -176,8 +176,8 @@ </Configuration> <Configuration Name="Release|Win32" - OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" - IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + OutputDirectory="$(SolutionDir)\bin\$(PlatformName)" + IntermediateDirectory="$(SolutionDir)\build\$(PlatformName)\$(Configuration)\$(ProjectName)" ConfigurationType="1" CharacterSet="1" WholeProgramOptimization="1" @@ -254,8 +254,8 @@ </Configuration> <Configuration Name="Release|x64" - OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" - IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + OutputDirectory="$(SolutionDir)\bin\$(PlatformName)" + IntermediateDirectory="$(SolutionDir)\build\$(PlatformName)\$(Configuration)\$(ProjectName)" ConfigurationType="1" CharacterSet="1" WholeProgramOptimization="1" @@ -301,7 +301,7 @@ AdditionalDependencies="CredUI.lib" LinkIncremental="1" AdditionalLibraryDirectories=""C:\Program Files\Microsoft SDKs\Windows\v6.0\Lib\x64";"C:\Program Files\Microsoft SDKs\Windows\v6.0\Lib\x86";"C:\Program Files\Microsoft Platform SDK\Lib"" - GenerateDebugInformation="false" + GenerateDebugInformation="true" SubSystem="1" OptimizeReferences="2" EnableCOMDATFolding="2" Modified: pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.vcxproj =================================================================== --- pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.vcxproj 2011-06-05 06:57:22 UTC (rev 135) +++ pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.vcxproj 2011-06-05 09:34:43 UTC (rev 136) @@ -60,17 +60,17 @@ <PropertyGroup Label="UserMacros" /> <PropertyGroup> <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)\bin\$(Platform)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)\build\$(Platform)\$(Configuration)\$(ProjectName)</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)\bin\$(Platform)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)\build\$(Platform)\$(Configuration)\$(ProjectName)</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)\bin\$(Platform)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)\build\$(Platform)\$(Configuration)\$(ProjectName)</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)\bin\$(Platform)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)\build\$(Platform)\$(Configuration)\$(ProjectName)</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> @@ -165,7 +165,7 @@ <Link> <AdditionalDependencies>CredUI.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalLibraryDirectories>C:\Program Files\Microsoft SDKs\Windows\v6.0\Lib\x64;C:\Program Files\Microsoft SDKs\Windows\v6.0\Lib\x86;C:\Program Files\Microsoft Platform SDK\Lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> - <GenerateDebugInformation>false</GenerateDebugInformation> + <GenerateDebugInformation>true</GenerateDebugInformation> <SubSystem>Console</SubSystem> <OptimizeReferences>true</OptimizeReferences> <EnableCOMDATFolding>true</EnableCOMDATFolding> @@ -194,16 +194,6 @@ <ItemGroup> <None Include="CredUI-Prompt.ver" /> </ItemGroup> - <ItemGroup> - <ProjectReference Include="..\pGina-Lib\pGina-Lib.vcxproj"> - <Project>{22d652d9-83ff-47de-bb0c-b36c42d4a826}</Project> - <ReferenceOutputAssembly>false</ReferenceOutputAssembly> - </ProjectReference> - <ProjectReference Include="..\pGina-Provider\pGinaProvider.vcxproj"> - <Project>{7348aee0-1f4a-4436-b782-6abb694911ae}</Project> - <ReferenceOutputAssembly>false</ReferenceOutputAssembly> - </ProjectReference> - </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> Modified: pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver =================================================================== --- pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver 2011-06-05 06:57:22 UTC (rev 135) +++ pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver 2011-06-05 09:34:43 UTC (rev 136) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 122 -#define VERSION_BUILD_DATE "04/06/2011" -#define VERSION_BUILD_TIME "01:48:36UTC" +#define VERSION_BUILD 135 +#define VERSION_BUILD_DATE "05/06/2011" +#define VERSION_BUILD_TIME "09:18:24UTC" #define VERSION_FILENAME "CredUI-Prompt.exe" #define VERSION_FILE_DESCRIPTION "Credential Provider tester for pGina" Modified: pGina-2.x/src/LibTester/LibTester.cpp =================================================================== --- pGina-2.x/src/LibTester/LibTester.cpp 2011-06-05 06:57:22 UTC (rev 135) +++ pGina-2.x/src/LibTester/LibTester.cpp 2011-06-05 09:34:43 UTC (rev 136) @@ -77,23 +77,29 @@ settings->SetLogger(logger); pGinaPluginServerV1 *plugin = new pGinaPluginServerV1(logger); - plugin->LoadPlugin(settings->GetString(L"pluginPath", L"C:\\pGina\\DummyPlugin.dll")); - logger->Log(L"About plugin: %s", plugin->AboutPlugin()); + if(plugin->LoadPlugin(settings->GetString(L"pluginPath", L"C:\\pGina\\DummyPlugin.dll"))) + { + logger->Log(L"About plugin: %s", plugin->AboutPlugin()); - wchar_t *errPtr = NULL; + wchar_t *errPtr = NULL; - if(plugin->Authenticate(L"adminuser", L"adminpass", L"", &errPtr, true, true)) - logger->Log(L"Adminuser authenticated"); - else - logger->Log(L"Adminuser auth failed: %s", errPtr); + /** + * TBD: Authenticate has been changed to take (and use) a pGinaInfo? - if(plugin->Authenticate(L"blahblah", L"adminpass", L"", &errPtr, false, true)) - logger->Log(L"blahblah authenticated"); - else - logger->Log(L"blahblah auth failed: %s", errPtr); + if(plugin->Authenticate(L"adminuser", L"adminpass", L"", &errPtr, true, true)) + logger->Log(L"Adminuser authenticated"); + else + logger->Log(L"Adminuser auth failed: %s", errPtr); - plugin->ReleasePlugin(); + if(plugin->Authenticate(L"blahblah", L"adminpass", L"", &errPtr, false, true)) + logger->Log(L"blahblah authenticated"); + else + logger->Log(L"blahblah auth failed: %s", errPtr); + */ + plugin->ReleasePlugin(); + } + delete plugin; delete settings; delete logger; @@ -117,8 +123,13 @@ { pGinaLog *logger = new pGinaLog(); logger->SetLevel(10); - bool pass = pGinaSrvClient::SendUserLoginEvent(L"LibTestUser"); - logger->Log(L"SendUserLoginEvent: %s", pass ? L"Success" : L"Fail"); + pGinaSrvClient * client = new pGinaSrvClient(); + if(client->OpenPipe()) + { + bool pass = client->SendUserLoginEvent(L"LibTester"); + logger->Log(L"SendUserLoginEvent: %s", pass ? L"Success" : L"Fail"); + } + delete client; } int _tmain(int argc, _TCHAR* argv[]) Modified: pGina-2.x/src/LibTester/LibTester.vcproj =================================================================== --- pGina-2.x/src/LibTester/LibTester.vcproj 2011-06-05 06:57:22 UTC (rev 135) +++ pGina-2.x/src/LibTester/LibTester.vcproj 2011-06-05 09:34:43 UTC (rev 136) @@ -21,8 +21,8 @@ <Configurations> <Configuration Name="Debug|Win32" - OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" - IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + OutputDirectory="$(SolutionDir)\bin\$(PlatformName)" + IntermediateDirectory="$(SolutionDir)\build\$(PlatformName)\$(Configuration)\$(ProjectName)" ConfigurationType="1" CharacterSet="1" > @@ -97,8 +97,8 @@ </Configuration> <Configuration Name="Debug|x64" - OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" - IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + OutputDirectory="$(SolutionDir)\bin\$(PlatformName)" + IntermediateDirectory="$(SolutionDir)\build\$(PlatformName)\$(Configuration)\$(ProjectName)" ConfigurationType="1" CharacterSet="1" > @@ -174,8 +174,8 @@ </Configuration> <Configuration Name="Release|Win32" - OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" - IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + OutputDirectory="$(SolutionDir)\bin\$(PlatformName)" + IntermediateDirectory="$(SolutionDir)\build\$(PlatformName)\$(Configuration)\$(ProjectName)" ConfigurationType="1" CharacterSet="1" WholeProgramOptimization="1" @@ -253,8 +253,8 @@ </Configuration> <Configuration Name="Release|x64" - OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" - IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + OutputDirectory="$(SolutionDir)\bin\$(PlatformName)" + IntermediateDirectory="$(SolutionDir)\build\$(PlatformName)\$(Configuration)\$(ProjectName)" ConfigurationType="1" CharacterSet="1" WholeProgramOptimization="1" Modified: pGina-2.x/src/LibTester/LibTester.vcxproj =================================================================== --- pGina-2.x/src/LibTester/LibTester.vcxproj 2011-06-05 06:57:22 UTC (rev 135) +++ pGina-2.x/src/LibTester/LibTester.vcxproj 2011-06-05 09:34:43 UTC (rev 136) @@ -60,17 +60,17 @@ <PropertyGroup Label="UserMacros" /> <PropertyGroup> <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)\bin\$(Platform)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)\build\$(Platform)\$(Configuration)\$(ProjectName)</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)\bin\$(Platform)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)\build\$(Platform)\$(Configuration)\$(ProjectName)</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)\bin\$(Platform)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)\build\$(Platform)\$(Configuration)\$(ProjectName)</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)\bin\$(Platform)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)\build\$(Platform)\$(Configuration)\$(ProjectName)</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> Modified: pGina-2.x/src/LibTester/LibTester.ver =================================================================== --- pGina-2.x/src/LibTester/LibTester.ver 2011-06-05 06:57:22 UTC (rev 135) +++ pGina-2.x/src/LibTester/LibTester.ver 2011-06-05 09:34:43 UTC (rev 136) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 100 -#define VERSION_BUILD_DATE "24/04/2010" -#define VERSION_BUILD_TIME "00:09:09UTC" +#define VERSION_BUILD 115 +#define VERSION_BUILD_DATE "05/06/2011" +#define VERSION_BUILD_TIME "09:18:26UTC" #define VERSION_FILENAME "LibTester.exe" #define VERSION_FILE_DESCRIPTION "pGina Library Tester" Modified: pGina-2.x/src/pGina-2.0-vs2008.sln =================================================================== --- pGina-2.x/src/pGina-2.0-vs2008.sln 2011-06-05 06:57:22 UTC (rev 135) +++ pGina-2.x/src/pGina-2.0-vs2008.sln 2011-06-05 09:34:43 UTC (rev 136) @@ -2,10 +2,6 @@ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CredUI-Prompt", "CredUI-Prompt\CredUI-Prompt.vcproj", "{DB2FE47C-9DF8-4DA6-B486-252559E2217D}" - ProjectSection(ProjectDependencies) = postProject - {22D652D9-83FF-47DE-BB0C-B36C42D4A826} = {22D652D9-83FF-47DE-BB0C-B36C42D4A826} - {7348AEE0-1F4A-4436-B782-6ABB694911AE} = {7348AEE0-1F4A-4436-B782-6ABB694911AE} - EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pGinaProvider", "pGina-Provider\pGinaProvider.vcproj", "{7348AEE0-1F4A-4436-B782-6ABB694911AE}" ProjectSection(ProjectDependencies) = postProject @@ -21,12 +17,6 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConfigApp", "ConfigApp\ConfigApp.csproj", "{87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pGinaSrv", "pGinaSrv\pGinaSrv.vcproj", "{C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}" - ProjectSection(ProjectDependencies) = postProject - {22D652D9-83FF-47DE-BB0C-B36C42D4A826} = {22D652D9-83FF-47DE-BB0C-B36C42D4A826} - {A98FD2E8-E962-4DEF-A593-7C768F1E3E44} = {A98FD2E8-E962-4DEF-A593-7C768F1E3E44} - EndProjectSection -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pGinaLogoffUtility", "pGinaLogoffUtility\pGinaLogoffUtility.vcproj", "{65D71E30-E311-4208-927A-483717A028EE}" ProjectSection(ProjectDependencies) = postProject {22D652D9-83FF-47DE-BB0C-B36C42D4A826} = {22D652D9-83FF-47DE-BB0C-B36C42D4A826} @@ -51,92 +41,72 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 - Release|Any CPU = Release|Any CPU Release|Win32 = Release|Win32 Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Debug|Any CPU.ActiveCfg = Debug|x64 {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Debug|Win32.ActiveCfg = Debug|Win32 {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Debug|Win32.Build.0 = Debug|Win32 {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Debug|x64.ActiveCfg = Debug|x64 {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Debug|x64.Build.0 = Debug|x64 - {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Release|Any CPU.ActiveCfg = Release|x64 {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Release|Win32.ActiveCfg = Release|Win32 {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Release|Win32.Build.0 = Release|Win32 {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Release|x64.ActiveCfg = Release|x64 {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Release|x64.Build.0 = Release|x64 - {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Debug|Any CPU.ActiveCfg = Debug|x64 {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Debug|Win32.ActiveCfg = Debug|Win32 {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Debug|Win32.Build.0 = Debug|Win32 {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Debug|x64.ActiveCfg = Debug|x64 {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Debug|x64.Build.0 = Debug|x64 - {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Release|Any CPU.ActiveCfg = Release|x64 {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Release|Win32.ActiveCfg = Release|Win32 {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Release|Win32.Build.0 = Release|Win32 {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Release|x64.ActiveCfg = Release|x64 {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Release|x64.Build.0 = Release|x64 - {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Debug|Any CPU.ActiveCfg = Debug|x64 {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Debug|Win32.ActiveCfg = Debug|Win32 {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Debug|Win32.Build.0 = Debug|Win32 {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Debug|x64.ActiveCfg = Debug|x64 {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Debug|x64.Build.0 = Debug|x64 - {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Release|Any CPU.ActiveCfg = Release|x64 {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Release|Win32.ActiveCfg = Release|Win32 {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Release|Win32.Build.0 = Release|Win32 {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Release|x64.ActiveCfg = Release|x64 {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Release|x64.Build.0 = Release|x64 - {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Debug|Any CPU.ActiveCfg = Debug|x64 {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Debug|Win32.ActiveCfg = Debug|Win32 {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Debug|Win32.Build.0 = Debug|Win32 {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Debug|x64.ActiveCfg = Debug|x64 {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Debug|x64.Build.0 = Debug|x64 - {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Release|Any CPU.ActiveCfg = Release|x64 {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Release|Win32.ActiveCfg = Release|Win32 + {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Release|Win32.Build.0 = Release|Win32 {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Release|x64.ActiveCfg = Release|x64 - {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|Any CPU.Build.0 = Debug|Any CPU + {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Release|x64.Build.0 = Release|x64 {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|Win32.ActiveCfg = Debug|Any CPU {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|Win32.Build.0 = Debug|Any CPU {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|x64.ActiveCfg = Debug|Any CPU {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|x64.Build.0 = Debug|Any CPU - {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Release|Any CPU.ActiveCfg = Release|Any CPU - {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Release|Any CPU.Build.0 = Release|Any CPU {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Release|Win32.ActiveCfg = Release|Any CPU + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Release|Win32.Build.0 = Release|Any CPU {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Release|x64.ActiveCfg = Release|Any CPU - {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Debug|Win32.ActiveCfg = Debug|Win32 - {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Debug|Win32.Build.0 = Debug|Win32 - {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Debug|x64.ActiveCfg = Debug|x64 - {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Debug|x64.Build.0 = Debug|x64 - {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Release|Any CPU.ActiveCfg = Release|x64 - {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Release|Win32.ActiveCfg = Release|Win32 - {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Release|x64.ActiveCfg = Release|x64 - {65D71E30-E311-4208-927A-483717A028EE}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Release|x64.Build.0 = Release|Any CPU {65D71E30-E311-4208-927A-483717A028EE}.Debug|Win32.ActiveCfg = Debug|Win32 {65D71E30-E311-4208-927A-483717A028EE}.Debug|Win32.Build.0 = Debug|Win32 - {65D71E30-E311-4208-927A-483717A028EE}.Debug|x64.ActiveCfg = Debug|Win32 - {65D71E30-E311-4208-927A-483717A028EE}.Release|Any CPU.ActiveCfg = Release|x64 + {65D71E30-E311-4208-927A-483717A028EE}.Debug|x64.ActiveCfg = Debug|x64 + {65D71E30-E311-4208-927A-483717A028EE}.Debug|x64.Build.0 = Debug|x64 {65D71E30-E311-4208-927A-483717A028EE}.Release|Win32.ActiveCfg = Release|Win32 {65D71E30-E311-4208-927A-483717A028EE}.Release|Win32.Build.0 = Release|Win32 {65D71E30-E311-4208-927A-483717A028EE}.Release|x64.ActiveCfg = Release|x64 {65D71E30-E311-4208-927A-483717A028EE}.Release|x64.Build.0 = Release|x64 - {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Debug|Any CPU.Build.0 = Debug|Any CPU {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Debug|Win32.ActiveCfg = Debug|Any CPU + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Debug|Win32.Build.0 = Debug|Any CPU {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Debug|x64.ActiveCfg = Debug|Any CPU - {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Release|Any CPU.Build.0 = Release|Any CPU + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Debug|x64.Build.0 = Debug|Any CPU {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Release|Win32.ActiveCfg = Release|Any CPU + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Release|Win32.Build.0 = Release|Any CPU {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Release|x64.ActiveCfg = Release|Any CPU - {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Release|x64.Build.0 = Release|Any CPU {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Debug|Win32.ActiveCfg = Debug|Win32 {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Debug|Win32.Build.0 = Debug|Win32 - {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Debug|x64.ActiveCfg = Debug|Win32 - {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Release|Any CPU.ActiveCfg = Release|x64 + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Debug|x64.ActiveCfg = Debug|x64 + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Debug|x64.Build.0 = Debug|x64 {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Release|Win32.ActiveCfg = Release|Win32 {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Release|Win32.Build.0 = Release|Win32 {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Release|x64.ActiveCfg = Release|x64 Modified: pGina-2.x/src/pGina-2.0-vs2010.sln =================================================================== --- pGina-2.x/src/pGina-2.0-vs2010.sln 2011-06-05 06:57:22 UTC (rev 135) +++ pGina-2.x/src/pGina-2.0-vs2010.sln 2011-06-05 09:34:43 UTC (rev 136) @@ -24,8 +24,6 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConfigApp", "ConfigApp\ConfigApp.csproj", "{87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pGinaSrv", "pGinaSrv\pGinaSrv.vcxproj", "{C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pGinaLogoffUtility", "pGinaLogoffUtility\pGinaLogoffUtility.vcxproj", "{65D71E30-E311-4208-927A-483717A028EE}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pGinaSrvCS", "pGinaSrvCS\pGinaSrvCS.csproj", "{45B874F8-2E2B-43B8-8A6F-42CC8434436D}" @@ -34,92 +32,72 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 - Release|Any CPU = Release|Any CPU Release|Win32 = Release|Win32 Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Debug|Any CPU.ActiveCfg = Debug|x64 {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Debug|Win32.ActiveCfg = Debug|Win32 {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Debug|Win32.Build.0 = Debug|Win32 {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Debug|x64.ActiveCfg = Debug|x64 {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Debug|x64.Build.0 = Debug|x64 - {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Release|Any CPU.ActiveCfg = Release|x64 {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Release|Win32.ActiveCfg = Release|Win32 {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Release|Win32.Build.0 = Release|Win32 {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Release|x64.ActiveCfg = Release|x64 {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Release|x64.Build.0 = Release|x64 - {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Debug|Any CPU.ActiveCfg = Debug|x64 {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Debug|Win32.ActiveCfg = Debug|Win32 {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Debug|Win32.Build.0 = Debug|Win32 {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Debug|x64.ActiveCfg = Debug|x64 {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Debug|x64.Build.0 = Debug|x64 - {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Release|Any CPU.ActiveCfg = Release|x64 {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Release|Win32.ActiveCfg = Release|Win32 {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Release|Win32.Build.0 = Release|Win32 {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Release|x64.ActiveCfg = Release|x64 {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Release|x64.Build.0 = Release|x64 - {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Debug|Any CPU.ActiveCfg = Debug|x64 {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Debug|Win32.ActiveCfg = Debug|Win32 {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Debug|Win32.Build.0 = Debug|Win32 {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Debug|x64.ActiveCfg = Debug|x64 {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Debug|x64.Build.0 = Debug|x64 - {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Release|Any CPU.ActiveCfg = Release|x64 {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Release|Win32.ActiveCfg = Release|Win32 {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Release|Win32.Build.0 = Release|Win32 {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Release|x64.ActiveCfg = Release|x64 {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Release|x64.Build.0 = Release|x64 - {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Debug|Any CPU.ActiveCfg = Debug|x64 {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Debug|Win32.ActiveCfg = Debug|Win32 {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Debug|Win32.Build.0 = Debug|Win32 {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Debug|x64.ActiveCfg = Debug|x64 {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Debug|x64.Build.0 = Debug|x64 - {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Release|Any CPU.ActiveCfg = Release|x64 {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Release|Win32.ActiveCfg = Release|Win32 + {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Release|Win32.Build.0 = Release|Win32 {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Release|x64.ActiveCfg = Release|x64 - {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|Any CPU.Build.0 = Debug|Any CPU + {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Release|x64.Build.0 = Release|x64 {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|Win32.ActiveCfg = Debug|Any CPU {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|Win32.Build.0 = Debug|Any CPU {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|x64.ActiveCfg = Debug|Any CPU {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|x64.Build.0 = Debug|Any CPU - {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Release|Any CPU.ActiveCfg = Release|Any CPU - {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Release|Any CPU.Build.0 = Release|Any CPU {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Release|Win32.ActiveCfg = Release|Any CPU + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Release|Win32.Build.0 = Release|Any CPU {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Release|x64.ActiveCfg = Release|Any CPU - {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Debug|Win32.ActiveCfg = Debug|Win32 - {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Debug|Win32.Build.0 = Debug|Win32 - {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Debug|x64.ActiveCfg = Debug|x64 - {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Debug|x64.Build.0 = Debug|x64 - {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Release|Any CPU.ActiveCfg = Release|x64 - {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Release|Win32.ActiveCfg = Release|Win32 - {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Release|x64.ActiveCfg = Release|x64 - {65D71E30-E311-4208-927A-483717A028EE}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Release|x64.Build.0 = Release|Any CPU {65D71E30-E311-4208-927A-483717A028EE}.Debug|Win32.ActiveCfg = Debug|Win32 {65D71E30-E311-4208-927A-483717A028EE}.Debug|Win32.Build.0 = Debug|Win32 - {65D71E30-E311-4208-927A-483717A028EE}.Debug|x64.ActiveCfg = Debug|Win32 - {65D71E30-E311-4208-927A-483717A028EE}.Release|Any CPU.ActiveCfg = Release|x64 + {65D71E30-E311-4208-927A-483717A028EE}.Debug|x64.ActiveCfg = Debug|x64 + {65D71E30-E311-4208-927A-483717A028EE}.Debug|x64.Build.0 = Debug|x64 {65D71E30-E311-4208-927A-483717A028EE}.Release|Win32.ActiveCfg = Release|Win32 {65D71E30-E311-4208-927A-483717A028EE}.Release|Win32.Build.0 = Release|Win32 {65D71E30-E311-4208-927A-483717A028EE}.Release|x64.ActiveCfg = Release|x64 {65D71E30-E311-4208-927A-483717A028EE}.Release|x64.Build.0 = Release|x64 - {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Debug|Any CPU.Build.0 = Debug|Any CPU {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Debug|Win32.ActiveCfg = Debug|Any CPU + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Debug|Win32.Build.0 = Debug|Any CPU {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Debug|x64.ActiveCfg = Debug|Any CPU - {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Release|Any CPU.Build.0 = Release|Any CPU + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Debug|x64.Build.0 = Debug|Any CPU {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Release|Win32.ActiveCfg = Release|Any CPU + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Release|Win32.Build.0 = Release|Any CPU {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Release|x64.ActiveCfg = Release|Any CPU - {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Release|x64.Build.0 = Release|Any CPU {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Debug|Win32.ActiveCfg = Debug|Win32 {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Debug|Win32.Build.0 = Debug|Win32 - {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Debug|x64.ActiveCfg = Debug|Win32 - {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Release|Any CPU.ActiveCfg = Release|x64 + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Debug|x64.ActiveCfg = Debug|x64 + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Debug|x64.Build.0 = Debug|x64 {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Release|Win32.ActiveCfg = Release|Win32 {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Release|Win32.Build.0 = Release|Win32 {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Release|x64.ActiveCfg = Release|x64 Modified: pGina-2.x/src/pGina-Lib/pGina-Lib.vcproj =================================================================== --- pGina-2.x/src/pGina-Lib/pGina-Lib.vcproj 2011-06-05 06:57:22 UTC (rev 135) +++ pGina-2.x/src/pGina-Lib/pGina-Lib.vcproj 2011-06-05 09:34:43 UTC (rev 136) @@ -21,8 +21,8 @@ <Configurations> <Configuration Name="Debug|Win32" - OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" - IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + OutputDirectory="$(SolutionDir)\bin\$(PlatformName)" + IntermediateDirectory="$(SolutionDir)\build\$(PlatformName)\$(Configuration)\$(ProjectName)" ConfigurationType="4" CharacterSet="1" > @@ -84,8 +84,8 @@ </Configuration> <Configuration Name="Debug|x64" - OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" - IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + OutputDirectory="$(SolutionDir)\bin\$(PlatformName)" + IntermediateDirectory="$(SolutionDir)\build\$(PlatformName)\$(Configuration)\$(ProjectName)" ConfigurationType="4" CharacterSet="1" > @@ -148,8 +148,8 @@ </Configuration> <Configuration Name="Release|Win32" - OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" - IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + OutputDirectory="$(SolutionDir)\bin\$(PlatformName)" + IntermediateDirectory="$(SolutionDir)\build\$(PlatformName)\$(Configuration)\$(ProjectName)" ConfigurationType="4" CharacterSet="1" WholeProgramOptimization="1" @@ -213,8 +213,8 @@ </Configuration> <Configuration Name="Release|x64" - OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" - IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + OutputDirectory="$(SolutionDir)\bin\$(PlatformName)" + IntermediateDirectory="$(SolutionDir)\build\$(PlatformName)\$(Configuration)\$(ProjectName)" ConfigurationType="4" CharacterSet="1" ManagedExtensions="0" Modified: pGina-2.x/src/pGina-Lib/pGina-Lib.vcxproj =================================================================== --- pGina-2.x/src/pGina-Lib/pGina-Lib.vcxproj 2011-06-05 06:57:22 UTC (rev 135) +++ pGina-2.x/src/pGina-Lib/pGina-Lib.vcxproj 2011-06-05 09:34:43 UTC (rev 136) @@ -61,14 +61,14 @@ <PropertyGroup Label="UserMacros" /> <PropertyGroup> <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</IntDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</IntDir> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)\bin\$(Platform)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)\build\$(Platform)\$(Configuration)\$(ProjectName)</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)\bin\$(Platform)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)\build\$(Platform)\$(Configuration)\$(ProjectName)</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)\bin\$(Platform)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)\build\$(Platform)\$(Configuration)\$(ProjectName)</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)\bin\$(Platform)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)\build\$(Platform)\$(Configuration)\$(ProjectName)</IntDir> </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ClCompile> @@ -92,11 +92,12 @@ <AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> <MinimalRebuild>true</MinimalRebuild> - <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <BasicRuntimeChecks>Default</BasicRuntimeChecks> <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> <PrecompiledHeader>Use</PrecompiledHeader> <WarningLevel>Level3</WarningLevel> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <BufferSecurityCheck>false</BufferSecurityCheck> </ClCompile> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> Modified: pGina-2.x/src/pGina-Lib/pGinaLog.cpp =================================================================== --- pGina-2.x/src/pGina-Lib/pGinaLog.cpp 2011-06-05 06:57:22 UTC (rev 135) +++ pGina-2.x/src/pGina-Lib/pGinaLog.cpp 2011-06-05 09:34:43 UTC (rev 136) @@ -45,14 +45,16 @@ m_file(NULL), m_level(5) { m_filename = NULL; + m_source = new wchar_t[PGINA_LOG_SOURCE_WIDTH]; + memset(m_source, 0, sizeof(wchar_t) * PGINA_LOG_SOURCE_WIDTH); } pGinaLog::pGinaLog(const wchar_t *file) : m_file(NULL), m_level(5) { m_type = PGINA_LOG_TYPE_FILE; - m_filename = _wcsdup(file); - m_source = new wchar_t[PGINA_LOG_SOURCE_WIDTH]; + m_filename = _wcsdup(file); + m_source = new wchar_t[PGINA_LOG_SOURCE_WIDTH]; memset(m_source, 0, sizeof(wchar_t) * PGINA_LOG_SOURCE_WIDTH); } Modified: pGina-2.x/src/pGina-Provider/pGinaProvider.vcproj =================================================================== --- pGina-2.x/src/pGina-Provider/pGinaProvider.vcproj 2011-06-05 06:57:22 UTC (rev 135) +++ pGina-2.x/src/pGina-Provider/pGinaProvider.vcproj 2011-06-05 09:34:43 UTC (rev 136) @@ -20,8 +20,8 @@ <Configurations> <Configuration Name="Debug|Win32" - OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" - IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + OutputDirectory="$(SolutionDir)\bin\$(PlatformName)" + IntermediateDirectory="$(SolutionDir)\build\$(PlatformName)\$(Configuration)\$(ProjectName)" ConfigurationType="2" CharacterSet="0" > @@ -45,6 +45,7 @@ Optimization="0" InlineFunctionExpansion="0" AdditionalIncludeDirectories=""..\pGina-Lib"" + PreprocessorDefinitions="UNICODE;_UNICODE;_DEBUG" WarningLevel="4" WarnAsError="true" DebugInformationFormat="4" @@ -61,7 +62,7 @@ <Tool Name="VCLinkerTool" IgnoreImportLibrary="false" - AdditionalDependencies="secur32.lib shlwapi.lib Netapi32.lib" + AdditionalDependencies="Iphlpapi.lib" ShowProgress="2" LinkIncremental="1" AdditionalLibraryDirectories=""C:\Program Files\Microsoft SDKs\Windows\v6.0\Lib";"C:\Program Files\Microsoft Platform SDK\Lib";"C:\program Files\microsoft sdKs\Windows\v1.0\Lib"" @@ -101,8 +102,8 @@ </Configuration> <Configuration Name="Debug|x64" - OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" - IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + OutputDirectory="$(SolutionDir)\bin\$(PlatformName)" + IntermediateDirectory="$(SolutionDir)\build\$(PlatformName)\$(Configuration)\$(ProjectName)" ConfigurationType="2" CharacterSet="0" > @@ -127,6 +128,7 @@ Optimization="0" InlineFunctionExpansion="0" AdditionalIncludeDirectories=""..\pGina-Lib"" + PreprocessorDefinitions="UNICODE;_UNICODE;_DEBUG" WarningLevel="4" WarnAsError="true" DebugInformationFormat="3" @@ -143,11 +145,11 @@ <Tool Name="VCLinkerTool" IgnoreImportLibrary="false" - AdditionalDependencies="secur32.lib shlwapi.lib bufferoverflowu.lib Netapi32.lib" + AdditionalDependencies="Iphlpapi.lib" ShowProgress="2" LinkIncremental="1" AdditionalLibraryDirectories=""C:\Program Files\Microsoft SDKs\Windows\v6.0\Lib";"C:\Program Files\Microsoft Platform SDK\Lib";"C:\program Files\microsoft sdKs\Windows\v1.0\Lib"" - IgnoreDefaultLibraryNames="" + IgnoreDefaultLibraryNames="LIBCMT" ModuleDefinitionFile="pGinaProvider.def" AddModuleNamesToAssembly="secur32.lib" GenerateDebugInformation="true" @@ -184,8 +186,8 @@ </Configuration> <Configuration Name="Release|Win32" - OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" - IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + OutputDirectory="$(SolutionDir)\bin\$(PlatformName)" + IntermediateDirectory="$(SolutionDir)\build\$(PlatformName)\$(Configuration)\$(ProjectName)" ConfigurationType="2" CharacterSet="0" > @@ -267,8 +269,8 @@ </Configuration> <Configuration Name="Release|x64" - OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" - IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + OutputDirectory="$(SolutionDir)\bin\$(PlatformName)" + IntermediateDirectory="$(SolutionDir)\build\$(PlatformName)\$(Configuration)\$(ProjectName)" ConfigurationType="2" CharacterSet="0" ManagedExtensions="0" Modified: pGina-2.x/src/pGina-Provider/pGinaProvider.vcxproj =================================================================== --- pGina-2.x/src/pGina-Provider/pGinaProvider.vcxproj 2011-06-05 06:57:22 UTC (rev 135) +++ pGina-2.x/src/pGina-Provider/pGinaProvider.vcxproj 2011-06-05 09:34:43 UTC (rev 136) @@ -58,20 +58,28 @@ <PropertyGroup Label="UserMacros" /> <PropertyGroup> <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)\bin\$(Platform)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)\build\$(Platform)\$(Configuration)\$(ProjectName)</IntDir> <IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</IgnoreImportLibrary> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)\bin\$(Platform)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)\build\$(Platform)\$(Configuration)\$(ProjectName)</IntDir> <IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</IgnoreImportLibrary> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)\bin\$(Platform)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)\build\$(Platform)\$(Configuration)\$(ProjectName)</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> - <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> - <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)\bin\$(Platform)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)\build\$(Platform)\$(Configuration)\$(ProjectName)</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> + <CustomBuildAfterTargets Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + </CustomBuildAfterTargets> + <CustomBuildAfterTargets Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + </CustomBuildAfterTargets> + <CustomBuildAfterTargets Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + </CustomBuildAfterTargets> + <CustomBuildAfterTargets Condition="'$(Configuration... [truncated message content] |
From: <pgi...@li...> - 2011-06-05 06:57:33
|
Revision: 135 http://pgina.svn.sourceforge.net/pgina/?rev=135&view=rev Author: aksooo Date: 2011-06-05 06:57:22 +0000 (Sun, 05 Jun 2011) Log Message: ----------- Main project file was updated to VC2008, added x64 config EmailAuth.cpp - Changed a variable to const to coincide with OpenSSL OpenSSL libs updated to 1.0.0d Added x64 libs If building on VC2003, you'll likely need to update the include and lib paths Modified Paths: -------------- Plugins/EmailAuth/EmailAuth/EmailAuth.cpp Plugins/EmailAuth/EmailAuth/EmailAuth.sln Plugins/EmailAuth/EmailAuth/EmailAuth.suo Plugins/EmailAuth/EmailAuth/EmailAuth.vcproj Plugins/EmailAuth/EmailAuthInstaller/EmailAuthInstaller.vdproj Added Paths: ----------- Plugins/EmailAuth/EmailAuth/EmailAuth - VC2003.sln Plugins/EmailAuth/EmailAuth/EmailAuth - VC2003.suo Plugins/EmailAuth/EmailAuth/EmailAuth - VC2003.vcproj Plugins/EmailAuth/EmailAuth/EmailAuth.vcproj.testbox-PC.testbox.user Plugins/EmailAuth/EmailAuth/openssl/LICENSE Plugins/EmailAuth/EmailAuth/openssl/include/ Plugins/EmailAuth/EmailAuth/openssl/include/openssl/ Plugins/EmailAuth/EmailAuth/openssl/include/openssl/aes.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/asn1.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/asn1_mac.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/asn1t.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/bio.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/blowfish.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/bn.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/buffer.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/camellia.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/cast.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/cms.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/comp.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/conf.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/conf_api.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/crypto.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/des.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/des_old.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/dh.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/dsa.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/dso.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/dtls1.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/e_os2.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/ebcdic.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/ec.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/ecdh.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/ecdsa.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/engine.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/err.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/evp.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/hmac.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/idea.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/krb5_asn.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/kssl.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/lhash.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/md4.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/md5.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/mdc2.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/modes.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/obj_mac.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/objects.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/ocsp.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/opensslconf.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/opensslv.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/ossl_typ.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/pem.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/pem2.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/pkcs12.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/pkcs7.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/pqueue.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/rand.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/rc2.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/rc4.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/ripemd.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/rsa.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/safestack.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/seed.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/sha.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/ssl.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/ssl2.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/ssl23.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/ssl3.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/stack.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/symhacks.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/tls1.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/ts.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/txt_db.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/ui.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/ui_compat.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/whrlpool.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/x509.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/x509_vfy.h Plugins/EmailAuth/EmailAuth/openssl/include/openssl/x509v3.h Plugins/EmailAuth/EmailAuth/openssl/win32/ Plugins/EmailAuth/EmailAuth/openssl/win32/libeay32.dll Plugins/EmailAuth/EmailAuth/openssl/win32/libeay32.lib Plugins/EmailAuth/EmailAuth/openssl/win32/ssleay32.dll Plugins/EmailAuth/EmailAuth/openssl/win32/ssleay32.lib Plugins/EmailAuth/EmailAuth/openssl/win64/ Plugins/EmailAuth/EmailAuth/openssl/win64/libeay32.dll Plugins/EmailAuth/EmailAuth/openssl/win64/libeay32.lib Plugins/EmailAuth/EmailAuth/openssl/win64/ssleay32.dll Plugins/EmailAuth/EmailAuth/openssl/win64/ssleay32.lib Removed Paths: ------------- Plugins/EmailAuth/EmailAuth/openssl/libeay32.lib Plugins/EmailAuth/EmailAuth/openssl/openssl_license.rtf Plugins/EmailAuth/EmailAuth/openssl/ssleay32.lib Plugins/EmailAuth/EmailAuthInstaller/Debug/ Plugins/EmailAuth/EmailAuthInstaller/Release/ Added: Plugins/EmailAuth/EmailAuth/EmailAuth - VC2003.sln =================================================================== --- Plugins/EmailAuth/EmailAuth/EmailAuth - VC2003.sln (rev 0) +++ Plugins/EmailAuth/EmailAuth/EmailAuth - VC2003.sln 2011-06-05 06:57:22 UTC (rev 135) @@ -0,0 +1,27 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EmailAuth", "EmailAuth.vcproj", "{CCB54D03-CF9F-4C41-BFD2-1A1AA1C2DDBC}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "EmailAuthInstaller", "..\EmailAuthInstaller\EmailAuthInstaller.vdproj", "{A43D7258-9C60-4DB3-A59B-5185BACB7F48}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {CCB54D03-CF9F-4C41-BFD2-1A1AA1C2DDBC}.Debug.ActiveCfg = Release|Win32 + {CCB54D03-CF9F-4C41-BFD2-1A1AA1C2DDBC}.Debug.Build.0 = Release|Win32 + {CCB54D03-CF9F-4C41-BFD2-1A1AA1C2DDBC}.Release.ActiveCfg = Release|Win32 + {CCB54D03-CF9F-4C41-BFD2-1A1AA1C2DDBC}.Release.Build.0 = Release|Win32 + {A43D7258-9C60-4DB3-A59B-5185BACB7F48}.Debug.ActiveCfg = Debug + {A43D7258-9C60-4DB3-A59B-5185BACB7F48}.Release.ActiveCfg = Release + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal Added: Plugins/EmailAuth/EmailAuth/EmailAuth - VC2003.suo =================================================================== (Binary files differ) Property changes on: Plugins/EmailAuth/EmailAuth/EmailAuth - VC2003.suo ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: Plugins/EmailAuth/EmailAuth/EmailAuth - VC2003.vcproj =================================================================== --- Plugins/EmailAuth/EmailAuth/EmailAuth - VC2003.vcproj (rev 0) +++ Plugins/EmailAuth/EmailAuth/EmailAuth - VC2003.vcproj 2011-06-05 06:57:22 UTC (rev 135) @@ -0,0 +1,145 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="7.10" + Name="EmailAuth" + ProjectGUID="{CCB54D03-CF9F-4C41-BFD2-1A1AA1C2DDBC}" + Keyword="Win32Proj"> + <Platforms> + <Platform + Name="Win32"/> + </Platforms> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="2" + CharacterSet="1"> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;EMAILAUTH_EXPORTS" + MinimalRebuild="TRUE" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="TRUE" + DebugInformationFormat="4"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + OutputFile="$(OutDir)/EmailAuth.dll" + LinkIncremental="2" + GenerateDebugInformation="TRUE" + ProgramDatabaseFile="$(OutDir)/EmailAuth.pdb" + SubSystem="2" + ImportLibrary="$(OutDir)/EmailAuth.lib" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="2" + CharacterSet="1"> + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;EMAILAUTH_EXPORTS" + RuntimeLibrary="2" + BufferSecurityCheck="TRUE" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="FALSE" + DebugInformationFormat="3"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="openssl/libeay32.lib openssl/ssleay32.lib ws2_32.lib" + OutputFile="$(OutDir)/EmailAuth.dll" + LinkIncremental="1" + GenerateDebugInformation="TRUE" + SubSystem="2" + OptimizeReferences="2" + EnableCOMDATFolding="2" + ImportLibrary="$(OutDir)/EmailAuth.lib" + TargetMachine="1"/> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCXMLDataGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + <Tool + Name="VCManagedWrapperGeneratorTool"/> + <Tool + Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> + <File + RelativePath=".\EmailAuth.cpp"> + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> + <File + RelativePath=".\EmailAuth.h"> + </File> + <File + RelativePath=".\resource.h"> + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"> + <File + RelativePath=".\EmailAuth.rc"> + </File> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Modified: Plugins/EmailAuth/EmailAuth/EmailAuth.cpp =================================================================== --- Plugins/EmailAuth/EmailAuth/EmailAuth.cpp 2011-06-04 19:46:40 UTC (rev 134) +++ Plugins/EmailAuth/EmailAuth/EmailAuth.cpp 2011-06-05 06:57:22 UTC (rev 135) @@ -631,7 +631,7 @@ TIMEVAL timeout; SSL *ssl; SSL_CTX *ssl_ctx; - SSL_METHOD *ssl_method; + const SSL_METHOD *ssl_method; ENTRY_INFO *entries, *oentries; CHAR *seed_file; Modified: Plugins/EmailAuth/EmailAuth/EmailAuth.sln =================================================================== --- Plugins/EmailAuth/EmailAuth/EmailAuth.sln 2011-06-04 19:46:40 UTC (rev 134) +++ Plugins/EmailAuth/EmailAuth/EmailAuth.sln 2011-06-05 06:57:22 UTC (rev 135) @@ -1,27 +1,33 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EmailAuth", "EmailAuth.vcproj", "{CCB54D03-CF9F-4C41-BFD2-1A1AA1C2DDBC}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection EndProject Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "EmailAuthInstaller", "..\EmailAuthInstaller\EmailAuthInstaller.vdproj", "{A43D7258-9C60-4DB3-A59B-5185BACB7F48}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection EndProject Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {CCB54D03-CF9F-4C41-BFD2-1A1AA1C2DDBC}.Debug.ActiveCfg = Release|Win32 - {CCB54D03-CF9F-4C41-BFD2-1A1AA1C2DDBC}.Debug.Build.0 = Release|Win32 - {CCB54D03-CF9F-4C41-BFD2-1A1AA1C2DDBC}.Release.ActiveCfg = Release|Win32 - {CCB54D03-CF9F-4C41-BFD2-1A1AA1C2DDBC}.Release.Build.0 = Release|Win32 - {A43D7258-9C60-4DB3-A59B-5185BACB7F48}.Debug.ActiveCfg = Debug - {A43D7258-9C60-4DB3-A59B-5185BACB7F48}.Release.ActiveCfg = Release + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CCB54D03-CF9F-4C41-BFD2-1A1AA1C2DDBC}.Debug|Win32.ActiveCfg = Release|Win32 + {CCB54D03-CF9F-4C41-BFD2-1A1AA1C2DDBC}.Debug|Win32.Build.0 = Release|Win32 + {CCB54D03-CF9F-4C41-BFD2-1A1AA1C2DDBC}.Debug|x64.ActiveCfg = Debug|x64 + {CCB54D03-CF9F-4C41-BFD2-1A1AA1C2DDBC}.Debug|x64.Build.0 = Debug|x64 + {CCB54D03-CF9F-4C41-BFD2-1A1AA1C2DDBC}.Release|Win32.ActiveCfg = Release|Win32 + {CCB54D03-CF9F-4C41-BFD2-1A1AA1C2DDBC}.Release|Win32.Build.0 = Release|Win32 + {CCB54D03-CF9F-4C41-BFD2-1A1AA1C2DDBC}.Release|x64.ActiveCfg = Release|x64 + {CCB54D03-CF9F-4C41-BFD2-1A1AA1C2DDBC}.Release|x64.Build.0 = Release|x64 + {A43D7258-9C60-4DB3-A59B-5185BACB7F48}.Debug|Win32.ActiveCfg = Debug + {A43D7258-9C60-4DB3-A59B-5185BACB7F48}.Debug|x64.ActiveCfg = Debug + {A43D7258-9C60-4DB3-A59B-5185BACB7F48}.Debug|x64.Build.0 = Debug + {A43D7258-9C60-4DB3-A59B-5185BACB7F48}.Release|Win32.ActiveCfg = Release + {A43D7258-9C60-4DB3-A59B-5185BACB7F48}.Release|x64.ActiveCfg = Release + {A43D7258-9C60-4DB3-A59B-5185BACB7F48}.Release|x64.Build.0 = Release EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection EndGlobal Modified: Plugins/EmailAuth/EmailAuth/EmailAuth.suo =================================================================== (Binary files differ) Modified: Plugins/EmailAuth/EmailAuth/EmailAuth.vcproj =================================================================== --- Plugins/EmailAuth/EmailAuth/EmailAuth.vcproj 2011-06-04 19:46:40 UTC (rev 134) +++ Plugins/EmailAuth/EmailAuth/EmailAuth.vcproj 2011-06-05 06:57:22 UTC (rev 135) @@ -1,113 +1,342 @@ <?xml version="1.0" encoding="Windows-1252"?> <VisualStudioProject ProjectType="Visual C++" - Version="7.10" + Version="9.00" Name="EmailAuth" ProjectGUID="{CCB54D03-CF9F-4C41-BFD2-1A1AA1C2DDBC}" - Keyword="Win32Proj"> + RootNamespace="EmailAuth" + Keyword="Win32Proj" + TargetFrameworkVersion="131072" + > <Platforms> <Platform - Name="Win32"/> + Name="Win32" + /> + <Platform + Name="x64" + /> </Platforms> + <ToolFiles> + </ToolFiles> <Configurations> <Configuration Name="Debug|Win32" OutputDirectory="Debug" IntermediateDirectory="Debug" ConfigurationType="2" - CharacterSet="1"> + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" + CharacterSet="1" + > <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool Name="VCCLCompilerTool" Optimization="0" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;EMAILAUTH_EXPORTS" - MinimalRebuild="TRUE" + MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" UsePrecompiledHeader="0" WarningLevel="3" - Detect64BitPortabilityProblems="TRUE" - DebugInformationFormat="4"/> + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> <Tool - Name="VCCustomBuildTool"/> + Name="VCManagedResourceCompilerTool" + /> <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool Name="VCLinkerTool" OutputFile="$(OutDir)/EmailAuth.dll" LinkIncremental="2" - GenerateDebugInformation="TRUE" + GenerateDebugInformation="true" ProgramDatabaseFile="$(OutDir)/EmailAuth.pdb" SubSystem="2" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" ImportLibrary="$(OutDir)/EmailAuth.lib" - TargetMachine="1"/> + TargetMachine="1" + /> <Tool - Name="VCMIDLTool"/> + Name="VCALinkTool" + /> <Tool - Name="VCPostBuildEventTool"/> + Name="VCManifestTool" + /> <Tool - Name="VCPreBuildEventTool"/> + Name="VCXDCMakeTool" + /> <Tool - Name="VCPreLinkEventTool"/> + Name="VCBscMakeTool" + /> <Tool - Name="VCResourceCompilerTool"/> + Name="VCFxCopTool" + /> <Tool - Name="VCWebServiceProxyGeneratorTool"/> + Name="VCAppVerifierTool" + /> <Tool - Name="VCXMLDataGeneratorTool"/> - <Tool - Name="VCWebDeploymentTool"/> - <Tool - Name="VCManagedWrapperGeneratorTool"/> - <Tool - Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + Name="VCPostBuildEventTool" + /> </Configuration> <Configuration Name="Release|Win32" - OutputDirectory="Release" - IntermediateDirectory="Release" + OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" + IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" ConfigurationType="2" - CharacterSet="1"> + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" + CharacterSet="1" + > <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool Name="VCCLCompilerTool" + AdditionalIncludeDirectories="$(SolutionDir)\openssl\include" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;EMAILAUTH_EXPORTS" RuntimeLibrary="2" - BufferSecurityCheck="TRUE" + BufferSecurityCheck="true" UsePrecompiledHeader="0" WarningLevel="3" - Detect64BitPortabilityProblems="FALSE" - DebugInformationFormat="3"/> + Detect64BitPortabilityProblems="false" + DebugInformationFormat="3" + /> <Tool - Name="VCCustomBuildTool"/> + Name="VCManagedResourceCompilerTool" + /> <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool Name="VCLinkerTool" - AdditionalDependencies="openssl/libeay32.lib openssl/ssleay32.lib ws2_32.lib" + AdditionalDependencies="libeay32.lib ssleay32.lib ws2_32.lib" OutputFile="$(OutDir)/EmailAuth.dll" LinkIncremental="1" - GenerateDebugInformation="TRUE" + AdditionalLibraryDirectories="$(SolutionDir)\openssl\win32" + GenerateDebugInformation="true" SubSystem="2" OptimizeReferences="2" EnableCOMDATFolding="2" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" ImportLibrary="$(OutDir)/EmailAuth.lib" - TargetMachine="1"/> + TargetMachine="1" + /> <Tool - Name="VCMIDLTool"/> + Name="VCALinkTool" + /> <Tool - Name="VCPostBuildEventTool"/> + Name="VCManifestTool" + /> <Tool - Name="VCPreBuildEventTool"/> + Name="VCXDCMakeTool" + /> <Tool - Name="VCPreLinkEventTool"/> + Name="VCBscMakeTool" + /> <Tool - Name="VCResourceCompilerTool"/> + Name="VCFxCopTool" + /> <Tool - Name="VCWebServiceProxyGeneratorTool"/> + Name="VCAppVerifierTool" + /> <Tool - Name="VCXMLDataGeneratorTool"/> + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug|x64" + OutputDirectory="$(PlatformName)\$(ConfigurationName)" + IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" + CharacterSet="1" + > <Tool - Name="VCWebDeploymentTool"/> + Name="VCPreBuildEventTool" + /> <Tool - Name="VCManagedWrapperGeneratorTool"/> + Name="VCCustomBuildTool" + /> <Tool - Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TargetEnvironment="3" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;EMAILAUTH_EXPORTS" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + OutputFile="$(OutDir)/EmailAuth.dll" + LinkIncremental="2" + GenerateDebugInformation="true" + ProgramDatabaseFile="$(OutDir)/EmailAuth.pdb" + SubSystem="2" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + ImportLibrary="$(OutDir)/EmailAuth.lib" + TargetMachine="17" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> </Configuration> + <Configuration + Name="Release|x64" + OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)" + IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + TargetEnvironment="3" + /> + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="$(SolutionDir)\openssl\include" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;EMAILAUTH_EXPORTS" + RuntimeLibrary="2" + BufferSecurityCheck="true" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="false" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + AdditionalDependencies="libeay32.lib ssleay32.lib ws2_32.lib" + OutputFile="$(OutDir)/EmailAuth.dll" + LinkIncremental="1" + AdditionalLibraryDirectories="$(SolutionDir)\openssl\win64" + GenerateDebugInformation="true" + SubSystem="2" + OptimizeReferences="2" + EnableCOMDATFolding="2" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + ImportLibrary="$(OutDir)/EmailAuth.lib" + TargetMachine="17" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> </Configurations> <References> </References> @@ -115,28 +344,35 @@ <Filter Name="Source Files" Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" - UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" + > <File - RelativePath=".\EmailAuth.cpp"> + RelativePath=".\EmailAuth.cpp" + > </File> </Filter> <Filter Name="Header Files" Filter="h;hpp;hxx;hm;inl;inc;xsd" - UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" + > <File - RelativePath=".\EmailAuth.h"> + RelativePath=".\EmailAuth.h" + > </File> <File - RelativePath=".\resource.h"> + RelativePath=".\resource.h" + > </File> </Filter> <Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" - UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"> + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" + > <File - RelativePath=".\EmailAuth.rc"> + RelativePath=".\EmailAuth.rc" + > </File> </Filter> </Files> Added: Plugins/EmailAuth/EmailAuth/EmailAuth.vcproj.testbox-PC.testbox.user =================================================================== --- Plugins/EmailAuth/EmailAuth/EmailAuth.vcproj.testbox-PC.testbox.user (rev 0) +++ Plugins/EmailAuth/EmailAuth/EmailAuth.vcproj.testbox-PC.testbox.user 2011-06-05 06:57:22 UTC (rev 135) @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioUserFile + ProjectType="Visual C++" + Version="9.00" + ShowAllFiles="false" + > + <Configurations> + <Configuration + Name="Debug|Win32" + > + <DebugSettings + Command="" + WorkingDirectory="" + CommandArguments="" + Attach="false" + DebuggerType="3" + Remote="1" + RemoteMachine="TESTBOX-PC" + RemoteCommand="" + HttpUrl="" + PDBPath="" + SQLDebugging="" + Environment="" + EnvironmentMerge="true" + DebuggerFlavor="" + MPIRunCommand="" + MPIRunArguments="" + MPIRunWorkingDirectory="" + ApplicationCommand="" + ApplicationArguments="" + ShimCommand="" + MPIAcceptMode="" + MPIAcceptFilter="" + /> + </Configuration> + <Configuration + Name="Release|Win32" + > + <DebugSettings + Command="" + WorkingDirectory="" + CommandArguments="" + Attach="false" + DebuggerType="3" + Remote="1" + RemoteMachine="TESTBOX-PC" + RemoteCommand="" + HttpUrl="" + PDBPath="" + SQLDebugging="" + Environment="" + EnvironmentMerge="true" + DebuggerFlavor="" + MPIRunCommand="" + MPIRunArguments="" + MPIRunWorkingDirectory="" + ApplicationCommand="" + ApplicationArguments="" + ShimCommand="" + MPIAcceptMode="" + MPIAcceptFilter="" + /> + </Configuration> + <Configuration + Name="Debug|x64" + > + <DebugSettings + Command="" + WorkingDirectory="" + CommandArguments="" + Attach="false" + DebuggerType="3" + Remote="1" + RemoteMachine="TESTBOX-PC" + RemoteCommand="" + HttpUrl="" + PDBPath="" + SQLDebugging="" + Environment="" + EnvironmentMerge="true" + DebuggerFlavor="" + MPIRunCommand="" + MPIRunArguments="" + MPIRunWorkingDirectory="" + ApplicationCommand="" + ApplicationArguments="" + ShimCommand="" + MPIAcceptMode="" + MPIAcceptFilter="" + /> + </Configuration> + <Configuration + Name="Release|x64" + > + <DebugSettings + Command="" + WorkingDirectory="" + CommandArguments="" + Attach="false" + DebuggerType="3" + Remote="1" + RemoteMachine="TESTBOX-PC" + RemoteCommand="" + HttpUrl="" + PDBPath="" + SQLDebugging="" + Environment="" + EnvironmentMerge="true" + DebuggerFlavor="" + MPIRunCommand="" + MPIRunArguments="" + MPIRunWorkingDirectory="" + ApplicationCommand="" + ApplicationArguments="" + ShimCommand="" + MPIAcceptMode="" + MPIAcceptFilter="" + /> + </Configuration> + </Configurations> +</VisualStudioUserFile> Added: Plugins/EmailAuth/EmailAuth/openssl/LICENSE =================================================================== --- Plugins/EmailAuth/EmailAuth/openssl/LICENSE (rev 0) +++ Plugins/EmailAuth/EmailAuth/openssl/LICENSE 2011-06-05 06:57:22 UTC (rev 135) @@ -0,0 +1,127 @@ + + LICENSE ISSUES + ============== + + The OpenSSL toolkit stays under a dual license, i.e. both the conditions of + the OpenSSL License and the original SSLeay license apply to the toolkit. + See below for the actual license texts. Actually both licenses are BSD-style + Open Source licenses. In case of any license issues related to OpenSSL + please contact ope...@op.... + + OpenSSL License + --------------- + +/* ==================================================================== + * Copyright (c) 1998-2011 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * ope...@op.... + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``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 OpenSSL PROJECT 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 product includes cryptographic software written by Eric Young + * (ea...@cr...). This product includes software written by Tim + * Hudson (tj...@cr...). + * + */ + + Original SSLeay License + ----------------------- + +/* Copyright (C) 1995-1998 Eric Young (ea...@cr...) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (ea...@cr...). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tj...@cr...). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (ea...@cr...)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tj...@cr...)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS 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 AUTHOR OR 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + Property changes on: Plugins/EmailAuth/EmailAuth/openssl/include ___________________________________________________________________ Added: bugtraq:number + true Property changes on: Plugins/EmailAuth/EmailAuth/openssl/include/openssl ___________________________________________________________________ Added: bugtraq:number + true Added: Plugins/EmailAuth/EmailAuth/openssl/include/openssl/aes.h =================================================================== --- Plugins/EmailAuth/EmailAuth/openssl/include/openssl/aes.h (rev 0) +++ Plugins/EmailAuth/EmailAuth/openssl/include/openssl/aes.h 2011-06-05 06:57:22 UTC (rev 135) @@ -0,0 +1,142 @@ +/* crypto/aes/aes.h -*- mode:C; c-file-style: "eay" -*- */ +/* ==================================================================== + * Copyright (c) 1998-2002 The OpenSSL Project. 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. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * ope...@op.... + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``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 OpenSSL PROJECT 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. + * ==================================================================== + * + */ + +#ifndef HEADER_AES_H +#define HEADER_AES_H + +#include <openssl/opensslconf.h> + +#ifdef OPENSSL_NO_AES +#error AES is disabled. +#endif + +#include <stddef.h> + +#define AES_ENCRYPT 1 +#define AES_DECRYPT 0 + +/* Because array size can't be a const in C, the following two are macros. + Both sizes are in bytes. */ +#define AES_MAXNR 14 +#define AES_BLOCK_SIZE 16 + +#ifdef __cplusplus +extern "C" { +#endif + +/* This should be a hidden type, but EVP requires that the size be known */ +struct aes_key_st { +#ifdef AES_LONG + unsigned long rd_key[4 *(AES_MAXNR + 1)]; +#else + unsigned int rd_key[4 *(AES_MAXNR + 1)]; +#endif + int rounds; +}; +typedef struct aes_key_st AES_KEY; + +const char *AES_options(void); + +int AES_set_encrypt_key(const unsigned char *userKey, const int bits, + AES_KEY *key); +int AES_set_decrypt_key(const unsigned char *userKey, const int bits, + AES_KEY *key); + +void AES_encrypt(const unsigned char *in, unsigned char *out, + const AES_KEY *key); +void AES_decrypt(const unsigned char *in, unsigned char *out, + const AES_KEY *key); + +void AES_ecb_encrypt(const unsigned char *in, unsigned char *out, + const AES_KEY *key, const int enc); +void AES_cbc_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, const int enc); +void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, int *num, const int enc); +void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, int *num, const int enc); +void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, int *num, const int enc); +void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, int *num); +void AES_ctr128_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char ivec[AES_BLOCK_SIZE], + unsigned char ecount_buf[AES_BLOCK_SIZE], + unsigned int *num); +/* NB: the IV is _two_ blocks long */ +void AES_ige_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + unsigned char *ivec, const int enc); +/* NB: the IV is _four_ blocks long */ +void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out, + size_t length, const AES_KEY *key, + const AES_KEY *key2, const unsigned char *ivec, + const int enc); + +int AES_wrap_key(AES_KEY *key, const unsigned char *iv, + unsigned char *out, + const unsigned char *in, unsigned int inlen); +int AES_unwrap_key(AES_KEY *key, const unsigned char *iv, + unsigned char *out, + const unsigned char *in, unsigned int inlen); + + +#ifdef __cplusplus +} +#endif + +#endif /* !HEADER_AES_H */ Added: Plugins/EmailAuth/EmailAuth/openssl/include/openssl/asn1.h =================================================================== --- Plugins/EmailAuth/EmailAuth/openssl/include/openssl/asn1.h (rev 0) +++ Plugins/EmailAuth/EmailAuth/openssl/include/openssl/asn1.h 2011-06-05 06:57:22 UTC (rev 135) @@ -0,0 +1,1402 @@ +/* crypto/asn1/asn1.h */ +/* Copyright (C) 1995-1998 Eric Young (ea...@cr...) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (ea...@cr...). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tj...@cr...). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * 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 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (ea...@cr...)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tj...@cr...)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS 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 AUTHOR OR 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. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + +#ifndef HEADER_ASN1_H +#define HEADER_ASN1_H + +#include <time.h> +#include <openssl/e_os2.h> +#ifndef OPENSSL_NO_BIO +#include <openssl/bio.h> +#endif +#include <openssl/stack.h> +#include <openssl/safestack.h> + +#include <openssl/symhacks.h> + +#include <openssl/ossl_typ.h> +#ifndef OPENSSL_NO_DEPRECATED +#include <openssl/bn.h> +#endif + +#ifdef OPENSSL_BUILD_SHLIBCRYPTO +# undef OPENSSL_EXTERN +# define OPENSSL_EXTERN OPENSSL_EXPORT +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#define V_ASN1_UNIVERSAL 0x00 +#define V_ASN1_APPLICATION 0x40 +#define V_ASN1_CONTEXT_SPECIFIC 0x80 +#define V_ASN1_PRIVATE 0xc0 + +#define V_ASN1_CONSTRUCTED 0x20 +#define V_ASN1_PRIMITIVE_TAG 0x1f +#define V_ASN1_PRIMATIVE_TAG 0x1f + +#define V_ASN1_APP_CHOOSE -2 /* let the recipient choose */ +#define V_ASN1_OTHER -3 /* used in ASN1_TYPE */ +#define V_ASN1_ANY -4 /* used in ASN1 template code */ + +#define V_ASN1_NEG 0x100 /* negative flag */ + +#define V_ASN1_UNDEF -1 +#define V_ASN1_EOC 0 +#define V_ASN1_BOOLEAN 1 /**/ +#define V_ASN1_INTEGER 2 +#define V_ASN1_NEG_INTEGER (2 | V_ASN1_NEG) +#define V_ASN1_BIT_STRING 3 +#define V_ASN1_OCTET_STRING 4 +#define V_ASN1_NULL 5 +#define V_ASN1_OBJECT 6 +#define V_ASN1_OBJECT_DESCRIPTOR 7 +#define V_ASN1_EXTERNAL 8 +#define V_ASN1_REAL 9 +#define V_ASN1_ENUMERATED 10 +#define V_ASN1_NEG_ENUMERATED (10 | V_ASN1_NEG) +#define V_ASN1_UTF8STRING 12 +#define V_ASN1_SEQUENCE 16 +#define V_ASN1_SET 17 +#define V_ASN1_NUMERICSTRING 18 /**/ +#define V_ASN1_PRINTABLESTRING 19 +#define V_ASN1_T61STRING 20 +#define V_ASN1_TELETEXSTRING 20 /* alias */ +#define V_ASN1_VIDEOTEXSTRING 21 /**/ +#define V_ASN1_IA5STRING 22 +#define V_ASN1_UTCTIME 23 +#define V_ASN1_GENERALIZEDTIME 24 /**/ +#define V_ASN1_GRAPHICSTRING 25 /**/ +#define V_ASN1_ISO64STRING 26 /**/ +#define V_ASN1_VISIBLESTRING 26 /* alias */ +#define V_ASN1_GENERALSTRING 27 /**/ +#define V_ASN1_UNIVERSALSTRING 28 /**/ +#define V_ASN1_BMPSTRING 30 + +/* For use with d2i_ASN1_type_bytes() */ +#define B_ASN1_NUMERICSTRING 0x0001 +#define B_ASN1_PRINTABLESTRING 0x0002 +#define B_ASN1_T61STRING 0x0004 +#define B_ASN1_TELETEXSTRING 0x0004 +#define B_ASN1_VIDEOTEXSTRING 0x0008 +#define B_ASN1_IA5STRING 0x0010 +#define B_ASN1_GRAPHICSTRING 0x0020 +#define B_ASN1_ISO64STRING 0x0040 +#define B_ASN1_VISIBLESTRING 0x0040 +#define B_ASN1_GENERALSTRING 0x0080 +#define B_ASN1_UNIVERSALSTRING 0x0100 +#define B_ASN1_OCTET_STRING 0x0200 +#define B_ASN1_BIT_STRING 0x0400 +#define B_ASN1_BMPSTRING 0x0800 +#define B_ASN1_UNKNOWN 0x1000 +#define B_ASN1_UTF8STRING 0x2000 +#define B_ASN1_UTCTIME 0x4000 +#define B_ASN1_GENERALIZEDTIME 0x8000 +#define B_ASN1_SEQUENCE 0x10000 + +/* For use with ASN1_mbstring_copy() */ +#define MBSTRING_FLAG 0x1000 +#define MBSTRING_UTF8 (MBSTRING_FLAG) +#define MBSTRING_ASC (MBSTRING_FLAG|1) +#define MBSTRING_BMP (MBSTRING_FLAG|2) +#define MBSTRING_UNIV (MBSTRING_FLAG|4) + +#define SMIME_OLDMIME 0x400 +#define SMIME_CRLFEOL 0x800 +#define SMIME_STREAM 0x1000 + +struct X509_algor_st; +DECLARE_STACK_OF(X509_ALGOR) + +#define DECLARE_ASN1_SET_OF(type) /* filled in by mkstack.pl */ +#define IMPLEMENT_ASN1_SET_OF(type) /* nothing, no longer needed */ + +/* We MUST make sure that, except for constness, asn1_ctx_st and + asn1_const_ctx are exactly the same. Fortunately, as soon as + the old ASN1 parsing macros are gone, we can throw this away + as well... */ +typedef struct asn1_ctx_st + { + unsigned char *p;/* work char pointer */ + int eos; /* end of sequence read for indefinite encoding */ + int error; /* error code to use when returning an error */ + int inf; /* constructed if 0x20, indefinite is 0x21 */ + int tag; /* tag from last 'get object' */ + int xclass; /* class from last 'get object' */ + long slen; /* length of last 'get object' */ + unsigned char *max; /* largest value of p allowed */ + unsigned char *q;/* temporary variable */ + unsigned char **pp;/* variable */ + int line; /* used in error processing */ + } ASN1_CTX; + +typedef struct asn1_const_ctx_st + { + const unsigned char *p;/* work char pointer */ + int eos; /* end of sequence read for indefinite encoding */ + int error; /* error code to use when returning an error */ + int inf; /* constructed if 0x20, indefinite is 0x21 */ + int tag; /* tag from last 'get object' */ + int xclass; /* class from last 'get object' */ + long slen; /* length of last 'get object' */ + const unsigned char *max; /* largest value of p allowed */ + const unsigned char *q;/* temporary variable */ + const unsigned char **pp;/* variable */ + int line; /* used in error processing */ + } ASN1_const_CTX; + +/* These are used internally in the ASN1_OBJECT to keep track of + * whether the names and data need to be free()ed */ +#define ASN1_OBJECT_FLAG_DYNAMIC 0x01 /* internal use */ +#define ASN1_OBJECT_FLAG_CRITICAL 0x02 /* critical x509v3 object id */ +#define ASN1_OBJECT_FLAG_DYNAMIC_STRINGS 0x04 /* internal use */ +#define ASN1_OBJECT_FLAG_DYNAMIC_DATA 0x08 /* internal use */ +typedef struct asn1_object_st + { + const char *sn,*ln; + int nid; + int length; + const unsigned char *data; /* data remains const after init */ + int flags; /* Should we free this one */ + } ASN1_OBJECT; + +#define ASN1_STRING_FLAG_BITS_LEFT 0x08 /* Set if 0x07 has bits left value */ +/* This indicates that the ASN1_STRING is not a real value but just a place + * holder for the location where indefinite length constructed data should + * be inserted in the memory buffer + */ +#define ASN1_STRING_FLAG_NDEF 0x010 + +/* This flag is used by the CMS code to indicate that a string is not + * complete and is a place holder for content when it had all been + * accessed. The flag will be reset when content has been written to it. + */ + +#define ASN1_STRING_FLAG_CONT 0x020 +/* This flag is used by ASN1 code to indicate an ASN1_STRING is an MSTRING + * type. + */ +#define ASN1_STRING_FLAG_MSTRING 0x040 +/* This is the base type that holds just about everything :-) */ +typedef struct asn1_string_st + { + int length; + int type; + unsigned char *data; + /* The value of the following field depends on the type being + * held. It is mostly being used for BIT_STRING so if the + * input data has a non-zero 'unused bits' value, it will be + * handled correctly */ + long flags; + } ASN1_STRING; + +/* ASN1_ENCODING structure: this is used to save the received + * encoding of an ASN1 type. This is useful to get round + * problems with invalid encodings which can break signatures. + */ + +typedef struct ASN1_ENCODING_st + { + unsigned char *enc; /* DER encoding */ + long len; /* Length of encoding */ + int modified; /* set to 1 if 'enc' is invalid */ + } ASN1_ENCODING; + +/* Used with ASN1 LONG type: if a long is set to this it is omitted */ +#define ASN1_LONG_UNDEF 0x7fffffffL + +#define STABLE_FLAGS_MALLOC 0x01 +#define STABLE_NO_MASK 0x02 +#define DIRSTRING_TYPE \ + (B_ASN1_PRINTABLESTRING|B_ASN1_T61STRING|B_ASN1_BMPSTRING|B_ASN1_UTF8STRING) +#define PKCS9STRING_TYPE (DIRSTRING_TYPE|B_ASN1_IA5STRING) + +typedef struct asn1_string_table_st { + int nid; + long minsize; + long maxsize; + unsigned long mask; + unsigned long flags; +} ASN1_STRING_TABLE; + +DECLARE_STACK_OF(ASN1_STRING_TABLE) + +/* size limits: this stuff is taken straight from RFC2459 */ + +#define ub_name 32768 +#define ub_common_name 64 +#define ub_locality_name 128 +#define ub_state_name 128 +#define ub_organization_name 64 +#define ub_organization_unit_name 64 +#define ub_title 64 +#define ub_email_address 128 + +/* Declarations for template structures: for full definitions + * see asn1t.h + */ +typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE; +typedef struct ASN1_ITEM_st ASN1_ITEM; +typedef struct ASN1_TLC_st ASN1_TLC; +/* This is just an opaque pointer */ +typedef struct ASN1_VALUE_st ASN1_VALUE; + +/* Declare ASN1 functions: the implement macro in in asn1t.h */ + +#define DECLARE_ASN1_FUNCTIONS(type) DECLARE_ASN1_FUNCTIONS_name(type, type) + +#define DECLARE_ASN1_ALLOC_FUNCTIONS(type) \ + DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, type) + +#define DECLARE_ASN1_FUNCTIONS_name(type, name) \ + DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ + DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name) + +#define DECLARE_ASN1_FUNCTIONS_fname(type, itname, name) \ + DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ + DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) + +#define DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) \ + type *d2i_##name(type **a, const unsigned char **in, long len); \ + int i2d_##name(type *a, unsigned char **out); \ + DECLARE_ASN1_ITEM(itname) + +#define DECLARE_ASN1_ENCODE_FUNCTIONS_const(type, name) \ + type *d2i_##name(type **a, const unsigned char **in, long len); \ + int i2d_##name(const type *a, unsigned char **out); \ + DECLARE_ASN1_ITEM(name) + +#define DECLARE_ASN1_NDEF_FUNCTION(name) \ + int i2d_##name##_NDEF(name *a, unsigned char **out); + +#define DECLARE_ASN1_FUNCTIONS_const(name) \ + DECLARE_ASN1_ALLOC_FUNCTIONS(name) \ + DECLARE_ASN1_ENCODE_FUNCTIONS_const(name, name) + +#define DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ + type *name##_new(void); \ + void name##_free(type *a); + +#define DECLARE_ASN1_PRINT_FUNCTION(stname) \ + DECLARE_ASN1_PRINT_FUNCTION_fname(stname, stname) + +#define DECLARE_ASN1_PRINT_FUNCTION_fname(stname, fname) \ + int fname##_print_ctx(BIO *out, stname *x, int indent, \ + const ASN1_PCTX *pctx); + +#define D2I_OF(type) type *(*)(type **,const unsigned char **,long) +#define I2D_OF(type) int (*)(type *,unsigned char **) +#define I2D_OF_const(type) int (*)(const type *,unsigned char **) + +#define CHECKED_D2I_OF(type, d2i) \ + ((d2i_of_void*) (1 ? d2i : ((D2I_OF(type))0))) +#define CHECKED_I2D_OF(type, i2d) \ + ((i2d_of_void*) (1 ? i2d : ((I2D_OF(type))0))) +#define CHECKED_NEW_OF(type, xnew) \ + ((void *(*)(void)) (1 ? xnew : ((type *(*)(void))0))) +#define CHECKED_PTR_OF(type, p) \ + ((void*) (1 ? p : (type*)0)) +#define CHECKED_PPTR_OF(type, p) \ + ((void**) (1 ? p : (type**)0)) + +#define TYPEDEF_D2I_OF(type) typedef type *d2i_of_##type(type **,const unsigned char **,long) +#define TYPEDEF_I2D_OF(type) typedef int i2d_of_##type(type *,unsigned char **) +#define TYPEDEF_D2I2D_OF(type) TYPEDEF_D2I_OF(type); TYPEDEF_I2D_OF(type) + +TYPEDEF_D2I2D_OF(void); + +/* The following macros and typedefs allow an ASN1_ITEM + * to be embedded in a structure and referenced. Since + * the ASN1_ITEM pointers need to be globally accessible + * (possibly from shared libraries) they may exist in + * different forms. On platforms that support it the + * ASN1_ITEM structure itself will be globally exported. + * Other platforms will export a function that returns + * an ASN1_ITEM pointer. + * + * To handle both cases transparently the macros below + * should be used instead of hard coding an ASN1_ITEM + * pointer in a structure. + * + * The structure will look like this: + * + * typedef struct SOMETHING_st { + * ... + * ASN1_ITEM_EXP *iptr; + * ... + * } SOMETHING; + * + * It would be initialised as e.g.: + * + * SOMETHING somevar = {...,ASN1_ITEM_ref(X509),...}; + * + * and the actual pointer extracted with: + * + * const ASN1_ITEM *it = ASN1_ITEM_ptr(somevar.iptr); + * + * Finally an ASN1_ITEM pointer can be extracted from an + * appropriate reference with: ASN1_ITEM_rptr(X509). This + * would be used when a function takes an ASN1_ITEM * argument. + * + */ + +#ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION + +/* ASN1_ITEM pointer exported type */ +typedef const ASN1_ITEM ASN1_ITEM_EXP; + +/* Macro to obtain ASN1_ITEM pointer from exported type */ +#define ASN1_ITEM_ptr(iptr) (iptr) + +/* Macro to include ASN1_ITEM pointer from base type */ +#define ASN1_ITEM_ref(iptr) (&(iptr##_it)) + +#define ASN1_ITEM_rptr(ref) (&(ref##_it)) + +#define DECLARE_ASN1_ITEM(name) \ + OPENSSL_EXTERN const ASN1_ITEM name##_it; + +#else + +/* Platforms that can't easily handle shared global variables are declared + * as functions returning ASN1_ITEM pointers. + */ + +/* ASN1_ITEM pointer exported type */ +typedef const ASN1_ITEM * ASN1_ITEM_EXP(void); + +/* Macro to obtain ASN1_ITEM pointer from exported type */ +#define ASN1_ITEM_ptr(iptr) (iptr()) + +/* Macro to include ASN1_ITEM pointer from base type */ +#define ASN1_ITEM_ref(iptr) (iptr##_it) + +#define ASN1_ITEM_rptr(ref) (ref##_it()) + +#define DECLARE_ASN1_ITEM(name) \ + const ASN1_ITEM * name##_it(void); + +#endif + +/* Parameters used by ASN1_STRING_print_ex() */ + +/* These determine which characters to escape: + * RFC2253 special characters, control characters and + * MSB set characters + */ + +#define ASN1_STRFLGS_ESC_2253 1 +#define ASN1_STRFLGS_ESC_CTRL 2 +#define ASN1_STRFLGS_ESC_MSB 4 + + +/* This flag determines how we do escaping: normally + * RC2253 backslash only, set this to use backslash and + * quote. + */ + +#define ASN1_STRFLGS_ESC_QUOTE 8 + + +/* These three flags are internal use only. */ + +/* Character is a valid PrintableString character */ +#define CHARTYPE_PRINTABLESTRING 0x10 +/* Character needs escaping if it is the first character */ +#define CHARTYPE_FIRST_ESC_2253 0x20 +/* Character needs escaping if it is the last character */ +#define CHARTYPE_LAST_ESC_2253 0x40 + +/* NB the internal flags are safely reused below by flags + * handled at the top level. + */ + +/* If this is set we convert all character strings + * to UTF8 first + */ + +#define ASN1_STRFLGS_UTF8_CONVERT 0x10 + +/* If this is set we don't attempt to interpret content: + * just assume all strings are 1 byte per character. This + * will produce some pretty odd looking output! + */ + +#define ASN1_STRFLGS_IGNORE_TYPE 0x20 + +/* If this is set we include the string type in the output */ +#define ASN1_STRFLGS_SHOW_TYPE 0x40 + +/* This determines which strings to display and which to + * 'dump' (hex dump of content octets or DER encoding). We can + * only dump non character strings or everything. If we + * don't dump 'unknown' they are interpreted as character + * strings with 1 octet per character and are subject to + * the usual escaping options. + */ + +#define ASN1_STRFLGS_DUMP_ALL 0x80 +#define ASN1_STRFLGS_DUMP_UNKNOWN 0x100 + +/* These determine what 'd... [truncated message content] |
From: <pgi...@li...> - 2011-06-04 19:46:49
|
Revision: 134 http://pgina.svn.sourceforge.net/pgina/?rev=134&view=rev Author: aksooo Date: 2011-06-04 19:46:40 +0000 (Sat, 04 Jun 2011) Log Message: ----------- - Fixed bad SQL INSERT command - Updated MySQL libs, (x64 libs now included) - Created new VS2008 solution (prior solution was corrupt) TODO: - Current config dialog code is broken (nothing displays when clicked). Replaced with a message referring users to the registry. Modified Paths: -------------- Plugins/MySQLLogger/MySQLLogger.ncb Added Paths: ----------- Plugins/MySQLLogger/MySQL Libs/ Plugins/MySQLLogger/MySQL Libs/include/ Plugins/MySQLLogger/MySQL Libs/include/decimal.h Plugins/MySQLLogger/MySQL Libs/include/errmsg.h Plugins/MySQLLogger/MySQL Libs/include/keycache.h Plugins/MySQLLogger/MySQL Libs/include/m_ctype.h Plugins/MySQLLogger/MySQL Libs/include/m_string.h Plugins/MySQLLogger/MySQL Libs/include/my_alloc.h Plugins/MySQLLogger/MySQL Libs/include/my_attribute.h Plugins/MySQLLogger/MySQL Libs/include/my_compiler.h Plugins/MySQLLogger/MySQL Libs/include/my_config.h Plugins/MySQLLogger/MySQL Libs/include/my_dbug.h Plugins/MySQLLogger/MySQL Libs/include/my_dir.h Plugins/MySQLLogger/MySQL Libs/include/my_getopt.h Plugins/MySQLLogger/MySQL Libs/include/my_global.h Plugins/MySQLLogger/MySQL Libs/include/my_list.h Plugins/MySQLLogger/MySQL Libs/include/my_net.h Plugins/MySQLLogger/MySQL Libs/include/my_pthread.h Plugins/MySQLLogger/MySQL Libs/include/my_sys.h Plugins/MySQLLogger/MySQL Libs/include/my_xml.h Plugins/MySQLLogger/MySQL Libs/include/mysql/ Plugins/MySQLLogger/MySQL Libs/include/mysql/client_plugin.h Plugins/MySQLLogger/MySQL Libs/include/mysql/innodb_priv.h Plugins/MySQLLogger/MySQL Libs/include/mysql/plugin.h Plugins/MySQLLogger/MySQL Libs/include/mysql/plugin_audit.h Plugins/MySQLLogger/MySQL Libs/include/mysql/plugin_auth.h Plugins/MySQLLogger/MySQL Libs/include/mysql/plugin_auth_common.h Plugins/MySQLLogger/MySQL Libs/include/mysql/plugin_ftparser.h Plugins/MySQLLogger/MySQL Libs/include/mysql/psi/ Plugins/MySQLLogger/MySQL Libs/include/mysql/psi/mysql_file.h Plugins/MySQLLogger/MySQL Libs/include/mysql/psi/mysql_thread.h Plugins/MySQLLogger/MySQL Libs/include/mysql/psi/psi.h Plugins/MySQLLogger/MySQL Libs/include/mysql/psi/psi_abi_v1.h Plugins/MySQLLogger/MySQL Libs/include/mysql/psi/psi_abi_v2.h Plugins/MySQLLogger/MySQL Libs/include/mysql/service_my_snprintf.h Plugins/MySQLLogger/MySQL Libs/include/mysql/service_thd_alloc.h Plugins/MySQLLogger/MySQL Libs/include/mysql/service_thd_wait.h Plugins/MySQLLogger/MySQL Libs/include/mysql/service_thread_scheduler.h Plugins/MySQLLogger/MySQL Libs/include/mysql/services.h Plugins/MySQLLogger/MySQL Libs/include/mysql.h Plugins/MySQLLogger/MySQL Libs/include/mysql_com.h Plugins/MySQLLogger/MySQL Libs/include/mysql_embed.h Plugins/MySQLLogger/MySQL Libs/include/mysql_time.h Plugins/MySQLLogger/MySQL Libs/include/mysql_version.h Plugins/MySQLLogger/MySQL Libs/include/mysqld_ername.h Plugins/MySQLLogger/MySQL Libs/include/mysqld_error.h Plugins/MySQLLogger/MySQL Libs/include/plugin.h Plugins/MySQLLogger/MySQL Libs/include/plugin_audit.h Plugins/MySQLLogger/MySQL Libs/include/plugin_ftparser.h Plugins/MySQLLogger/MySQL Libs/include/sql_common.h Plugins/MySQLLogger/MySQL Libs/include/sql_state.h Plugins/MySQLLogger/MySQL Libs/include/sslopt-case.h Plugins/MySQLLogger/MySQL Libs/include/sslopt-longopts.h Plugins/MySQLLogger/MySQL Libs/include/sslopt-vars.h Plugins/MySQLLogger/MySQL Libs/include/typelib.h Plugins/MySQLLogger/MySQL Libs/lib/ Plugins/MySQLLogger/MySQL Libs/lib/libmysql.dll Plugins/MySQLLogger/MySQL Libs/lib/libmysql.lib Plugins/MySQLLogger/MySQL Libs/lib/mysqlclient.lib Plugins/MySQLLogger/MySQL Libs/lib.x64/ Plugins/MySQLLogger/MySQL Libs/lib.x64/libmysql.lib Plugins/MySQLLogger/MySQL Libs/lib.x64/mysqlclient.lib Plugins/MySQLLogger/MySQL Libs/libmysql.dll Plugins/MySQLLogger/MySQLLogger/ Plugins/MySQLLogger/MySQLLogger/MySQLLogger.cpp Plugins/MySQLLogger/MySQLLogger/MySQLLogger.h Plugins/MySQLLogger/MySQLLogger/MySQLLogger.vcproj Plugins/MySQLLogger/MySQLLogger/MySQLLogger.vcproj.testbox-PC.testbox.user Plugins/MySQLLogger/MySQLLogger/ReadMe.txt Plugins/MySQLLogger/MySQLLogger/Resource.h Plugins/MySQLLogger/MySQLLogger/stdafx.cpp Plugins/MySQLLogger/MySQLLogger/stdafx.h Plugins/MySQLLogger/MySQLLogger/targetver.h Plugins/MySQLLogger/MySQLLogger.sln Plugins/MySQLLogger/MySQLLogger.suo Plugins/MySQLLogger/docs/INSTALL.txt Plugins/MySQLLogger/docs/MySQL License.txt Plugins/MySQLLogger/docs/dbinfo.sql Plugins/MySQLLogger/docs/mysqllogger.reg Plugins/MySQLLogger/docs/pGina License.txt Removed Paths: ------------- Plugins/MySQLLogger/MySQLLogger.aps Plugins/MySQLLogger/MySQLLogger.cpp Plugins/MySQLLogger/MySQLLogger.dsp Plugins/MySQLLogger/MySQLLogger.dsw Plugins/MySQLLogger/MySQLLogger.h Plugins/MySQLLogger/MySQLLogger.opt Plugins/MySQLLogger/MySQLLogger.plg Plugins/MySQLLogger/MySQLLogger.rc Plugins/MySQLLogger/MySQLLogger.vpj Plugins/MySQLLogger/MySQLLogger.vpw Plugins/MySQLLogger/MySQLLogger.vpwhist Plugins/MySQLLogger/MySQLLogger.vtg Plugins/MySQLLogger/StdAfx.cpp Plugins/MySQLLogger/StdAfx.h Plugins/MySQLLogger/docs/dbinfo.txt Plugins/MySQLLogger/gpl.txt Plugins/MySQLLogger/installer/ Plugins/MySQLLogger/mysql-libs/ Plugins/MySQLLogger/resource.h Property changes on: Plugins/MySQLLogger/MySQL Libs ___________________________________________________________________ Added: bugtraq:number + true Property changes on: Plugins/MySQLLogger/MySQL Libs/include ___________________________________________________________________ Added: bugtraq:number + true Added: Plugins/MySQLLogger/MySQL Libs/include/decimal.h =================================================================== --- Plugins/MySQLLogger/MySQL Libs/include/decimal.h (rev 0) +++ Plugins/MySQLLogger/MySQL Libs/include/decimal.h 2011-06-04 19:46:40 UTC (rev 134) @@ -0,0 +1,107 @@ +/* Copyright (C) 2000 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#ifndef _decimal_h +#define _decimal_h + +typedef enum +{TRUNCATE=0, HALF_EVEN, HALF_UP, CEILING, FLOOR} + decimal_round_mode; +typedef int32 decimal_digit_t; + +typedef struct st_decimal_t { + int intg, frac, len; + my_bool sign; + decimal_digit_t *buf; +} decimal_t; + +int internal_str2dec(const char *from, decimal_t *to, char **end, + my_bool fixed); +int decimal2string(const decimal_t *from, char *to, int *to_len, + int fixed_precision, int fixed_decimals, + char filler); +int decimal2ulonglong(decimal_t *from, ulonglong *to); +int ulonglong2decimal(ulonglong from, decimal_t *to); +int decimal2longlong(decimal_t *from, longlong *to); +int longlong2decimal(longlong from, decimal_t *to); +int decimal2double(const decimal_t *from, double *to); +int double2decimal(double from, decimal_t *to); +int decimal_actual_fraction(decimal_t *from); +int decimal2bin(decimal_t *from, uchar *to, int precision, int scale); +int bin2decimal(const uchar *from, decimal_t *to, int precision, int scale); + +int decimal_size(int precision, int scale); +int decimal_bin_size(int precision, int scale); +int decimal_result_size(decimal_t *from1, decimal_t *from2, char op, + int param); + +int decimal_intg(const decimal_t *from); +int decimal_add(const decimal_t *from1, const decimal_t *from2, decimal_t *to); +int decimal_sub(const decimal_t *from1, const decimal_t *from2, decimal_t *to); +int decimal_cmp(const decimal_t *from1, const decimal_t *from2); +int decimal_mul(const decimal_t *from1, const decimal_t *from2, decimal_t *to); +int decimal_div(const decimal_t *from1, const decimal_t *from2, decimal_t *to, + int scale_incr); +int decimal_mod(const decimal_t *from1, const decimal_t *from2, decimal_t *to); +int decimal_round(const decimal_t *from, decimal_t *to, int new_scale, + decimal_round_mode mode); +int decimal_is_zero(const decimal_t *from); +void max_decimal(int precision, int frac, decimal_t *to); + +#define string2decimal(A,B,C) internal_str2dec((A), (B), (C), 0) +#define string2decimal_fixed(A,B,C) internal_str2dec((A), (B), (C), 1) + +/* set a decimal_t to zero */ + +#define decimal_make_zero(dec) do { \ + (dec)->buf[0]=0; \ + (dec)->intg=1; \ + (dec)->frac=0; \ + (dec)->sign=0; \ + } while(0) + +/* + returns the length of the buffer to hold string representation + of the decimal (including decimal dot, possible sign and \0) +*/ + +#define decimal_string_size(dec) (((dec)->intg ? (dec)->intg : 1) + \ + (dec)->frac + ((dec)->frac > 0) + 2) + +/* negate a decimal */ +#define decimal_neg(dec) do { (dec)->sign^=1; } while(0) + +/* + conventions: + + decimal_smth() == 0 -- everything's ok + decimal_smth() <= 1 -- result is usable, but precision loss is possible + decimal_smth() <= 2 -- result can be unusable, most significant digits + could've been lost + decimal_smth() > 2 -- no result was generated +*/ + +#define E_DEC_OK 0 +#define E_DEC_TRUNCATED 1 +#define E_DEC_OVERFLOW 2 +#define E_DEC_DIV_ZERO 4 +#define E_DEC_BAD_NUM 8 +#define E_DEC_OOM 16 + +#define E_DEC_ERROR 31 +#define E_DEC_FATAL_ERROR 30 + +#endif + Added: Plugins/MySQLLogger/MySQL Libs/include/errmsg.h =================================================================== --- Plugins/MySQLLogger/MySQL Libs/include/errmsg.h (rev 0) +++ Plugins/MySQLLogger/MySQL Libs/include/errmsg.h 2011-06-04 19:46:40 UTC (rev 134) @@ -0,0 +1,108 @@ +#ifndef ERRMSG_INCLUDED +#define ERRMSG_INCLUDED + +/* Copyright (C) 2000 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +/* Error messages for MySQL clients */ +/* (Error messages for the daemon are in sql/share/errmsg.txt) */ + +#ifdef __cplusplus +extern "C" { +#endif +void init_client_errs(void); +void finish_client_errs(void); +extern const char *client_errors[]; /* Error messages */ +#ifdef __cplusplus +} +#endif + +#define CR_MIN_ERROR 2000 /* For easier client code */ +#define CR_MAX_ERROR 2999 +#if !defined(ER) +#define ER(X) client_errors[(X)-CR_MIN_ERROR] +#endif +#define CLIENT_ERRMAP 2 /* Errormap used by my_error() */ + +/* Do not add error numbers before CR_ERROR_FIRST. */ +/* If necessary to add lower numbers, change CR_ERROR_FIRST accordingly. */ +#define CR_ERROR_FIRST 2000 /*Copy first error nr.*/ +#define CR_UNKNOWN_ERROR 2000 +#define CR_SOCKET_CREATE_ERROR 2001 +#define CR_CONNECTION_ERROR 2002 +#define CR_CONN_HOST_ERROR 2003 +#define CR_IPSOCK_ERROR 2004 +#define CR_UNKNOWN_HOST 2005 +#define CR_SERVER_GONE_ERROR 2006 +#define CR_VERSION_ERROR 2007 +#define CR_OUT_OF_MEMORY 2008 +#define CR_WRONG_HOST_INFO 2009 +#define CR_LOCALHOST_CONNECTION 2010 +#define CR_TCP_CONNECTION 2011 +#define CR_SERVER_HANDSHAKE_ERR 2012 +#define CR_SERVER_LOST 2013 +#define CR_COMMANDS_OUT_OF_SYNC 2014 +#define CR_NAMEDPIPE_CONNECTION 2015 +#define CR_NAMEDPIPEWAIT_ERROR 2016 +#define CR_NAMEDPIPEOPEN_ERROR 2017 +#define CR_NAMEDPIPESETSTATE_ERROR 2018 +#define CR_CANT_READ_CHARSET 2019 +#define CR_NET_PACKET_TOO_LARGE 2020 +#define CR_EMBEDDED_CONNECTION 2021 +#define CR_PROBE_SLAVE_STATUS 2022 +#define CR_PROBE_SLAVE_HOSTS 2023 +#define CR_PROBE_SLAVE_CONNECT 2024 +#define CR_PROBE_MASTER_CONNECT 2025 +#define CR_SSL_CONNECTION_ERROR 2026 +#define CR_MALFORMED_PACKET 2027 +#define CR_WRONG_LICENSE 2028 + +/* new 4.1 error codes */ +#define CR_NULL_POINTER 2029 +#define CR_NO_PREPARE_STMT 2030 +#define CR_PARAMS_NOT_BOUND 2031 +#define CR_DATA_TRUNCATED 2032 +#define CR_NO_PARAMETERS_EXISTS 2033 +#define CR_INVALID_PARAMETER_NO 2034 +#define CR_INVALID_BUFFER_USE 2035 +#define CR_UNSUPPORTED_PARAM_TYPE 2036 + +#define CR_SHARED_MEMORY_CONNECTION 2037 +#define CR_SHARED_MEMORY_CONNECT_REQUEST_ERROR 2038 +#define CR_SHARED_MEMORY_CONNECT_ANSWER_ERROR 2039 +#define CR_SHARED_MEMORY_CONNECT_FILE_MAP_ERROR 2040 +#define CR_SHARED_MEMORY_CONNECT_MAP_ERROR 2041 +#define CR_SHARED_MEMORY_FILE_MAP_ERROR 2042 +#define CR_SHARED_MEMORY_MAP_ERROR 2043 +#define CR_SHARED_MEMORY_EVENT_ERROR 2044 +#define CR_SHARED_MEMORY_CONNECT_ABANDONED_ERROR 2045 +#define CR_SHARED_MEMORY_CONNECT_SET_ERROR 2046 +#define CR_CONN_UNKNOW_PROTOCOL 2047 +#define CR_INVALID_CONN_HANDLE 2048 +#define CR_SECURE_AUTH 2049 +#define CR_FETCH_CANCELED 2050 +#define CR_NO_DATA 2051 +#define CR_NO_STMT_METADATA 2052 +#define CR_NO_RESULT_SET 2053 +#define CR_NOT_IMPLEMENTED 2054 +#define CR_SERVER_LOST_EXTENDED 2055 +#define CR_STMT_CLOSED 2056 +#define CR_NEW_STMT_METADATA 2057 +#define CR_ALREADY_CONNECTED 2058 +#define CR_AUTH_PLUGIN_CANNOT_LOAD 2059 +#define CR_ERROR_LAST /*Copy last error nr:*/ 2059 +/* Add error numbers before CR_ERROR_LAST and change it accordingly. */ + +#endif /* ERRMSG_INCLUDED */ Added: Plugins/MySQLLogger/MySQL Libs/include/keycache.h =================================================================== --- Plugins/MySQLLogger/MySQL Libs/include/keycache.h (rev 0) +++ Plugins/MySQLLogger/MySQL Libs/include/keycache.h 2011-06-04 19:46:40 UTC (rev 134) @@ -0,0 +1,146 @@ +/* Copyright (C) 2003 MySQL AB, 2009 Sun Microsystems, Inc + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +/* Key cache variable structures */ + +#ifndef _keycache_h +#define _keycache_h + +#include "my_sys.h" /* flush_type */ + +C_MODE_START + +/* declare structures that is used by st_key_cache */ + +struct st_block_link; +typedef struct st_block_link BLOCK_LINK; +struct st_keycache_page; +typedef struct st_keycache_page KEYCACHE_PAGE; +struct st_hash_link; +typedef struct st_hash_link HASH_LINK; + +/* info about requests in a waiting queue */ +typedef struct st_keycache_wqueue +{ + struct st_my_thread_var *last_thread; /* circular list of waiting threads */ +} KEYCACHE_WQUEUE; + +#define CHANGED_BLOCKS_HASH 128 /* must be power of 2 */ + +/* + The key cache structure + It also contains read-only statistics parameters. +*/ + +typedef struct st_key_cache +{ + my_bool key_cache_inited; + my_bool in_resize; /* true during resize operation */ + my_bool resize_in_flush; /* true during flush of resize operation */ + my_bool can_be_used; /* usage of cache for read/write is allowed */ + size_t key_cache_mem_size; /* specified size of the cache memory */ + uint key_cache_block_size; /* size of the page buffer of a cache block */ + ulong min_warm_blocks; /* min number of warm blocks; */ + ulong age_threshold; /* age threshold for hot blocks */ + ulonglong keycache_time; /* total number of block link operations */ + uint hash_entries; /* max number of entries in the hash table */ + int hash_links; /* max number of hash links */ + int hash_links_used; /* number of hash links currently used */ + int disk_blocks; /* max number of blocks in the cache */ + ulong blocks_used; /* maximum number of concurrently used blocks */ + ulong blocks_unused; /* number of currently unused blocks */ + ulong blocks_changed; /* number of currently dirty blocks */ + ulong warm_blocks; /* number of blocks in warm sub-chain */ + ulong cnt_for_resize_op; /* counter to block resize operation */ + long blocks_available; /* number of blocks available in the LRU chain */ + HASH_LINK **hash_root; /* arr. of entries into hash table buckets */ + HASH_LINK *hash_link_root; /* memory for hash table links */ + HASH_LINK *free_hash_list; /* list of free hash links */ + BLOCK_LINK *free_block_list; /* list of free blocks */ + BLOCK_LINK *block_root; /* memory for block links */ + uchar *block_mem; /* memory for block buffers */ + BLOCK_LINK *used_last; /* ptr to the last block of the LRU chain */ + BLOCK_LINK *used_ins; /* ptr to the insertion block in LRU chain */ + mysql_mutex_t cache_lock; /* to lock access to the cache structure */ + KEYCACHE_WQUEUE resize_queue; /* threads waiting during resize operation */ + /* + Waiting for a zero resize count. Using a queue for symmetry though + only one thread can wait here. + */ + KEYCACHE_WQUEUE waiting_for_resize_cnt; + KEYCACHE_WQUEUE waiting_for_hash_link; /* waiting for a free hash link */ + KEYCACHE_WQUEUE waiting_for_block; /* requests waiting for a free block */ + BLOCK_LINK *changed_blocks[CHANGED_BLOCKS_HASH]; /* hash for dirty file bl.*/ + BLOCK_LINK *file_blocks[CHANGED_BLOCKS_HASH]; /* hash for other file bl.*/ + + /* + The following variables are and variables used to hold parameters for + initializing the key cache. + */ + + ulonglong param_buff_size; /* size the memory allocated for the cache */ + ulonglong param_block_size; /* size of the blocks in the key cache */ + ulonglong param_division_limit; /* min. percentage of warm blocks */ + ulonglong param_age_threshold; /* determines when hot block is downgraded */ + + /* Statistics variables. These are reset in reset_key_cache_counters(). */ + ulong global_blocks_changed; /* number of currently dirty blocks */ + ulonglong global_cache_w_requests;/* number of write requests (write hits) */ + ulonglong global_cache_write; /* number of writes from cache to files */ + ulonglong global_cache_r_requests;/* number of read requests (read hits) */ + ulonglong global_cache_read; /* number of reads from files to cache */ + + int blocks; /* max number of blocks in the cache */ + my_bool in_init; /* Set to 1 in MySQL during init/resize */ +} KEY_CACHE; + +/* The default key cache */ +extern KEY_CACHE dflt_key_cache_var, *dflt_key_cache; + +extern int init_key_cache(KEY_CACHE *keycache, uint key_cache_block_size, + size_t use_mem, uint division_limit, + uint age_threshold); +extern int resize_key_cache(KEY_CACHE *keycache, uint key_cache_block_size, + size_t use_mem, uint division_limit, + uint age_threshold); +extern void change_key_cache_param(KEY_CACHE *keycache, uint division_limit, + uint age_threshold); +extern uchar *key_cache_read(KEY_CACHE *keycache, + File file, my_off_t filepos, int level, + uchar *buff, uint length, + uint block_length,int return_buffer); +extern int key_cache_insert(KEY_CACHE *keycache, + File file, my_off_t filepos, int level, + uchar *buff, uint length); +extern int key_cache_write(KEY_CACHE *keycache, + File file, my_off_t filepos, int level, + uchar *buff, uint length, + uint block_length,int force_write); +extern int flush_key_blocks(KEY_CACHE *keycache, + int file, enum flush_type type); +extern void end_key_cache(KEY_CACHE *keycache, my_bool cleanup); + +/* Functions to handle multiple key caches */ +extern my_bool multi_keycache_init(void); +extern void multi_keycache_free(void); +extern KEY_CACHE *multi_key_cache_search(uchar *key, uint length); +extern my_bool multi_key_cache_set(const uchar *key, uint length, + KEY_CACHE *key_cache); +extern void multi_key_cache_change(KEY_CACHE *old_data, + KEY_CACHE *new_data); +extern int reset_key_cache_counters(const char *name, + KEY_CACHE *key_cache); +C_MODE_END +#endif /* _keycache_h */ Added: Plugins/MySQLLogger/MySQL Libs/include/m_ctype.h =================================================================== --- Plugins/MySQLLogger/MySQL Libs/include/m_ctype.h (rev 0) +++ Plugins/MySQLLogger/MySQL Libs/include/m_ctype.h 2011-06-04 19:46:40 UTC (rev 134) @@ -0,0 +1,660 @@ +/* Copyright (C) 2000 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +/* + A better inplementation of the UNIX ctype(3) library. +*/ + +#ifndef _m_ctype_h +#define _m_ctype_h + +#include <my_attribute.h> +#include "my_global.h" /* uint16, uchar */ + +#ifdef __cplusplus +extern "C" { +#endif + +#define MY_CS_NAME_SIZE 32 +#define MY_CS_CTYPE_TABLE_SIZE 257 +#define MY_CS_TO_LOWER_TABLE_SIZE 256 +#define MY_CS_TO_UPPER_TABLE_SIZE 256 +#define MY_CS_SORT_ORDER_TABLE_SIZE 256 +#define MY_CS_TO_UNI_TABLE_SIZE 256 + +#define CHARSET_DIR "charsets/" + +#define my_wc_t ulong + +#define MY_CS_REPLACEMENT_CHARACTER 0xFFFD + +/* + On i386 we store Unicode->CS conversion tables for + some character sets using Big-endian order, + to copy two bytes at onces. + This gives some performance improvement. +*/ +#ifdef __i386__ +#define MB2(x) (((x) >> 8) + (((x) & 0xFF) << 8)) +#define MY_PUT_MB2(s, code) { *((uint16*)(s))= (code); } +#else +#define MB2(x) (x) +#define MY_PUT_MB2(s, code) { (s)[0]= code >> 8; (s)[1]= code & 0xFF; } +#endif + + + +typedef struct unicase_info_st +{ + uint32 toupper; + uint32 tolower; + uint32 sort; +} MY_UNICASE_INFO; + + +extern MY_UNICASE_INFO *my_unicase_default[256]; +extern MY_UNICASE_INFO *my_unicase_turkish[256]; + +typedef struct uni_ctype_st +{ + uchar pctype; + uchar *ctype; +} MY_UNI_CTYPE; + +extern MY_UNI_CTYPE my_uni_ctype[256]; + +/* wm_wc and wc_mb return codes */ +#define MY_CS_ILSEQ 0 /* Wrong by sequence: wb_wc */ +#define MY_CS_ILUNI 0 /* Cannot encode Unicode to charset: wc_mb */ +#define MY_CS_TOOSMALL -101 /* Need at least one byte: wc_mb and mb_wc */ +#define MY_CS_TOOSMALL2 -102 /* Need at least two bytes: wc_mb and mb_wc */ +#define MY_CS_TOOSMALL3 -103 /* Need at least three bytes: wc_mb and mb_wc */ +/* These following three are currently not really used */ +#define MY_CS_TOOSMALL4 -104 /* Need at least 4 bytes: wc_mb and mb_wc */ +#define MY_CS_TOOSMALL5 -105 /* Need at least 5 bytes: wc_mb and mb_wc */ +#define MY_CS_TOOSMALL6 -106 /* Need at least 6 bytes: wc_mb and mb_wc */ +/* A helper macros for "need at least n bytes" */ +#define MY_CS_TOOSMALLN(n) (-100-(n)) + +#define MY_SEQ_INTTAIL 1 +#define MY_SEQ_SPACES 2 + + /* My charsets_list flags */ +#define MY_CS_COMPILED 1 /* compiled-in sets */ +#define MY_CS_CONFIG 2 /* sets that have a *.conf file */ +#define MY_CS_INDEX 4 /* sets listed in the Index file */ +#define MY_CS_LOADED 8 /* sets that are currently loaded */ +#define MY_CS_BINSORT 16 /* if binary sort order */ +#define MY_CS_PRIMARY 32 /* if primary collation */ +#define MY_CS_STRNXFRM 64 /* if strnxfrm is used for sort */ +#define MY_CS_UNICODE 128 /* is a charset is BMP Unicode */ +#define MY_CS_READY 256 /* if a charset is initialized */ +#define MY_CS_AVAILABLE 512 /* If either compiled-in or loaded*/ +#define MY_CS_CSSORT 1024 /* if case sensitive sort order */ +#define MY_CS_HIDDEN 2048 /* don't display in SHOW */ +#define MY_CS_PUREASCII 4096 /* if a charset is pure ascii */ +#define MY_CS_NONASCII 8192 /* if not ASCII-compatible */ +#define MY_CS_UNICODE_SUPPLEMENT 16384 /* Non-BMP Unicode characters */ +#define MY_CHARSET_UNDEFINED 0 + +/* Character repertoire flags */ +#define MY_REPERTOIRE_ASCII 1 /* Pure ASCII U+0000..U+007F */ +#define MY_REPERTOIRE_EXTENDED 2 /* Extended characters: U+0080..U+FFFF */ +#define MY_REPERTOIRE_UNICODE30 3 /* ASCII | EXTENDED: U+0000..U+FFFF */ + +typedef struct my_uni_idx_st +{ + uint16 from; + uint16 to; + uchar *tab; +} MY_UNI_IDX; + +typedef struct +{ + uint beg; + uint end; + uint mb_len; +} my_match_t; + +enum my_lex_states +{ + MY_LEX_START, MY_LEX_CHAR, MY_LEX_IDENT, + MY_LEX_IDENT_SEP, MY_LEX_IDENT_START, + MY_LEX_REAL, MY_LEX_HEX_NUMBER, MY_LEX_BIN_NUMBER, + MY_LEX_CMP_OP, MY_LEX_LONG_CMP_OP, MY_LEX_STRING, MY_LEX_COMMENT, MY_LEX_END, + MY_LEX_OPERATOR_OR_IDENT, MY_LEX_NUMBER_IDENT, MY_LEX_INT_OR_REAL, + MY_LEX_REAL_OR_POINT, MY_LEX_BOOL, MY_LEX_EOL, MY_LEX_ESCAPE, + MY_LEX_LONG_COMMENT, MY_LEX_END_LONG_COMMENT, MY_LEX_SEMICOLON, + MY_LEX_SET_VAR, MY_LEX_USER_END, MY_LEX_HOSTNAME, MY_LEX_SKIP, + MY_LEX_USER_VARIABLE_DELIMITER, MY_LEX_SYSTEM_VAR, + MY_LEX_IDENT_OR_KEYWORD, + MY_LEX_IDENT_OR_HEX, MY_LEX_IDENT_OR_BIN, MY_LEX_IDENT_OR_NCHAR, + MY_LEX_STRING_OR_DELIMITER +}; + +struct charset_info_st; + + +/* See strings/CHARSET_INFO.txt for information about this structure */ +typedef struct my_collation_handler_st +{ + my_bool (*init)(struct charset_info_st *, void *(*alloc)(size_t)); + /* Collation routines */ + int (*strnncoll)(struct charset_info_st *, + const uchar *, size_t, const uchar *, size_t, my_bool); + int (*strnncollsp)(struct charset_info_st *, + const uchar *, size_t, const uchar *, size_t, + my_bool diff_if_only_endspace_difference); + size_t (*strnxfrm)(struct charset_info_st *, + uchar *, size_t, const uchar *, size_t); + size_t (*strnxfrmlen)(struct charset_info_st *, size_t); + my_bool (*like_range)(struct charset_info_st *, + const char *s, size_t s_length, + pchar w_prefix, pchar w_one, pchar w_many, + size_t res_length, + char *min_str, char *max_str, + size_t *min_len, size_t *max_len); + int (*wildcmp)(struct charset_info_st *, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape,int w_one, int w_many); + + int (*strcasecmp)(struct charset_info_st *, const char *, const char *); + + uint (*instr)(struct charset_info_st *, + const char *b, size_t b_length, + const char *s, size_t s_length, + my_match_t *match, uint nmatch); + + /* Hash calculation */ + void (*hash_sort)(struct charset_info_st *cs, const uchar *key, size_t len, + ulong *nr1, ulong *nr2); + my_bool (*propagate)(struct charset_info_st *cs, const uchar *str, size_t len); +} MY_COLLATION_HANDLER; + +extern MY_COLLATION_HANDLER my_collation_mb_bin_handler; +extern MY_COLLATION_HANDLER my_collation_8bit_bin_handler; +extern MY_COLLATION_HANDLER my_collation_8bit_simple_ci_handler; +extern MY_COLLATION_HANDLER my_collation_ucs2_uca_handler; + +/* Some typedef to make it easy for C++ to make function pointers */ +typedef int (*my_charset_conv_mb_wc)(struct charset_info_st *, my_wc_t *, + const uchar *, const uchar *); +typedef int (*my_charset_conv_wc_mb)(struct charset_info_st *, my_wc_t, + uchar *, uchar *); +typedef size_t (*my_charset_conv_case)(struct charset_info_st *, + char *, size_t, char *, size_t); + + +/* See strings/CHARSET_INFO.txt about information on this structure */ +typedef struct my_charset_handler_st +{ + my_bool (*init)(struct charset_info_st *, void *(*alloc)(size_t)); + /* Multibyte routines */ + uint (*ismbchar)(struct charset_info_st *, const char *, const char *); + uint (*mbcharlen)(struct charset_info_st *, uint c); + size_t (*numchars)(struct charset_info_st *, const char *b, const char *e); + size_t (*charpos)(struct charset_info_st *, const char *b, const char *e, + size_t pos); + size_t (*well_formed_len)(struct charset_info_st *, + const char *b,const char *e, + size_t nchars, int *error); + size_t (*lengthsp)(struct charset_info_st *, const char *ptr, size_t length); + size_t (*numcells)(struct charset_info_st *, const char *b, const char *e); + + /* Unicode conversion */ + my_charset_conv_mb_wc mb_wc; + my_charset_conv_wc_mb wc_mb; + + /* CTYPE scanner */ + int (*ctype)(struct charset_info_st *cs, int *ctype, + const uchar *s, const uchar *e); + + /* Functions for case and sort conversion */ + size_t (*caseup_str)(struct charset_info_st *, char *); + size_t (*casedn_str)(struct charset_info_st *, char *); + + my_charset_conv_case caseup; + my_charset_conv_case casedn; + + /* Charset dependant snprintf() */ + size_t (*snprintf)(struct charset_info_st *, char *to, size_t n, + const char *fmt, + ...) ATTRIBUTE_FORMAT_FPTR(printf, 4, 5); + size_t (*long10_to_str)(struct charset_info_st *, char *to, size_t n, + int radix, long int val); + size_t (*longlong10_to_str)(struct charset_info_st *, char *to, size_t n, + int radix, longlong val); + + void (*fill)(struct charset_info_st *, char *to, size_t len, int fill); + + /* String-to-number conversion routines */ + long (*strntol)(struct charset_info_st *, const char *s, size_t l, + int base, char **e, int *err); + ulong (*strntoul)(struct charset_info_st *, const char *s, size_t l, + int base, char **e, int *err); + longlong (*strntoll)(struct charset_info_st *, const char *s, size_t l, + int base, char **e, int *err); + ulonglong (*strntoull)(struct charset_info_st *, const char *s, size_t l, + int base, char **e, int *err); + double (*strntod)(struct charset_info_st *, char *s, size_t l, char **e, + int *err); + longlong (*strtoll10)(struct charset_info_st *cs, + const char *nptr, char **endptr, int *error); + ulonglong (*strntoull10rnd)(struct charset_info_st *cs, + const char *str, size_t length, + int unsigned_fl, + char **endptr, int *error); + size_t (*scan)(struct charset_info_st *, const char *b, const char *e, + int sq); +} MY_CHARSET_HANDLER; + +extern MY_CHARSET_HANDLER my_charset_8bit_handler; +extern MY_CHARSET_HANDLER my_charset_ucs2_handler; + + +/* + We define this CHARSET_INFO_DEFINED here to prevent a repeat of the + typedef in hash.c, which will cause a compiler error. +*/ +#define CHARSET_INFO_DEFINED + +/* See strings/CHARSET_INFO.txt about information on this structure */ +typedef struct charset_info_st +{ + uint number; + uint primary_number; + uint binary_number; + uint state; + const char *csname; + const char *name; + const char *comment; + const char *tailoring; + uchar *ctype; + uchar *to_lower; + uchar *to_upper; + uchar *sort_order; + uint16 *contractions; + uint16 **sort_order_big; + uint16 *tab_to_uni; + MY_UNI_IDX *tab_from_uni; + MY_UNICASE_INFO **caseinfo; + uchar *state_map; + uchar *ident_map; + uint strxfrm_multiply; + uchar caseup_multiply; + uchar casedn_multiply; + uint mbminlen; + uint mbmaxlen; + uint16 min_sort_char; + uint16 max_sort_char; /* For LIKE optimization */ + uchar pad_char; + my_bool escape_with_backslash_is_dangerous; + + MY_CHARSET_HANDLER *cset; + MY_COLLATION_HANDLER *coll; + +} CHARSET_INFO; +#define ILLEGAL_CHARSET_INFO_NUMBER (~0U) + + +extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_bin; +extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_latin1; +extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_filename; + +extern CHARSET_INFO my_charset_big5_chinese_ci; +extern CHARSET_INFO my_charset_big5_bin; +extern CHARSET_INFO my_charset_cp932_japanese_ci; +extern CHARSET_INFO my_charset_cp932_bin; +extern CHARSET_INFO my_charset_cp1250_czech_ci; +extern CHARSET_INFO my_charset_eucjpms_japanese_ci; +extern CHARSET_INFO my_charset_eucjpms_bin; +extern CHARSET_INFO my_charset_euckr_korean_ci; +extern CHARSET_INFO my_charset_euckr_bin; +extern CHARSET_INFO my_charset_gb2312_chinese_ci; +extern CHARSET_INFO my_charset_gb2312_bin; +extern CHARSET_INFO my_charset_gbk_chinese_ci; +extern CHARSET_INFO my_charset_gbk_bin; +extern CHARSET_INFO my_charset_latin1_german2_ci; +extern CHARSET_INFO my_charset_latin1_bin; +extern CHARSET_INFO my_charset_latin2_czech_ci; +extern CHARSET_INFO my_charset_sjis_japanese_ci; +extern CHARSET_INFO my_charset_sjis_bin; +extern CHARSET_INFO my_charset_tis620_thai_ci; +extern CHARSET_INFO my_charset_tis620_bin; +extern CHARSET_INFO my_charset_ucs2_general_ci; +extern CHARSET_INFO my_charset_ucs2_bin; +extern CHARSET_INFO my_charset_ucs2_unicode_ci; +extern CHARSET_INFO my_charset_ujis_japanese_ci; +extern CHARSET_INFO my_charset_ujis_bin; +extern CHARSET_INFO my_charset_utf16_bin; +extern CHARSET_INFO my_charset_utf16_general_ci; +extern CHARSET_INFO my_charset_utf16_unicode_ci; +extern CHARSET_INFO my_charset_utf32_bin; +extern CHARSET_INFO my_charset_utf32_general_ci; +extern CHARSET_INFO my_charset_utf32_unicode_ci; + +extern CHARSET_INFO my_charset_utf8_general_ci; +extern CHARSET_INFO my_charset_utf8_unicode_ci; +extern CHARSET_INFO my_charset_utf8_bin; +extern CHARSET_INFO my_charset_utf8mb4_bin; +extern CHARSET_INFO my_charset_utf8mb4_general_ci; +extern CHARSET_INFO my_charset_utf8mb4_unicode_ci; +#define MY_UTF8MB3 "utf8" +#define MY_UTF8MB4 "utf8mb4" + + +/* Helper functions to handle contraction */ +static inline my_bool +my_cs_have_contractions(CHARSET_INFO *cs) +{ + return cs->contractions != NULL; +} + +static inline my_bool +my_cs_can_be_contraction_head(CHARSET_INFO *cs, my_wc_t wc) +{ + return ((const char *)cs->contractions)[0x40*0x40 + (wc & 0xFF)]; +} + +static inline my_bool +my_cs_can_be_contraction_tail(CHARSET_INFO *cs, my_wc_t wc) +{ + return ((const char *)cs->contractions)[0x40*0x40 + (wc & 0xFF)]; +} + +static inline uint16* +my_cs_contraction2_weight(CHARSET_INFO *cs, my_wc_t wc1, my_wc_t wc2) +{ + return &cs->contractions[(wc1 - 0x40) * 0x40 + wc2 - 0x40]; +} + + +/* declarations for simple charsets */ +extern size_t my_strnxfrm_simple(CHARSET_INFO *, uchar *, size_t, + const uchar *, size_t); +size_t my_strnxfrmlen_simple(CHARSET_INFO *, size_t); +extern int my_strnncoll_simple(CHARSET_INFO *, const uchar *, size_t, + const uchar *, size_t, my_bool); + +extern int my_strnncollsp_simple(CHARSET_INFO *, const uchar *, size_t, + const uchar *, size_t, + my_bool diff_if_only_endspace_difference); + +extern void my_hash_sort_simple(CHARSET_INFO *cs, + const uchar *key, size_t len, + ulong *nr1, ulong *nr2); + +extern size_t my_lengthsp_8bit(CHARSET_INFO *cs, const char *ptr, size_t length); + +extern uint my_instr_simple(struct charset_info_st *, + const char *b, size_t b_length, + const char *s, size_t s_length, + my_match_t *match, uint nmatch); + + +/* Functions for 8bit */ +extern size_t my_caseup_str_8bit(CHARSET_INFO *, char *); +extern size_t my_casedn_str_8bit(CHARSET_INFO *, char *); +extern size_t my_caseup_8bit(CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); +extern size_t my_casedn_8bit(CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); + +extern int my_strcasecmp_8bit(CHARSET_INFO * cs, const char *, const char *); + +int my_mb_wc_8bit(CHARSET_INFO *cs,my_wc_t *wc, const uchar *s,const uchar *e); +int my_wc_mb_8bit(CHARSET_INFO *cs,my_wc_t wc, uchar *s, uchar *e); + +int my_mb_ctype_8bit(CHARSET_INFO *,int *, const uchar *,const uchar *); +int my_mb_ctype_mb(CHARSET_INFO *,int *, const uchar *,const uchar *); + +size_t my_scan_8bit(CHARSET_INFO *cs, const char *b, const char *e, int sq); + +size_t my_snprintf_8bit(struct charset_info_st *, char *to, size_t n, + const char *fmt, ...) + ATTRIBUTE_FORMAT(printf, 4, 5); + +long my_strntol_8bit(CHARSET_INFO *, const char *s, size_t l, int base, + char **e, int *err); +ulong my_strntoul_8bit(CHARSET_INFO *, const char *s, size_t l, int base, + char **e, int *err); +longlong my_strntoll_8bit(CHARSET_INFO *, const char *s, size_t l, int base, + char **e, int *err); +ulonglong my_strntoull_8bit(CHARSET_INFO *, const char *s, size_t l, int base, + char **e, int *err); +double my_strntod_8bit(CHARSET_INFO *, char *s, size_t l,char **e, + int *err); +size_t my_long10_to_str_8bit(CHARSET_INFO *, char *to, size_t l, int radix, + long int val); +size_t my_longlong10_to_str_8bit(CHARSET_INFO *, char *to, size_t l, int radix, + longlong val); + +longlong my_strtoll10_8bit(CHARSET_INFO *cs, + const char *nptr, char **endptr, int *error); +longlong my_strtoll10_ucs2(CHARSET_INFO *cs, + const char *nptr, char **endptr, int *error); + +ulonglong my_strntoull10rnd_8bit(CHARSET_INFO *cs, + const char *str, size_t length, int + unsigned_fl, char **endptr, int *error); +ulonglong my_strntoull10rnd_ucs2(CHARSET_INFO *cs, + const char *str, size_t length, + int unsigned_fl, char **endptr, int *error); + +void my_fill_8bit(CHARSET_INFO *cs, char* to, size_t l, int fill); + +/* For 8-bit character set */ +my_bool my_like_range_simple(CHARSET_INFO *cs, + const char *ptr, size_t ptr_length, + pbool escape, pbool w_one, pbool w_many, + size_t res_length, + char *min_str, char *max_str, + size_t *min_length, size_t *max_length); + +/* For ASCII-based multi-byte character sets with mbminlen=1 */ +my_bool my_like_range_mb(CHARSET_INFO *cs, + const char *ptr, size_t ptr_length, + pbool escape, pbool w_one, pbool w_many, + size_t res_length, + char *min_str, char *max_str, + size_t *min_length, size_t *max_length); + +/* For other character sets, with arbitrary mbminlen and mbmaxlen numbers */ +my_bool my_like_range_generic(CHARSET_INFO *cs, + const char *ptr, size_t ptr_length, + pbool escape, pbool w_one, pbool w_many, + size_t res_length, + char *min_str, char *max_str, + size_t *min_length, size_t *max_length); + +int my_wildcmp_8bit(CHARSET_INFO *, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many); + +int my_wildcmp_bin(CHARSET_INFO *, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many); + +size_t my_numchars_8bit(CHARSET_INFO *, const char *b, const char *e); +size_t my_numcells_8bit(CHARSET_INFO *, const char *b, const char *e); +size_t my_charpos_8bit(CHARSET_INFO *, const char *b, const char *e, size_t pos); +size_t my_well_formed_len_8bit(CHARSET_INFO *, const char *b, const char *e, + size_t pos, int *error); +uint my_mbcharlen_8bit(CHARSET_INFO *, uint c); + + +/* Functions for multibyte charsets */ +extern size_t my_caseup_str_mb(CHARSET_INFO *, char *); +extern size_t my_casedn_str_mb(CHARSET_INFO *, char *); +extern size_t my_caseup_mb(CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); +extern size_t my_casedn_mb(CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); +extern size_t my_caseup_mb_varlen(CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); +extern size_t my_casedn_mb_varlen(CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); +extern size_t my_caseup_ujis(CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); +extern size_t my_casedn_ujis(CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); +extern int my_strcasecmp_mb(CHARSET_INFO * cs,const char *, const char *); + +int my_wildcmp_mb(CHARSET_INFO *, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many); +size_t my_numchars_mb(CHARSET_INFO *, const char *b, const char *e); +size_t my_numcells_mb(CHARSET_INFO *, const char *b, const char *e); +size_t my_charpos_mb(CHARSET_INFO *, const char *b, const char *e, size_t pos); +size_t my_well_formed_len_mb(CHARSET_INFO *, const char *b, const char *e, + size_t pos, int *error); +uint my_instr_mb(struct charset_info_st *, + const char *b, size_t b_length, + const char *s, size_t s_length, + my_match_t *match, uint nmatch); + +int my_strnncoll_mb_bin(CHARSET_INFO * cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool t_is_prefix); + +int my_strnncollsp_mb_bin(CHARSET_INFO *cs, + const uchar *a, size_t a_length, + const uchar *b, size_t b_length, + my_bool diff_if_only_endspace_difference); + +int my_wildcmp_mb_bin(CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many); + +int my_strcasecmp_mb_bin(CHARSET_INFO * cs __attribute__((unused)), + const char *s, const char *t); + +void my_hash_sort_mb_bin(CHARSET_INFO *cs __attribute__((unused)), + const uchar *key, size_t len,ulong *nr1, ulong *nr2); + +size_t my_strnxfrm_unicode(CHARSET_INFO *, + uchar *dst, size_t dstlen, + const uchar *src, size_t srclen); + +size_t my_strnxfrm_unicode_full_bin(CHARSET_INFO *, + uchar *dst, size_t dstlen, + const uchar *src, size_t srclen); +size_t my_strnxfrmlen_unicode_full_bin(CHARSET_INFO *, size_t); + +int my_wildcmp_unicode(CHARSET_INFO *cs, + const char *str, const char *str_end, + const char *wildstr, const char *wildend, + int escape, int w_one, int w_many, + MY_UNICASE_INFO **weights); + +extern my_bool my_parse_charset_xml(const char *bug, size_t len, + int (*add)(CHARSET_INFO *cs)); +extern char *my_strchr(CHARSET_INFO *cs, const char *str, const char *end, + pchar c); +extern size_t my_strcspn(CHARSET_INFO *cs, const char *str, const char *end, + const char *accept); + +my_bool my_propagate_simple(CHARSET_INFO *cs, const uchar *str, size_t len); +my_bool my_propagate_complex(CHARSET_INFO *cs, const uchar *str, size_t len); + + +uint my_string_repertoire(CHARSET_INFO *cs, const char *str, ulong len); +my_bool my_charset_is_ascii_based(CHARSET_INFO *cs); +my_bool my_charset_is_8bit_pure_ascii(CHARSET_INFO *cs); +uint my_charset_repertoire(CHARSET_INFO *cs); + +my_bool my_charset_is_ascii_compatible(CHARSET_INFO *cs); + +extern size_t my_vsnprintf_ex(CHARSET_INFO *cs, char *to, size_t n, + const char* fmt, va_list ap); + +#define _MY_U 01 /* Upper case */ +#define _MY_L 02 /* Lower case */ +#define _MY_NMR 04 /* Numeral (digit) */ +#define _MY_SPC 010 /* Spacing character */ +#define _MY_PNT 020 /* Punctuation */ +#define _MY_CTR 040 /* Control character */ +#define _MY_B 0100 /* Blank */ +#define _MY_X 0200 /* heXadecimal digit */ + + +#define my_isascii(c) (!((c) & ~0177)) +#define my_toascii(c) ((c) & 0177) +#define my_tocntrl(c) ((c) & 31) +#define my_toprint(c) ((c) | 64) +#define my_toupper(s,c) (char) ((s)->to_upper[(uchar) (c)]) +#define my_tolower(s,c) (char) ((s)->to_lower[(uchar) (c)]) +#define my_isalpha(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_U | _MY_L)) +#define my_isupper(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_U) +#define my_islower(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_L) +#define my_isdigit(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_NMR) +#define my_isxdigit(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_X) +#define my_isalnum(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_U | _MY_L | _MY_NMR)) +#define my_isspace(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_SPC) +#define my_ispunct(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_PNT) +#define my_isprint(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR | _MY_B)) +#define my_isgraph(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR)) +#define my_iscntrl(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_CTR) + +/* Some macros that should be cleaned up a little */ +#define my_isvar(s,c) (my_isalnum(s,c) || (c) == '_') +#define my_isvar_start(s,c) (my_isalpha(s,c) || (c) == '_') + +#define my_binary_compare(s) ((s)->state & MY_CS_BINSORT) +#define use_strnxfrm(s) ((s)->state & MY_CS_STRNXFRM) +#define my_strnxfrm(s, a, b, c, d) ((s)->coll->strnxfrm((s), (a), (b), (c), (d))) +#define my_strnncoll(s, a, b, c, d) ((s)->coll->strnncoll((s), (a), (b), (c), (d), 0)) +#define my_like_range(s, a, b, c, d, e, f, g, h, i, j) \ + ((s)->coll->like_range((s), (a), (b), (c), (d), (e), (f), (g), (h), (i), (j))) +#define my_wildcmp(cs,s,se,w,we,e,o,m) ((cs)->coll->wildcmp((cs),(s),(se),(w),(we),(e),(o),(m))) +#define my_strcasecmp(s, a, b) ((s)->coll->strcasecmp((s), (a), (b))) +#define my_charpos(cs, b, e, num) (cs)->cset->charpos((cs), (const char*) (b), (const char *)(e), (num)) + + +#define use_mb(s) ((s)->cset->ismbchar != NULL) +#define my_ismbchar(s, a, b) ((s)->cset->ismbchar((s), (a), (b))) +#ifdef USE_MB +#define my_mbcharlen(s, a) ((s)->cset->mbcharlen((s),(a))) +#else +#define my_mbcharlen(s, a) 1 +#endif + +#define my_caseup_str(s, a) ((s)->cset->caseup_str((s), (a))) +#define my_casedn_str(s, a) ((s)->cset->casedn_str((s), (a))) +#define my_strntol(s, a, b, c, d, e) ((s)->cset->strntol((s),(a),(b),(c),(d),(e))) +#define my_strntoul(s, a, b, c, d, e) ((s)->cset->strntoul((s),(a),(b),(c),(d),(e))) +#define my_strntoll(s, a, b, c, d, e) ((s)->cset->strntoll((s),(a),(b),(c),(d),(e))) +#define my_strntoull(s, a, b, c,d, e) ((s)->cset->strntoull((s),(a),(b),(c),(d),(e))) +#define my_strntod(s, a, b, c, d) ((s)->cset->strntod((s),(a),(b),(c),(d))) + + +/* XXX: still need to take care of this one */ +#ifdef MY_CHARSET_TIS620 +#error The TIS620 charset is broken at the moment. Tell tim to fix it. +#define USE_TIS620 +#include "t_ctype.h" +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _m_ctype_h */ Added: Plugins/MySQLLogger/MySQL Libs/include/m_string.h =================================================================== --- Plugins/MySQLLogger/MySQL Libs/include/m_string.h (rev 0) +++ Plugins/MySQLLogger/MySQL Libs/include/m_string.h 2011-06-04 19:46:40 UTC (rev 134) @@ -0,0 +1,295 @@ +/* Copyright (C) 2000 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +/* There may be prolems include all of theese. Try to test in + configure with ones are needed? */ + +/* This is needed for the definitions of strchr... on solaris */ + +#ifndef _m_string_h +#define _m_string_h + +#include "my_global.h" /* HAVE_* */ + +#ifndef __USE_GNU +#define __USE_GNU /* We want to use stpcpy */ +#endif +#if defined(HAVE_STRINGS_H) +#include <strings.h> +#endif +#if defined(HAVE_STRING_H) +#include <string.h> +#endif + +/* need by my_vsnprintf */ +#include <stdarg.h> + +/* This is needed for the definitions of bzero... on solaris */ +#if defined(HAVE_STRINGS_H) +#include <strings.h> +#endif + +/* This is needed for the definitions of memcpy... on solaris */ +#if defined(HAVE_MEMORY_H) && !defined(__cplusplus) +#include <memory.h> +#endif + +#if !defined(HAVE_MEMCPY) && !defined(HAVE_MEMMOVE) +# define memcpy(d, s, n) bcopy ((s), (d), (n)) +# define memset(A,C,B) bfill((A),(B),(C)) +# define memmove(d, s, n) bmove ((d), (s), (n)) +#elif defined(HAVE_MEMMOVE) +# define bmove(d, s, n) memmove((d), (s), (n)) +#endif + +/* Unixware 7 */ +#if !defined(HAVE_BFILL) +# define bfill(A,B,C) memset((A),(C),(B)) +#endif + +#if !defined(bzero) && !defined(HAVE_BZERO) +# define bzero(A,B) memset((A),0,(B)) +#endif + +#if defined(__cplusplus) +extern "C" { +#endif + +/* + my_str_malloc() and my_str_free() are assigned to implementations in + strings/alloc.c, but can be overridden in the calling program. + */ +extern void *(*my_str_malloc)(size_t); +extern void (*my_str_free)(void *); + +#if defined(HAVE_STPCPY) && MY_GNUC_PREREQ(3, 4) && !defined(__INTEL_COMPILER) +#define strmov(A,B) __builtin_stpcpy((A),(B)) +#elif defined(HAVE_STPCPY) +#define strmov(A,B) stpcpy((A),(B)) +#ifndef stpcpy +extern char *stpcpy(char *, const char *); /* For AIX with gcc 2.95.3 */ +#endif +#endif + +/* Declared in int2str() */ +extern char _dig_vec_upper[]; +extern char _dig_vec_lower[]; + +#ifndef strmov +#define strmov_overlapp(A,B) strmov(A,B) +#define strmake_overlapp(A,B,C) strmake(A,B,C) +#endif + + /* Prototypes for string functions */ + +extern void bmove_upp(uchar *dst,const uchar *src,size_t len); +extern void bchange(uchar *dst,size_t old_len,const uchar *src, + size_t new_len,size_t tot_len); +extern void strappend(char *s,size_t len,pchar fill); +extern char *strend(const char *s); +extern char *strcend(const char *, pchar); +extern char *strfill(char * s,size_t len,pchar fill); +extern char *strmake(char *dst,const char *src,size_t length); + +#ifndef strmov +extern char *strmov(char *dst,const char *src); +#else +extern char *strmov_overlapp(char *dst,const char *src); +#endif +extern char *strnmov(char *dst, const char *src, size_t n); +extern char *strcont(const char *src, const char *set); +extern char *strxmov(char *dst, const char *src, ...); +extern char *strxnmov(char *dst, size_t len, const char *src, ...); + +/* Prototypes of normal stringfunctions (with may ours) */ +#ifndef HAVE_STRNLEN +extern size_t strnlen(const char *s, size_t n); +#endif + +extern int is_prefix(const char *, const char *); + +/* Conversion routines */ +typedef enum { + MY_GCVT_ARG_FLOAT, + MY_GCVT_ARG_DOUBLE +} my_gcvt_arg_type; + +double my_strtod(const char *str, char **end, int *error); +double my_atof(const char *nptr); +size_t my_fcvt(double x, int precision, char *to, my_bool *error); +size_t my_gcvt(double x, my_gcvt_arg_type type, int width, char *to, + my_bool *error); + +#define NOT_FIXED_DEC 31 + +/* + The longest string my_fcvt can return is 311 + "precision" bytes. + Here we assume that we never cal my_fcvt() with precision >= NOT_FIXED_DEC + (+ 1 byte for the terminating '\0'). +*/ +#define FLOATING_POINT_BUFFER (311 + NOT_FIXED_DEC) + +/* + We want to use the 'e' format in some cases even if we have enough space + for the 'f' one just to mimic sprintf("%.15g") behavior for large integers, + and to improve it for numbers < 10^(-4). + That is, for |x| < 1 we require |x| >= 10^(-15), and for |x| > 1 we require + it to be integer and be <= 10^DBL_DIG for the 'f' format to be used. + We don't lose precision, but make cases like "1e200" or "0.00001" look nicer. +*/ +#define MAX_DECPT_FOR_F_FORMAT DBL_DIG + +/* + The maximum possible field width for my_gcvt() conversion. + (DBL_DIG + 2) significant digits + sign + "." + ("e-NNN" or + MAX_DECPT_FOR_F_FORMAT zeros for cases when |x|<1 and the 'f' format is used). +*/ +#define MY_GCVT_MAX_FIELD_WIDTH (DBL_DIG + 4 + max(5, MAX_DECPT_FOR_F_FORMAT)) \ + +extern char *llstr(longlong value,char *buff); +extern char *ullstr(longlong value,char *buff); +#ifndef HAVE_STRTOUL +extern long strtol(const char *str, char **ptr, int base); +extern ulong strtoul(const char *str, char **ptr, int base); +#endif + +extern char *int2str(long val, char *dst, int radix, int upcase); +extern char *int10_to_str(long val,char *dst,int radix); +extern char *str2int(const char *src,int radix,long lower,long upper, + long *val); +longlong my_strtoll10(const char *nptr, char **endptr, int *error); +#if SIZEOF_LONG == SIZEOF_LONG_LONG +#define ll2str(A,B,C,D) int2str((A),(B),(C),(D)) +#define longlong10_to_str(A,B,C) int10_to_str((A),(B),(C)) +#undef strtoll +#define strtoll(A,B,C) strtol((A),(B),(C)) +#define strtoull(A,B,C) strtoul((A),(B),(C)) +#ifndef HAVE_STRTOULL +#define HAVE_STRTOULL +#endif +#ifndef HAVE_STRTOLL +#define HAVE_STRTOLL +#endif +#else +#ifdef HAVE_LONG_LONG +extern char *ll2str(longlong val,char *dst,int radix, int upcase); +extern char *longlong10_to_str(longlong val,char *dst,int radix); +#if (!defined(HAVE_STRTOULL) || defined(NO_STRTOLL_PROTO)) +extern longlong strtoll(const char *str, char **ptr, int base); +extern ulonglong strtoull(const char *str, char **ptr, int base); +#endif +#endif +#endif +#define longlong2str(A,B,C) ll2str((A),(B),(C),1) + +#if defined(__cplusplus) +} +#endif + +/* + LEX_STRING -- a pair of a C-string and its length. + (it's part of the plugin API as a MYSQL_LEX_STRING) +*/ + +#include <mysql/plugin.h> +typedef struct st_mysql_lex_string LEX_STRING; + +#define STRING_WITH_LEN(X) (X), ((size_t) (sizeof(X) - 1)) +#define USTRING_WITH_LEN(X) ((uchar*) X), ((size_t) (sizeof(X) - 1)) +#define C_STRING_WITH_LEN(X) ((char *) (X)), ((size_t) (sizeof(X) - 1)) + +struct st_mysql_const_lex_string +{ + const char *str; + size_t length; +}; +typedef struct st_mysql_const_lex_string LEX_CSTRING; + +/* SPACE_INT is a word that contains only spaces */ +#if SIZEOF_INT == 4 +#define SPACE_INT 0x20202020 +#elif SIZEOF_INT == 8 +#define SPACE_INT 0x2020202020202020 +#else +#error define the appropriate constant for a word full of spaces +#endif + +/** + Skip trailing space. + + On most systems reading memory in larger chunks (ideally equal to the size of + the chinks that the machine physically reads from memory) causes fewer memory + access loops and hence increased performance. + This is why the 'int' type is used : it's closest to that (according to how + it's defined in C). + So when we determine the amount of whitespace at the end of a string we do + the following : + 1. We divide the string into 3 zones : + a) from the start of the string (__start) to the first multiple + of sizeof(int) (__start_words) + b) from the end of the string (__end) to the last multiple of sizeof(int) + (__end_words) + c) a zone that is aligned to sizeof(int) and can be safely accessed + through an int * + 2. We start comparing backwards from (c) char-by-char. If all we find is + space then we continue + 3. If there are elements in zone (b) we compare them as unsigned ints to a + int mask (SPACE_INT) consisting of all spaces + 4. Finally we compare the remaining part (a) of the string char by char. + This covers for the last non-space unsigned int from 3. (if any) + + This algorithm works well for relatively larger strings, but it will slow + the things down for smaller strings (because of the additional calculations + and checks compared to the naive method). Thus the barrier of length 20 + is added. + + @param ptr pointer to the input string + @param len the length of the string + @return the last non-space character +*/ + +static inline const uchar *skip_trailing_space(const uchar *ptr,size_t len) +{ + const uchar *end= ptr + len; + + if (len > 20) + { + const uchar *end_words= (const uchar *)(intptr) + (((ulonglong)(intptr)end) / SIZEOF_INT * SIZEOF_INT); + const uchar *start_words= (const uchar *)(intptr) + ((((ulonglong)(intptr)ptr) + SIZEOF_INT - 1) / SIZEOF_INT * SIZEOF_INT); + + DBUG_ASSERT(((ulonglong)(intptr)ptr) >= SIZEOF_INT); + if (end_words > ptr) + { + while (end > end_words && end[-1] == 0x20) + end--; + if (end[-1] == 0x20 && start_words < end_words) + while (end > start_words && ((unsigned *)end)[-1] == SPACE_INT) + end -= SIZEOF_INT; + } + } + while (end > ptr && ... [truncated message content] |
From: <pgi...@li...> - 2011-06-04 02:41:24
|
Revision: 133 http://pgina.svn.sourceforge.net/pgina/?rev=133&view=rev Author: yocomnw Date: 2011-06-04 02:41:15 +0000 (Sat, 04 Jun 2011) Log Message: ----------- Add a VS 2010 solution, alongside the existing 2008 solution: 2010: pGina-2.0-vs2010.sln 2008: pGina-2.0-vs2008.sln Modified Paths: -------------- pGina-2.x/src/ConfigApp/ConfigApp.csproj pGina-2.x/src/ConfigApp/ConfigApp.csproj.user pGina-2.x/src/ConfigApp/Properties/Resources.Designer.cs pGina-2.x/src/ConfigApp/Properties/Settings.Designer.cs pGina-2.x/src/ConfigApp/Properties/app.manifest pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver pGina-2.x/src/pGina-Provider/pGinaProvider.ver pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver pGina-2.x/src/pGinaSrvCS/pGinaSrvCS.csproj pGina-2.x/src/pGinaSrvCS/pGinaSrvCS.csproj.user Added Paths: ----------- pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.vcxproj pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.vcxproj.filters pGina-2.x/src/LibTester/LibTester.vcxproj pGina-2.x/src/LibTester/LibTester.vcxproj.filters pGina-2.x/src/pGina-2.0-vs2008.sln pGina-2.x/src/pGina-2.0-vs2010.sln pGina-2.x/src/pGina-Lib/pGina-Lib.vcxproj pGina-2.x/src/pGina-Lib/pGina-Lib.vcxproj.filters pGina-2.x/src/pGina-Provider/pGinaProvider.vcxproj pGina-2.x/src/pGina-Provider/pGinaProvider.vcxproj.filters pGina-2.x/src/pGinaCrypt/pGinaCrypt.vcxproj pGina-2.x/src/pGinaCrypt/pGinaCrypt.vcxproj.filters pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.vcxproj pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.vcxproj.filters pGina-2.x/src/pGinaSrv/pGinaSrv.vcxproj pGina-2.x/src/pGinaSrv/pGinaSrv.vcxproj.filters Removed Paths: ------------- pGina-2.x/src/pGina-2.0.sln Modified: pGina-2.x/src/ConfigApp/ConfigApp.csproj =================================================================== --- pGina-2.x/src/ConfigApp/ConfigApp.csproj 2011-06-03 21:18:37 UTC (rev 132) +++ pGina-2.x/src/ConfigApp/ConfigApp.csproj 2011-06-04 02:41:15 UTC (rev 133) @@ -1,4 +1,5 @@ -<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> @@ -13,10 +14,11 @@ <GenerateManifests>false</GenerateManifests> <FileUpgradeFlags> </FileUpgradeFlags> - <OldToolsVersion>2.0</OldToolsVersion> + <OldToolsVersion>3.5</OldToolsVersion> <UpgradeBackupLocation> </UpgradeBackupLocation> <IsWebBootstrapper>false</IsWebBootstrapper> + <TargetFrameworkVersion>v2.0</TargetFrameworkVersion> <PublishUrl>publish\</PublishUrl> <Install>true</Install> <InstallFrom>Disk</InstallFrom> @@ -149,6 +151,11 @@ </Compile> </ItemGroup> <ItemGroup> + <BootstrapperPackage Include="Microsoft.Net.Client.3.5"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName> + <Install>false</Install> + </BootstrapperPackage> <BootstrapperPackage Include="Microsoft.Net.Framework.2.0"> <Visible>False</Visible> <ProductName>.NET Framework 2.0 %28x86%29</ProductName> @@ -164,6 +171,11 @@ <ProductName>.NET Framework 3.5</ProductName> <Install>false</Install> </BootstrapperPackage> + <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1"> + <Visible>False</Visible> + <ProductName>.NET Framework 3.5 SP1</ProductName> + <Install>false</Install> + </BootstrapperPackage> </ItemGroup> <ItemGroup> <Content Include="locale_en.txt" /> Modified: pGina-2.x/src/ConfigApp/ConfigApp.csproj.user =================================================================== --- pGina-2.x/src/ConfigApp/ConfigApp.csproj.user 2011-06-03 21:18:37 UTC (rev 132) +++ pGina-2.x/src/ConfigApp/ConfigApp.csproj.user 2011-06-04 02:41:15 UTC (rev 133) @@ -1,4 +1,5 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +<?xml version="1.0" encoding="utf-8"?> +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <PublishUrlHistory> </PublishUrlHistory> @@ -13,5 +14,6 @@ <FallbackCulture>en-US</FallbackCulture> <VerifyUploadedFiles>false</VerifyUploadedFiles> <ProjectView>ProjectFiles</ProjectView> + <ErrorReportUrlHistory /> </PropertyGroup> </Project> \ No newline at end of file Modified: pGina-2.x/src/ConfigApp/Properties/Resources.Designer.cs =================================================================== --- pGina-2.x/src/ConfigApp/Properties/Resources.Designer.cs 2011-06-03 21:18:37 UTC (rev 132) +++ pGina-2.x/src/ConfigApp/Properties/Resources.Designer.cs 2011-06-04 02:41:15 UTC (rev 133) @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // <auto-generated> // This code was generated by a tool. -// Runtime Version:2.0.50727.4927 +// Runtime Version:4.0.30319.225 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -19,7 +19,7 @@ // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { Modified: pGina-2.x/src/ConfigApp/Properties/Settings.Designer.cs =================================================================== --- pGina-2.x/src/ConfigApp/Properties/Settings.Designer.cs 2011-06-03 21:18:37 UTC (rev 132) +++ pGina-2.x/src/ConfigApp/Properties/Settings.Designer.cs 2011-06-04 02:41:15 UTC (rev 133) @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // <auto-generated> // This code was generated by a tool. -// Runtime Version:2.0.50727.4927 +// Runtime Version:4.0.30319.225 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -12,7 +12,7 @@ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); Modified: pGina-2.x/src/ConfigApp/Properties/app.manifest =================================================================== --- pGina-2.x/src/ConfigApp/Properties/app.manifest 2011-06-03 21:18:37 UTC (rev 132) +++ pGina-2.x/src/ConfigApp/Properties/app.manifest 2011-06-04 02:41:15 UTC (rev 133) @@ -1,16 +1,10 @@ -<?xml version="1.0" encoding="utf-8"?> +<?xml version="1.0" encoding="utf-8"?> <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <applicationRequestMinimum> <defaultAssemblyRequest permissionSetReference="Custom" /> - <PermissionSet class="System.Security.PermissionSet" version="1" ID="Custom" SameSite="site"> - <IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" PathDiscovery="*AllFiles*" /> - <IPermission class="System.Security.Permissions.ReflectionPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" /> - <IPermission class="System.Security.Permissions.RegistryPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" /> - <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode, Execution, ControlEvidence" /> - <IPermission class="System.Security.Permissions.UIPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Window="AllWindows" Clipboard="OwnClipboard" /> - <IPermission class="System.Security.Permissions.KeyContainerPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" /> + <PermissionSet class="System.Security.PermissionSet" version="1" ID="Custom" SameSite="site" Unrestricted="true"> </PermissionSet> </applicationRequestMinimum> <requestedPrivileges> Added: pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.vcxproj =================================================================== --- pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.vcxproj (rev 0) +++ pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.vcxproj 2011-06-04 02:41:15 UTC (rev 133) @@ -0,0 +1,210 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{DB2FE47C-9DF8-4DA6-B486-252559E2217D}</ProjectGuid> + <RootNamespace>CredUIPrompt</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>C:\Program Files\Microsoft SDKs\Windows\v6.0\Include;C:\Program Files\Microsoft Platform SDK\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>CredUI.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>C:\Program Files\Microsoft SDKs\Windows\v6.0\Lib;C:\Program Files\Microsoft Platform SDK\Lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>C:\Program Files\Microsoft SDKs\Windows\v6.0\Include;C:\Program Files\Microsoft Platform SDK\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>CredUI.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>C:\Program Files\Microsoft SDKs\Windows\v6.0\Lib;C:\Program Files\Microsoft Platform SDK\Lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX64</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <PreBuildEvent> + <Command>$(SolutionDir)..\makeversion\makeversion.exe -inc -c $(ProjectDir)\$(ProjectName).ver</Command> + </PreBuildEvent> + <ClCompile> + <AdditionalIncludeDirectories>C:\Program Files\Microsoft SDKs\Windows\v6.0\Include;C:\Program Files\Microsoft Platform SDK\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>CredUI.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>C:\Program Files\Microsoft SDKs\Windows\v6.0\Lib;C:\Program Files\Microsoft Platform SDK\Lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <PreBuildEvent> + <Command>$(SolutionDir)..\makeversion\makeversion.exe -inc -c $(ProjectDir)\$(ProjectName).ver</Command> + </PreBuildEvent> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <AdditionalIncludeDirectories>C:\Program Files\Microsoft SDKs\Windows\v6.0\Include;C:\Program Files\Microsoft Platform SDK\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>CredUI.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>C:\Program Files\Microsoft SDKs\Windows\v6.0\Lib\x64;C:\Program Files\Microsoft SDKs\Windows\v6.0\Lib\x86;C:\Program Files\Microsoft Platform SDK\Lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <GenerateDebugInformation>false</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX64</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="CredUI-Prompt.cpp" /> + <ClCompile Include="stdafx.cpp"> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="resource.h" /> + <ClInclude Include="stdafx.h" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="CredUI-Prompt.rc" /> + </ItemGroup> + <ItemGroup> + <None Include="CredUI-Prompt.ver" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\pGina-Lib\pGina-Lib.vcxproj"> + <Project>{22d652d9-83ff-47de-bb0c-b36c42d4a826}</Project> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + </ProjectReference> + <ProjectReference Include="..\pGina-Provider\pGinaProvider.vcxproj"> + <Project>{7348aee0-1f4a-4436-b782-6abb694911ae}</Project> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file Added: pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.vcxproj.filters =================================================================== --- pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.vcxproj.filters (rev 0) +++ pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.vcxproj.filters 2011-06-04 02:41:15 UTC (rev 133) @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="CredUI-Prompt.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="stdafx.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="resource.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="stdafx.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="CredUI-Prompt.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + </ItemGroup> + <ItemGroup> + <None Include="CredUI-Prompt.ver" /> + </ItemGroup> +</Project> \ No newline at end of file Modified: pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver =================================================================== --- pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver 2011-06-03 21:18:37 UTC (rev 132) +++ pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver 2011-06-04 02:41:15 UTC (rev 133) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 119 -#define VERSION_BUILD_DATE "03/06/2011" -#define VERSION_BUILD_TIME "19:28:45UTC" +#define VERSION_BUILD 122 +#define VERSION_BUILD_DATE "04/06/2011" +#define VERSION_BUILD_TIME "01:48:36UTC" #define VERSION_FILENAME "CredUI-Prompt.exe" #define VERSION_FILE_DESCRIPTION "Credential Provider tester for pGina" Added: pGina-2.x/src/LibTester/LibTester.vcxproj =================================================================== --- pGina-2.x/src/LibTester/LibTester.vcxproj (rev 0) +++ pGina-2.x/src/LibTester/LibTester.vcxproj 2011-06-04 02:41:15 UTC (rev 133) @@ -0,0 +1,205 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{573E6936-9E2F-49BD-B331-47DB1D1D0E48}</ProjectGuid> + <RootNamespace>LibTester</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>..\pGina-Lib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>Netapi32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>..\pGina-Lib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>Netapi32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX64</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <PreBuildEvent> + <Command>$(SolutionDir)..\makeversion\makeversion.exe -inc -c $(ProjectDir)\$(ProjectName).ver</Command> + </PreBuildEvent> + <ClCompile> + <AdditionalIncludeDirectories>..\pGina-Lib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <BufferSecurityCheck>false</BufferSecurityCheck> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>Netapi32.lib;Userenv.lib;%(AdditionalDependencies)</AdditionalDependencies> + <ShowProgress>NotSet</ShowProgress> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX86</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <PreBuildEvent> + <Command>$(SolutionDir)..\makeversion\makeversion.exe -inc -c $(ProjectDir)\$(ProjectName).ver</Command> + </PreBuildEvent> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <AdditionalIncludeDirectories>..\pGina-Lib\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <BufferSecurityCheck>false</BufferSecurityCheck> + <PrecompiledHeader>Use</PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <AdditionalDependencies>Netapi32.lib;Userenv.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Console</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <TargetMachine>MachineX64</TargetMachine> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="LibTester.cpp" /> + <ClCompile Include="stdafx.cpp"> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="resource.h" /> + <ClInclude Include="stdafx.h" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="app.rc" /> + </ItemGroup> + <ItemGroup> + <None Include="LibTester.ver" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\pGina-Lib\pGina-Lib.vcxproj"> + <Project>{22d652d9-83ff-47de-bb0c-b36c42d4a826}</Project> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file Added: pGina-2.x/src/LibTester/LibTester.vcxproj.filters =================================================================== --- pGina-2.x/src/LibTester/LibTester.vcxproj.filters (rev 0) +++ pGina-2.x/src/LibTester/LibTester.vcxproj.filters 2011-06-04 02:41:15 UTC (rev 133) @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="LibTester.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="stdafx.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="resource.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="stdafx.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="app.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + </ItemGroup> + <ItemGroup> + <None Include="LibTester.ver" /> + </ItemGroup> +</Project> \ No newline at end of file Copied: pGina-2.x/src/pGina-2.0-vs2008.sln (from rev 132, pGina-2.x/src/pGina-2.0.sln) =================================================================== --- pGina-2.x/src/pGina-2.0-vs2008.sln (rev 0) +++ pGina-2.x/src/pGina-2.0-vs2008.sln 2011-06-04 02:41:15 UTC (rev 133) @@ -0,0 +1,148 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CredUI-Prompt", "CredUI-Prompt\CredUI-Prompt.vcproj", "{DB2FE47C-9DF8-4DA6-B486-252559E2217D}" + ProjectSection(ProjectDependencies) = postProject + {22D652D9-83FF-47DE-BB0C-B36C42D4A826} = {22D652D9-83FF-47DE-BB0C-B36C42D4A826} + {7348AEE0-1F4A-4436-B782-6ABB694911AE} = {7348AEE0-1F4A-4436-B782-6ABB694911AE} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pGinaProvider", "pGina-Provider\pGinaProvider.vcproj", "{7348AEE0-1F4A-4436-B782-6ABB694911AE}" + ProjectSection(ProjectDependencies) = postProject + {22D652D9-83FF-47DE-BB0C-B36C42D4A826} = {22D652D9-83FF-47DE-BB0C-B36C42D4A826} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pGina-Lib", "pGina-Lib\pGina-Lib.vcproj", "{22D652D9-83FF-47DE-BB0C-B36C42D4A826}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibTester", "LibTester\LibTester.vcproj", "{573E6936-9E2F-49BD-B331-47DB1D1D0E48}" + ProjectSection(ProjectDependencies) = postProject + {22D652D9-83FF-47DE-BB0C-B36C42D4A826} = {22D652D9-83FF-47DE-BB0C-B36C42D4A826} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConfigApp", "ConfigApp\ConfigApp.csproj", "{87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pGinaSrv", "pGinaSrv\pGinaSrv.vcproj", "{C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}" + ProjectSection(ProjectDependencies) = postProject + {22D652D9-83FF-47DE-BB0C-B36C42D4A826} = {22D652D9-83FF-47DE-BB0C-B36C42D4A826} + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44} = {A98FD2E8-E962-4DEF-A593-7C768F1E3E44} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pGinaLogoffUtility", "pGinaLogoffUtility\pGinaLogoffUtility.vcproj", "{65D71E30-E311-4208-927A-483717A028EE}" + ProjectSection(ProjectDependencies) = postProject + {22D652D9-83FF-47DE-BB0C-B36C42D4A826} = {22D652D9-83FF-47DE-BB0C-B36C42D4A826} + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{A30538E0-A4F9-40A4-B553-FF80BD6BEE03}" + ProjectSection(SolutionItems) = preProject + pGinaVersion.h = pGinaVersion.h + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pGinaSrvCS", "pGinaSrvCS\pGinaSrvCS.csproj", "{45B874F8-2E2B-43B8-8A6F-42CC8434436D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pGinaCrypt", "pGinaCrypt\pGinaCrypt.vcproj", "{A98FD2E8-E962-4DEF-A593-7C768F1E3E44}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared CS Classes", "Shared CS Classes", "{7404C851-10AC-4B42-AA5D-75A6FE181F60}" + ProjectSection(SolutionItems) = preProject + NativeMethods.cs = NativeMethods.cs + pGinaCrypt.cs = pGinaCrypt.cs + Reg.cs = Reg.cs + RegistryUtilities.cs = RegistryUtilities.cs + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Any CPU = Release|Any CPU + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Debug|Any CPU.ActiveCfg = Debug|x64 + {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Debug|Win32.ActiveCfg = Debug|Win32 + {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Debug|Win32.Build.0 = Debug|Win32 + {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Debug|x64.ActiveCfg = Debug|x64 + {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Debug|x64.Build.0 = Debug|x64 + {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Release|Any CPU.ActiveCfg = Release|x64 + {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Release|Win32.ActiveCfg = Release|Win32 + {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Release|Win32.Build.0 = Release|Win32 + {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Release|x64.ActiveCfg = Release|x64 + {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Release|x64.Build.0 = Release|x64 + {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Debug|Any CPU.ActiveCfg = Debug|x64 + {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Debug|Win32.ActiveCfg = Debug|Win32 + {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Debug|Win32.Build.0 = Debug|Win32 + {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Debug|x64.ActiveCfg = Debug|x64 + {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Debug|x64.Build.0 = Debug|x64 + {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Release|Any CPU.ActiveCfg = Release|x64 + {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Release|Win32.ActiveCfg = Release|Win32 + {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Release|Win32.Build.0 = Release|Win32 + {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Release|x64.ActiveCfg = Release|x64 + {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Release|x64.Build.0 = Release|x64 + {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Debug|Any CPU.ActiveCfg = Debug|x64 + {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Debug|Win32.ActiveCfg = Debug|Win32 + {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Debug|Win32.Build.0 = Debug|Win32 + {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Debug|x64.ActiveCfg = Debug|x64 + {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Debug|x64.Build.0 = Debug|x64 + {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Release|Any CPU.ActiveCfg = Release|x64 + {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Release|Win32.ActiveCfg = Release|Win32 + {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Release|Win32.Build.0 = Release|Win32 + {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Release|x64.ActiveCfg = Release|x64 + {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Release|x64.Build.0 = Release|x64 + {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Debug|Any CPU.ActiveCfg = Debug|x64 + {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Debug|Win32.ActiveCfg = Debug|Win32 + {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Debug|Win32.Build.0 = Debug|Win32 + {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Debug|x64.ActiveCfg = Debug|x64 + {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Debug|x64.Build.0 = Debug|x64 + {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Release|Any CPU.ActiveCfg = Release|x64 + {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Release|Win32.ActiveCfg = Release|Win32 + {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Release|x64.ActiveCfg = Release|x64 + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|Any CPU.Build.0 = Debug|Any CPU + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|Win32.ActiveCfg = Debug|Any CPU + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|Win32.Build.0 = Debug|Any CPU + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|x64.ActiveCfg = Debug|Any CPU + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|x64.Build.0 = Debug|Any CPU + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Release|Any CPU.ActiveCfg = Release|Any CPU + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Release|Any CPU.Build.0 = Release|Any CPU + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Release|Win32.ActiveCfg = Release|Any CPU + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Release|x64.ActiveCfg = Release|Any CPU + {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Debug|Win32.ActiveCfg = Debug|Win32 + {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Debug|Win32.Build.0 = Debug|Win32 + {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Debug|x64.ActiveCfg = Debug|x64 + {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Debug|x64.Build.0 = Debug|x64 + {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Release|Any CPU.ActiveCfg = Release|x64 + {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Release|Win32.ActiveCfg = Release|Win32 + {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Release|x64.ActiveCfg = Release|x64 + {65D71E30-E311-4208-927A-483717A028EE}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {65D71E30-E311-4208-927A-483717A028EE}.Debug|Win32.ActiveCfg = Debug|Win32 + {65D71E30-E311-4208-927A-483717A028EE}.Debug|Win32.Build.0 = Debug|Win32 + {65D71E30-E311-4208-927A-483717A028EE}.Debug|x64.ActiveCfg = Debug|Win32 + {65D71E30-E311-4208-927A-483717A028EE}.Release|Any CPU.ActiveCfg = Release|x64 + {65D71E30-E311-4208-927A-483717A028EE}.Release|Win32.ActiveCfg = Release|Win32 + {65D71E30-E311-4208-927A-483717A028EE}.Release|Win32.Build.0 = Release|Win32 + {65D71E30-E311-4208-927A-483717A028EE}.Release|x64.ActiveCfg = Release|x64 + {65D71E30-E311-4208-927A-483717A028EE}.Release|x64.Build.0 = Release|x64 + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Debug|Win32.ActiveCfg = Debug|Any CPU + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Debug|x64.ActiveCfg = Debug|Any CPU + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Release|Any CPU.Build.0 = Release|Any CPU + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Release|Win32.ActiveCfg = Release|Any CPU + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Release|x64.ActiveCfg = Release|Any CPU + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Debug|Win32.ActiveCfg = Debug|Win32 + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Debug|Win32.Build.0 = Debug|Win32 + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Debug|x64.ActiveCfg = Debug|Win32 + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Release|Any CPU.ActiveCfg = Release|x64 + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Release|Win32.ActiveCfg = Release|Win32 + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Release|Win32.Build.0 = Release|Win32 + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Release|x64.ActiveCfg = Release|x64 + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Added: pGina-2.x/src/pGina-2.0-vs2010.sln =================================================================== --- pGina-2.x/src/pGina-2.0-vs2010.sln (rev 0) +++ pGina-2.x/src/pGina-2.0-vs2010.sln 2011-06-04 02:41:15 UTC (rev 133) @@ -0,0 +1,131 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{A30538E0-A4F9-40A4-B553-FF80BD6BEE03}" + ProjectSection(SolutionItems) = preProject + pGinaVersion.h = pGinaVersion.h + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared CS Classes", "Shared CS Classes", "{7404C851-10AC-4B42-AA5D-75A6FE181F60}" + ProjectSection(SolutionItems) = preProject + NativeMethods.cs = NativeMethods.cs + pGinaCrypt.cs = pGinaCrypt.cs + Reg.cs = Reg.cs + RegistryUtilities.cs = RegistryUtilities.cs + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CredUI-Prompt", "CredUI-Prompt\CredUI-Prompt.vcxproj", "{DB2FE47C-9DF8-4DA6-B486-252559E2217D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pGinaProvider", "pGina-Provider\pGinaProvider.vcxproj", "{7348AEE0-1F4A-4436-B782-6ABB694911AE}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pGina-Lib", "pGina-Lib\pGina-Lib.vcxproj", "{22D652D9-83FF-47DE-BB0C-B36C42D4A826}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibTester", "LibTester\LibTester.vcxproj", "{573E6936-9E2F-49BD-B331-47DB1D1D0E48}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConfigApp", "ConfigApp\ConfigApp.csproj", "{87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pGinaSrv", "pGinaSrv\pGinaSrv.vcxproj", "{C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pGinaLogoffUtility", "pGinaLogoffUtility\pGinaLogoffUtility.vcxproj", "{65D71E30-E311-4208-927A-483717A028EE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pGinaSrvCS", "pGinaSrvCS\pGinaSrvCS.csproj", "{45B874F8-2E2B-43B8-8A6F-42CC8434436D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pGinaCrypt", "pGinaCrypt\pGinaCrypt.vcxproj", "{A98FD2E8-E962-4DEF-A593-7C768F1E3E44}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Any CPU = Release|Any CPU + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Debug|Any CPU.ActiveCfg = Debug|x64 + {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Debug|Win32.ActiveCfg = Debug|Win32 + {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Debug|Win32.Build.0 = Debug|Win32 + {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Debug|x64.ActiveCfg = Debug|x64 + {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Debug|x64.Build.0 = Debug|x64 + {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Release|Any CPU.ActiveCfg = Release|x64 + {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Release|Win32.ActiveCfg = Release|Win32 + {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Release|Win32.Build.0 = Release|Win32 + {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Release|x64.ActiveCfg = Release|x64 + {DB2FE47C-9DF8-4DA6-B486-252559E2217D}.Release|x64.Build.0 = Release|x64 + {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Debug|Any CPU.ActiveCfg = Debug|x64 + {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Debug|Win32.ActiveCfg = Debug|Win32 + {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Debug|Win32.Build.0 = Debug|Win32 + {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Debug|x64.ActiveCfg = Debug|x64 + {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Debug|x64.Build.0 = Debug|x64 + {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Release|Any CPU.ActiveCfg = Release|x64 + {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Release|Win32.ActiveCfg = Release|Win32 + {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Release|Win32.Build.0 = Release|Win32 + {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Release|x64.ActiveCfg = Release|x64 + {7348AEE0-1F4A-4436-B782-6ABB694911AE}.Release|x64.Build.0 = Release|x64 + {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Debug|Any CPU.ActiveCfg = Debug|x64 + {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Debug|Win32.ActiveCfg = Debug|Win32 + {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Debug|Win32.Build.0 = Debug|Win32 + {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Debug|x64.ActiveCfg = Debug|x64 + {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Debug|x64.Build.0 = Debug|x64 + {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Release|Any CPU.ActiveCfg = Release|x64 + {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Release|Win32.ActiveCfg = Release|Win32 + {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Release|Win32.Build.0 = Release|Win32 + {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Release|x64.ActiveCfg = Release|x64 + {22D652D9-83FF-47DE-BB0C-B36C42D4A826}.Release|x64.Build.0 = Release|x64 + {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Debug|Any CPU.ActiveCfg = Debug|x64 + {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Debug|Win32.ActiveCfg = Debug|Win32 + {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Debug|Win32.Build.0 = Debug|Win32 + {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Debug|x64.ActiveCfg = Debug|x64 + {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Debug|x64.Build.0 = Debug|x64 + {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Release|Any CPU.ActiveCfg = Release|x64 + {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Release|Win32.ActiveCfg = Release|Win32 + {573E6936-9E2F-49BD-B331-47DB1D1D0E48}.Release|x64.ActiveCfg = Release|x64 + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|Any CPU.Build.0 = Debug|Any CPU + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|Win32.ActiveCfg = Debug|Any CPU + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|Win32.Build.0 = Debug|Any CPU + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|x64.ActiveCfg = Debug|Any CPU + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Debug|x64.Build.0 = Debug|Any CPU + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Release|Any CPU.ActiveCfg = Release|Any CPU + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Release|Any CPU.Build.0 = Release|Any CPU + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Release|Win32.ActiveCfg = Release|Any CPU + {87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}.Release|x64.ActiveCfg = Release|Any CPU + {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Debug|Win32.ActiveCfg = Debug|Win32 + {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Debug|Win32.Build.0 = Debug|Win32 + {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Debug|x64.ActiveCfg = Debug|x64 + {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Debug|x64.Build.0 = Debug|x64 + {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Release|Any CPU.ActiveCfg = Release|x64 + {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Release|Win32.ActiveCfg = Release|Win32 + {C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}.Release|x64.ActiveCfg = Release|x64 + {65D71E30-E311-4208-927A-483717A028EE}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {65D71E30-E311-4208-927A-483717A028EE}.Debug|Win32.ActiveCfg = Debug|Win32 + {65D71E30-E311-4208-927A-483717A028EE}.Debug|Win32.Build.0 = Debug|Win32 + {65D71E30-E311-4208-927A-483717A028EE}.Debug|x64.ActiveCfg = Debug|Win32 + {65D71E30-E311-4208-927A-483717A028EE}.Release|Any CPU.ActiveCfg = Release|x64 + {65D71E30-E311-4208-927A-483717A028EE}.Release|Win32.ActiveCfg = Release|Win32 + {65D71E30-E311-4208-927A-483717A028EE}.Release|Win32.Build.0 = Release|Win32 + {65D71E30-E311-4208-927A-483717A028EE}.Release|x64.ActiveCfg = Release|x64 + {65D71E30-E311-4208-927A-483717A028EE}.Release|x64.Build.0 = Release|x64 + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Debug|Win32.ActiveCfg = Debug|Any CPU + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Debug|x64.ActiveCfg = Debug|Any CPU + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Release|Any CPU.Build.0 = Release|Any CPU + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Release|Win32.ActiveCfg = Release|Any CPU + {45B874F8-2E2B-43B8-8A6F-42CC8434436D}.Release|x64.ActiveCfg = Release|Any CPU + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Debug|Win32.ActiveCfg = Debug|Win32 + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Debug|Win32.Build.0 = Debug|Win32 + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Debug|x64.ActiveCfg = Debug|Win32 + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Release|Any CPU.ActiveCfg = Release|x64 + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Release|Win32.ActiveCfg = Release|Win32 + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Release|Win32.Build.0 = Release|Win32 + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Release|x64.ActiveCfg = Release|x64 + {A98FD2E8-E962-4DEF-A593-7C768F1E3E44}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Deleted: pGina-2.x/src/pGina-2.0.sln =================================================================== --- pGina-2.x/src/pGina-2.0.sln 2011-06-03 21:18:37 UTC (rev 132) +++ pGina-2.x/src/pGina-2.0.sln 2011-06-04 02:41:15 UTC (rev 133) @@ -1,148 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CredUI-Prompt", "CredUI-Prompt\CredUI-Prompt.vcproj", "{DB2FE47C-9DF8-4DA6-B486-252559E2217D}" - ProjectSection(ProjectDependencies) = postProject - {22D652D9-83FF-47DE-BB0C-B36C42D4A826} = {22D652D9-83FF-47DE-BB0C-B36C42D4A826} - {7348AEE0-1F4A-4436-B782-6ABB694911AE} = {7348AEE0-1F4A-4436-B782-6ABB694911AE} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pGinaProvider", "pGina-Provider\pGinaProvider.vcproj", "{7348AEE0-1F4A-4436-B782-6ABB694911AE}" - ProjectSection(ProjectDependencies) = postProject - {22D652D9-83FF-47DE-BB0C-B36C42D4A826} = {22D652D9-83FF-47DE-BB0C-B36C42D4A826} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pGina-Lib", "pGina-Lib\pGina-Lib.vcproj", "{22D652D9-83FF-47DE-BB0C-B36C42D4A826}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibTester", "LibTester\LibTester.vcproj", "{573E6936-9E2F-49BD-B331-47DB1D1D0E48}" - ProjectSection(ProjectDependencies) = postProject - {22D652D9-83FF-47DE-BB0C-B36C42D4A826} = {22D652D9-83FF-47DE-BB0C-B36C42D4A826} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConfigApp", "ConfigApp\ConfigApp.csproj", "{87E576B9-0DE2-4158-AB5A-BB24DBBDDA24}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pGinaSrv", "pGinaSrv\pGinaSrv.vcproj", "{C0938ADD-3DCC-4AD0-8640-18EC03EBEF50}" - ProjectSection(ProjectDependencies) = postProject - {22D652D9-83FF-47DE-BB0C-B36C42D4A826} = {22D652D9-83FF-47DE-BB0C-B36C42D4A826} - {A98FD2E8-E962-4DEF-A593-7C768F1E3E44} = {A98FD2E8-E962-4DEF-A593-7C768F1E3E44} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pGinaLogoffUtility", "pGinaLogoffUtility\pGinaLogoffUtility.vcproj", "{65D71E30-E311-4208-927A-483717A028EE}" - ProjectSection(ProjectDependencies) = postProject - {22D652D9-83FF-47DE-BB0C-B36C42D4A826} = {22D652D9-83FF-47DE-BB0C-B36C42D4A826} - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{A30538E0-A4F9-40A4-B553-FF80BD6BEE03}" - ProjectSection(SolutionItems) = preProject - pGinaVersion.h = pGinaVersion.h - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pGinaSrvCS", "pGinaSrvCS\pGinaSrvCS.csproj", "{45B874F8-2E2B-43B8-8A6F-42CC8434436D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pGin... [truncated message content] |
From: <pgi...@li...> - 2011-06-03 21:18:43
|
Revision: 132 http://pgina.svn.sourceforge.net/pgina/?rev=132&view=rev Author: hairlesshobo Date: 2011-06-03 21:18:37 +0000 (Fri, 03 Jun 2011) Log Message: ----------- Updated pGinaVersion.nsi for 2.1.1 Modified Paths: -------------- pGina-2.x/src/pGinaVersion.nsi Modified: pGina-2.x/src/pGinaVersion.nsi =================================================================== --- pGina-2.x/src/pGinaVersion.nsi 2011-06-03 20:08:26 UTC (rev 131) +++ pGina-2.x/src/pGinaVersion.nsi 2011-06-03 21:18:37 UTC (rev 132) @@ -2,6 +2,6 @@ !define VERSION_MAJOR 2 !define VERSION_MINOR 1 !define VERSION_QFE 1 -!define VERSION_BUILD 272 +!define VERSION_BUILD 273 !define VERSION_BUILD_DATE "03/06/2011" -!define VERSION_BUILD_TIME "19:28:58UTC" +!define VERSION_BUILD_TIME "19:40:53UTC" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pgi...@li...> - 2011-06-03 20:08:32
|
Revision: 131 http://pgina.svn.sourceforge.net/pgina/?rev=131&view=rev Author: hairlesshobo Date: 2011-06-03 20:08:26 +0000 (Fri, 03 Jun 2011) Log Message: ----------- Updated Changelog.txt for 2.1.1 release and future 2.1.2 release Modified Paths: -------------- pGina-2.x/doc/Changelog.txt Modified: pGina-2.x/doc/Changelog.txt =================================================================== --- pGina-2.x/doc/Changelog.txt 2011-06-03 19:51:18 UTC (rev 130) +++ pGina-2.x/doc/Changelog.txt 2011-06-03 20:08:26 UTC (rev 131) @@ -1,14 +1,17 @@ -v2.1.1 +v2.1.2 Future Release =============================== - * Added pGina logo icon to ConfigApp - * Added pGina logo to uninstall list and start menu shortcut - * Added option to allow scripts to execute before folder mapping - * Fixed registry and file permissions during installation * Fixed remote script execution bug * Registry Options Added: * autoexecBeforeMapping * disableEncryption +v2.1.1 06/03/2011 +=============================== + * Added pGina logo icon to ConfigApp + * Added pGina logo to uninstall list and start menu shortcut + * Added option to allow scripts to execute before folder mapping + * Fixed registry and file permissions during installation + v2.1.0 05/30/2010 =============================== * Added picture chooser to ConfigApp This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pgi...@li...> - 2011-06-03 19:51:24
|
Revision: 130 http://pgina.svn.sourceforge.net/pgina/?rev=130&view=rev Author: hairlesshobo Date: 2011-06-03 19:51:18 +0000 (Fri, 03 Jun 2011) Log Message: ----------- Updated Changelog.txt with 2.1.1 release information Modified Paths: -------------- pGina-2.x/doc/Changelog.txt Modified: pGina-2.x/doc/Changelog.txt =================================================================== --- pGina-2.x/doc/Changelog.txt 2011-06-03 19:49:40 UTC (rev 129) +++ pGina-2.x/doc/Changelog.txt 2011-06-03 19:51:18 UTC (rev 130) @@ -1,3 +1,14 @@ +v2.1.1 +=============================== + * Added pGina logo icon to ConfigApp + * Added pGina logo to uninstall list and start menu shortcut + * Added option to allow scripts to execute before folder mapping + * Fixed registry and file permissions during installation + * Fixed remote script execution bug + * Registry Options Added: + * autoexecBeforeMapping + * disableEncryption + v2.1.0 05/30/2010 =============================== * Added picture chooser to ConfigApp This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pgi...@li...> - 2011-06-03 19:49:46
|
Revision: 129 http://pgina.svn.sourceforge.net/pgina/?rev=129&view=rev Author: hairlesshobo Date: 2011-06-03 19:49:40 +0000 (Fri, 03 Jun 2011) Log Message: ----------- Changed pGina version from 2.1.0 to 2.1.1 in About.txt Modified Paths: -------------- pGina-2.x/doc/About.txt Modified: pGina-2.x/doc/About.txt =================================================================== --- pGina-2.x/doc/About.txt 2011-06-03 19:38:29 UTC (rev 128) +++ pGina-2.x/doc/About.txt 2011-06-03 19:49:40 UTC (rev 129) @@ -1,4 +1,4 @@ -pGina-2.1.0 +pGina-2.1.1 pGina-2.x, as well as the configuration application, are still in development. Please bear with us as we strive to make it all work as well as possible. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pgi...@li...> - 2011-06-03 19:38:35
|
Revision: 128 http://pgina.svn.sourceforge.net/pgina/?rev=128&view=rev Author: hairlesshobo Date: 2011-06-03 19:38:29 +0000 (Fri, 03 Jun 2011) Log Message: ----------- Changed pGina version from 2.1.0 to 2.1.1 Modified Paths: -------------- pGina-2.x/src/ConfigApp/Properties/AssemblyInfo.cs pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver pGina-2.x/src/pGina-Provider/pGinaProvider.ver pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver pGina-2.x/src/pGinaSrvCS/Properties/AssemblyInfo.cs pGina-2.x/src/pGinaVersion.h pGina-2.x/src/pGinaVersion.nsi Modified: pGina-2.x/src/ConfigApp/Properties/AssemblyInfo.cs =================================================================== --- pGina-2.x/src/ConfigApp/Properties/AssemblyInfo.cs 2011-06-03 19:37:32 UTC (rev 127) +++ pGina-2.x/src/ConfigApp/Properties/AssemblyInfo.cs 2011-06-03 19:38:29 UTC (rev 128) @@ -10,7 +10,7 @@ [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("http://www.pgina.org")] [assembly: AssemblyProduct("pGina-2.1")] -[assembly: AssemblyCopyright("Copyright © 2001-2010 pgina.org")] +[assembly: AssemblyCopyright("Copyright © 2001-2011 pgina.org")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -29,4 +29,4 @@ // Build Number // Revision // -[assembly: AssemblyVersion("2.1.0.*")] +[assembly: AssemblyVersion("2.1.1.*")] Modified: pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver =================================================================== --- pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver 2011-06-03 19:37:32 UTC (rev 127) +++ pGina-2.x/src/CredUI-Prompt/CredUI-Prompt.ver 2011-06-03 19:38:29 UTC (rev 128) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 115 -#define VERSION_BUILD_DATE "03/07/2010" -#define VERSION_BUILD_TIME "17:01:20UTC" +#define VERSION_BUILD 119 +#define VERSION_BUILD_DATE "03/06/2011" +#define VERSION_BUILD_TIME "19:28:45UTC" #define VERSION_FILENAME "CredUI-Prompt.exe" #define VERSION_FILE_DESCRIPTION "Credential Provider tester for pGina" Modified: pGina-2.x/src/pGina-Provider/pGinaProvider.ver =================================================================== --- pGina-2.x/src/pGina-Provider/pGinaProvider.ver 2011-06-03 19:37:32 UTC (rev 127) +++ pGina-2.x/src/pGina-Provider/pGinaProvider.ver 2011-06-03 19:38:29 UTC (rev 128) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 1260 -#define VERSION_BUILD_DATE "03/07/2010" -#define VERSION_BUILD_TIME "17:01:01UTC" +#define VERSION_BUILD 1264 +#define VERSION_BUILD_DATE "03/06/2011" +#define VERSION_BUILD_TIME "19:28:35UTC" #define VERSION_FILENAME "pGinaProvider.dll" #define VERSION_FILE_DESCRIPTION "Credential Provider for pGina" Modified: pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver =================================================================== --- pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver 2011-06-03 19:37:32 UTC (rev 127) +++ pGina-2.x/src/pGinaLogoffUtility/pGinaLogoffUtility.ver 2011-06-03 19:38:29 UTC (rev 128) @@ -1,6 +1,6 @@ -#define VERSION_BUILD 30 -#define VERSION_BUILD_DATE "03/07/2010" -#define VERSION_BUILD_TIME "17:01:01UTC" +#define VERSION_BUILD 34 +#define VERSION_BUILD_DATE "03/06/2011" +#define VERSION_BUILD_TIME "19:28:42UTC" #define VERSION_FILENAME "pGinaLogoffUtility.exe" #define VERSION_FILE_DESCRIPTION "pGina Utility to end User's Session" Modified: pGina-2.x/src/pGinaSrvCS/Properties/AssemblyInfo.cs =================================================================== --- pGina-2.x/src/pGinaSrvCS/Properties/AssemblyInfo.cs 2011-06-03 19:37:32 UTC (rev 127) +++ pGina-2.x/src/pGinaSrvCS/Properties/AssemblyInfo.cs 2011-06-03 19:38:29 UTC (rev 128) @@ -10,7 +10,7 @@ [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("http://www.pgina.org")] [assembly: AssemblyProduct("pGina-2.1")] -[assembly: AssemblyCopyright("Copyright © 2001-2010 pgina.org")] +[assembly: AssemblyCopyright("Copyright © 2001-2011 pgina.org")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -29,4 +29,4 @@ // Build Number // Revision // -[assembly: AssemblyVersion("2.1.0.*")] +[assembly: AssemblyVersion("2.1.1.*")] Modified: pGina-2.x/src/pGinaVersion.h =================================================================== --- pGina-2.x/src/pGinaVersion.h 2011-06-03 19:37:32 UTC (rev 127) +++ pGina-2.x/src/pGinaVersion.h 2011-06-03 19:38:29 UTC (rev 128) @@ -4,14 +4,14 @@ #define VERSION_MAJOR 2 #define VERSION_MINOR 1 -#define VERSION_QFE 0 +#define VERSION_QFE 1 #define VERSION_RELEASE STR(VERSION_MAJOR) "." STR(VERSION_MINOR) "." STR(VERSION_QFE) ".0" #define VERSION_NUMBER VERSION_MAJOR,VERSION_MINOR,VERSION_QFE,VERSION_BUILD #define VERSION_STRING STR(VERSION_MAJOR) "." STR(VERSION_MINOR) "." STR(VERSION_QFE) "." STR(VERSION_BUILD) #define VERSION_PRODUCT "pGina" #define VERSION_COMPANY "pGina.org" -#define VERSION_COPYRIGHT "Copyright (C) 2001-2010 pGina.org" +#define VERSION_COPYRIGHT "Copyright (C) 2001-2011 pGina.org" #define VERSION_TRADEMARK "" #define VERSION_COMMENTS "www.pgina.org" #define VERSION_BUILD_DATE_TIME VERSION_BUILD_DATE " - " VERSION_BUILD_TIME Modified: pGina-2.x/src/pGinaVersion.nsi =================================================================== --- pGina-2.x/src/pGinaVersion.nsi 2011-06-03 19:37:32 UTC (rev 127) +++ pGina-2.x/src/pGinaVersion.nsi 2011-06-03 19:38:29 UTC (rev 128) @@ -1,7 +1,7 @@ !define VERSION_MAJOR 2 !define VERSION_MINOR 1 -!define VERSION_QFE 0 -!define VERSION_BUILD 267 -!define VERSION_BUILD_DATE "03/07/2010" -!define VERSION_BUILD_TIME "17:01:54UTC" +!define VERSION_QFE 1 +!define VERSION_BUILD 272 +!define VERSION_BUILD_DATE "03/06/2011" +!define VERSION_BUILD_TIME "19:28:58UTC" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pgi...@li...> - 2011-06-03 19:37:38
|
Revision: 127 http://pgina.svn.sourceforge.net/pgina/?rev=127&view=rev Author: hairlesshobo Date: 2011-06-03 19:37:32 +0000 (Fri, 03 Jun 2011) Log Message: ----------- Removed PluginTester from solution build Modified Paths: -------------- PluginSDK/PluginSDK.sln PluginSDK/PluginSDK.suo Modified: PluginSDK/PluginSDK.sln =================================================================== --- PluginSDK/PluginSDK.sln 2011-06-03 19:34:59 UTC (rev 126) +++ PluginSDK/PluginSDK.sln 2011-06-03 19:37:32 UTC (rev 127) @@ -18,9 +18,7 @@ {220F071C-38BD-4356-A41E-91E682059A55}.Debug|x64.ActiveCfg = Debug|x64 {220F071C-38BD-4356-A41E-91E682059A55}.Debug|x64.Build.0 = Debug|x64 {220F071C-38BD-4356-A41E-91E682059A55}.Release|Win32.ActiveCfg = Release|Win32 - {220F071C-38BD-4356-A41E-91E682059A55}.Release|Win32.Build.0 = Release|Win32 {220F071C-38BD-4356-A41E-91E682059A55}.Release|x64.ActiveCfg = Release|x64 - {220F071C-38BD-4356-A41E-91E682059A55}.Release|x64.Build.0 = Release|x64 {90F126F3-BE59-4569-88E5-FF5ADD000543}.Debug|Win32.ActiveCfg = Debug|Win32 {90F126F3-BE59-4569-88E5-FF5ADD000543}.Debug|Win32.Build.0 = Debug|Win32 {90F126F3-BE59-4569-88E5-FF5ADD000543}.Debug|x64.ActiveCfg = Debug|x64 Modified: PluginSDK/PluginSDK.suo =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pgi...@li...> - 2011-06-03 19:35:07
|
Revision: 126 http://pgina.svn.sourceforge.net/pgina/?rev=126&view=rev Author: hairlesshobo Date: 2011-06-03 19:34:59 +0000 (Fri, 03 Jun 2011) Log Message: ----------- Added pGina logo to ConfigApp Modified Paths: -------------- pGina-2.x/src/ConfigApp/FormMain.Designer.cs pGina-2.x/src/ConfigApp/FormMain.resx Added Paths: ----------- pGina-2.x/src/ConfigApp/pgina_logo_letters.ico Modified: pGina-2.x/src/ConfigApp/FormMain.Designer.cs =================================================================== --- pGina-2.x/src/ConfigApp/FormMain.Designer.cs 2011-06-03 18:05:31 UTC (rev 125) +++ pGina-2.x/src/ConfigApp/FormMain.Designer.cs 2011-06-03 19:34:59 UTC (rev 126) @@ -23,6 +23,7 @@ /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormMain)); this.buttonOk = new System.Windows.Forms.Button(); this.buttonCancel = new System.Windows.Forms.Button(); this.treeView = new System.Windows.Forms.TreeView(); @@ -83,6 +84,7 @@ this.Controls.Add(this.buttonCancel); this.Controls.Add(this.buttonOk); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MinimumSize = new System.Drawing.Size(500, 300); this.Name = "FormMain"; this.Padding = new System.Windows.Forms.Padding(10, 10, 20, 10); Modified: pGina-2.x/src/ConfigApp/FormMain.resx =================================================================== --- pGina-2.x/src/ConfigApp/FormMain.resx 2011-06-03 18:05:31 UTC (rev 125) +++ pGina-2.x/src/ConfigApp/FormMain.resx 2011-06-03 19:34:59 UTC (rev 126) @@ -132,4 +132,3903 @@ <metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <value>True</value> </metadata> + <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + 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 + nJTktxuv4kFsxIyU72s4t+LZhNQNaOvFXTmf/TZaQS8CqIUA2Edn3zwiB4/h82RbAIUQop2XKSETFpaq + R7RNdH5RrW4Nx9wNsVBL/fpOvTCQlUNaALCeIJApPx1CgtvT9LPJxK/Ts+rW5HITgAc7K6d1HGk82VhK + EViUbOjOY//D5GN+wBAvYa9PrN5m93lhlcNRNQMgcww6qh4/0rrhFNz5CxbumhygYa253jFfB4Q8esKv + xE0AyBrAv2JAae+J0V5G7TByYy+GE6xMGKuj9qYHpsEPyF54BamgbgkABkkOoLFuvAShMAcrRHg1lDrq + bnxg+iFjMDTiNAQG6FpyJKr5Z2VnNPgDAmIryH5j8z8EYJlbXGi2crTu0z28v5gDyMqv+duMYHy8yDRx + xgs78ke8NmQrAH4ZrbO7h1EmYwWvxu3PE7WUklcOIx9j+2eXhdc2rpUVY9/vnfDjNyfnAgA/JHx+8nyP + H4J7mYWu+9f56tv+mR7/SfxPiPhXZqOcB39J5Mc3v+Y9fxXeJ7zlpXrBk9AbT57LAMRBgPznK/zc3vZ/ + JOgaU4Sso31kzV9xgdah+bfxV4qUay/zcOMmf01nUwQvLXf6EzJvheBaERp/h29/L/dyL/dyL/dyL/// + 5P8AtnRSPJnxMogAAAAASUVORK5CYIKJUE5HDQoaCgAAAA1JSERSAAABAAAAAQAIAwAAAGusWFQAAAMA + UExURQAAAD62tze8aT62tj22tze8ajy2tza7aDa8aT21tj62tTe8az61uD61tze9aDi8aT+1tz61tj61 + uTW9aTe7aTa8aja7ar/4+De8aEC1tkO1tja7aTa6alS7vDm6azm6ajuztD+0pjS8aDy6bUO8clG7ek26 + d0OwbTS8aEq0c0i6dEK3bkS5cVaec0qwcT62uJXa2zu6bDq1tTm4ajy1tSk1Mj60tTa5asvMzNXz5za8 + aMjp383q29Ds5sT29TW8aj20tj22tsbj1DW8aT60tmdybgcJCOXz7NL080G0tE9YVcjVzzG5ZhAUFFVj + YhYeGjNBOTM5NzVBQDu1aTpMSGGCcQsPDiQpKTi2aFxsaRslI0BRT0dUT5fW1TS5Zlarq/H59VViXPz9 + /Y3V1UKys0Oysme2hqDPtUG0tHSUkGuuh0msrUewsTu1tW+1lm3JkaXbu3C3uLfu2bLY13fImY+3t5XS + sqfUunPRnK3Wz5XJyTi5aIfTpbfny3TMypzl0JPUrIuZlWrEw7To1ke2uIfIyHPIlZPFxZfHq3XOmEi5 + uITJn4yvmovXqnbExEOytGupqpavpZnitqC9r6vnyUW1to7HpkG1tm25i1CtrqS4r6zn5pO3q4uuoqfm + 1ja6aH6yrSs6Ornn5mvHx6Kwr7Ly8K3f1qPm5Kba2Emztanlx4+kmJbPzGDCw5zT0zy1tzy2uFO5uUq1 + tXW4uGbBmpjk5EuysmjGt1eztGa0tGrDjUC0tTi6aqjKtmW5uke2t5fZspbTv2jIjV62t3iztUW0tVe2 + t2qur1i6u1Kys1S6uniys6/VxWPDiUmxsky6uja7azW5aHGEgze4aarJyDi4aUG0tj21a1mTlDm4arHX + xjW6aD20tDi6aji4aJPa2ji6aUK1tj20uD61tTe6aTy1uLn19UC0tD21tja8ajW9a1K6vMDU01W7vT61 + tja9aD61uDe7aUC1tj25az+2tjy3tzS9aT61tz+1tjy3tj62tj61tj61uP///////////7riGU4AAAD9 + dFJOUwD/////////////////////////////Gv/////+9v79/vf//Pjv8/v//Pj8+Yj2/7X9/v7+Cf7+ + A2j/QE9JNf/+/z7//gwDSTH+CBX+Bw8NFgYH/g86BwX+FhEcDaT/7GkOo6H9/sJ9/jmb/P7+ps1yzdRy + 0XOha8lthP6kdNfnkxHb5fiqxGpyyfqrRKy8/rYmhka7+5b+z/coUFhF8v5vC3DJKVuEj5P6qx+g4Hb+ + //L45tdQ+N/x7s7+/0Xj/JOA097+/fPR7PTy+oXZ/PT//hD+UP7+/mv+iP7//v6z//7+/v/+GP7+///z + CfH+//7+/f/////9/v/+9f1+E0RfAAAgAElEQVR4nO2dC1RTV77/DRAS4K5iaUAkNzGXJLCSiBQYhF5o + 6Y2D5S1PUWGw1oILfFcUpSBEDDAEIw9lSgAnFesLoT4GR2siLiAUhxtQhhlYysxgr1fX6tDVTmPvWi6q + 89/7nJzk5OQkQEC56/759iFgEvL7ZO/f/u3f3vu3lyxZ1KIWtahFLWpRi1rUoha1qEUtalGLWtSiZqf1 + Bi30O1kg/f8NQBIL1AykVsOvXrwIDV3ot/Q6lTQcSwQgVk/GLPTbel1alxQZu6dAxtOLz5dtO3iwTq1W + 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 + c7ZW... [truncated message content] |
From: <pgi...@li...> - 2011-06-03 18:05:39
|
Revision: 125 http://pgina.svn.sourceforge.net/pgina/?rev=125&view=rev Author: hairlesshobo Date: 2011-06-03 18:05:31 +0000 (Fri, 03 Jun 2011) Log Message: ----------- Modified copyright year in license.txt Modified Paths: -------------- pGina-2.x/doc/license.txt Modified: pGina-2.x/doc/license.txt =================================================================== --- pGina-2.x/doc/license.txt 2011-06-03 17:59:29 UTC (rev 124) +++ pGina-2.x/doc/license.txt 2011-06-03 18:05:31 UTC (rev 125) @@ -1,4 +1,4 @@ -pGina - Copyright (C) 2001 - 2010 pgina.org +pGina - Copyright (C) 2001 - 2011 pgina.org pGina logo created by Christien Kroeze Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |