This commit is contained in:
Juan Carlos Luciani 2007-04-02 22:16:07 +00:00
parent 2e19101343
commit 4da676ac00
26 changed files with 795 additions and 625 deletions

View File

@ -29,14 +29,24 @@ Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "authtokenclientdevel_msi",
{BCFF2C8D-3896-4019-BB15-0AB686D6F920} = {BCFF2C8D-3896-4019-BB15-0AB686D6F920}
EndProjectSection
EndProject
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "authtokenclient64_msm", "package\windows\authtokenclient64_msm\authtokenclient64_msm.vdproj", "{8B51B0A7-CA38-43DA-8989-58E6508BF2F9}"
EndProject
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "authtokenclient64_msi", "package\windows\authtokenclient64_msi\authtokenclient64_msi.vdproj", "{EC98E4C3-9C61-45F4-8E48-4A258BBFD534}"
EndProject
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "authtokenclientdevel64_msm", "package\windows\authtokenclientdevel64_msm\authtokenclientdevel64_msm.vdproj", "{A73CCB1F-3ED1-4CF2-BEA6-317E6A7638F5}"
EndProject
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "authtokenclientdevel64_msi", "package\windows\authtokenclientdevel64_msi\authtokenclientdevel64_msi.vdproj", "{216FCE3D-A324-4FF7-8E2B-A7DC5B2415FB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Any CPU = Release|Any CPU
Release|Mixed Platforms = Release|Mixed Platforms
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{C8405908-5026-4E77-B02F-9259856A17E8}.Debug|Any CPU.ActiveCfg = Debug
@ -45,92 +55,182 @@ Global
{C8405908-5026-4E77-B02F-9259856A17E8}.Debug|Mixed Platforms.Build.0 = Debug
{C8405908-5026-4E77-B02F-9259856A17E8}.Debug|Win32.ActiveCfg = Debug
{C8405908-5026-4E77-B02F-9259856A17E8}.Debug|Win32.Build.0 = Debug
{C8405908-5026-4E77-B02F-9259856A17E8}.Debug|x64.ActiveCfg = Debug
{C8405908-5026-4E77-B02F-9259856A17E8}.Debug|x64.Build.0 = Debug
{C8405908-5026-4E77-B02F-9259856A17E8}.Release|Any CPU.ActiveCfg = Release
{C8405908-5026-4E77-B02F-9259856A17E8}.Release|Any CPU.Build.0 = Release
{C8405908-5026-4E77-B02F-9259856A17E8}.Release|Mixed Platforms.ActiveCfg = Release
{C8405908-5026-4E77-B02F-9259856A17E8}.Release|Mixed Platforms.Build.0 = Release
{C8405908-5026-4E77-B02F-9259856A17E8}.Release|Win32.ActiveCfg = Release
{C8405908-5026-4E77-B02F-9259856A17E8}.Release|Win32.Build.0 = Release
{C8405908-5026-4E77-B02F-9259856A17E8}.Release|x64.ActiveCfg = Release
{C8405908-5026-4E77-B02F-9259856A17E8}.Release|x64.Build.0 = Release
{7B174382-8BE8-4F2A-A122-4FCEE849A776}.Debug|Any CPU.ActiveCfg = Debug
{7B174382-8BE8-4F2A-A122-4FCEE849A776}.Debug|Any CPU.Build.0 = Debug
{7B174382-8BE8-4F2A-A122-4FCEE849A776}.Debug|Mixed Platforms.ActiveCfg = Debug
{7B174382-8BE8-4F2A-A122-4FCEE849A776}.Debug|Mixed Platforms.Build.0 = Debug
{7B174382-8BE8-4F2A-A122-4FCEE849A776}.Debug|Win32.ActiveCfg = Debug
{7B174382-8BE8-4F2A-A122-4FCEE849A776}.Debug|Win32.Build.0 = Debug
{7B174382-8BE8-4F2A-A122-4FCEE849A776}.Debug|x64.ActiveCfg = Debug
{7B174382-8BE8-4F2A-A122-4FCEE849A776}.Debug|x64.Build.0 = Debug
{7B174382-8BE8-4F2A-A122-4FCEE849A776}.Release|Any CPU.ActiveCfg = Release
{7B174382-8BE8-4F2A-A122-4FCEE849A776}.Release|Any CPU.Build.0 = Release
{7B174382-8BE8-4F2A-A122-4FCEE849A776}.Release|Mixed Platforms.ActiveCfg = Release
{7B174382-8BE8-4F2A-A122-4FCEE849A776}.Release|Mixed Platforms.Build.0 = Release
{7B174382-8BE8-4F2A-A122-4FCEE849A776}.Release|Win32.ActiveCfg = Release
{7B174382-8BE8-4F2A-A122-4FCEE849A776}.Release|Win32.Build.0 = Release
{7B174382-8BE8-4F2A-A122-4FCEE849A776}.Release|x64.ActiveCfg = Release
{7B174382-8BE8-4F2A-A122-4FCEE849A776}.Release|x64.Build.0 = Release
{7BD9A5DB-DE7D-40B7-A397-04182DC2F632}.Debug|Any CPU.ActiveCfg = Debug|Win32
{7BD9A5DB-DE7D-40B7-A397-04182DC2F632}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{7BD9A5DB-DE7D-40B7-A397-04182DC2F632}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{7BD9A5DB-DE7D-40B7-A397-04182DC2F632}.Debug|Win32.ActiveCfg = Debug|Win32
{7BD9A5DB-DE7D-40B7-A397-04182DC2F632}.Debug|Win32.Build.0 = Debug|Win32
{7BD9A5DB-DE7D-40B7-A397-04182DC2F632}.Debug|x64.ActiveCfg = Debug|x64
{7BD9A5DB-DE7D-40B7-A397-04182DC2F632}.Release|Any CPU.ActiveCfg = Release|Win32
{7BD9A5DB-DE7D-40B7-A397-04182DC2F632}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{7BD9A5DB-DE7D-40B7-A397-04182DC2F632}.Release|Mixed Platforms.Build.0 = Release|Win32
{7BD9A5DB-DE7D-40B7-A397-04182DC2F632}.Release|Win32.ActiveCfg = Release|Win32
{7BD9A5DB-DE7D-40B7-A397-04182DC2F632}.Release|Win32.Build.0 = Release|Win32
{7BD9A5DB-DE7D-40B7-A397-04182DC2F632}.Release|x64.ActiveCfg = Release|x64
{5499F624-F371-4559-B4C2-A484BCE892FD}.Debug|Any CPU.ActiveCfg = Debug|Win32
{5499F624-F371-4559-B4C2-A484BCE892FD}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{5499F624-F371-4559-B4C2-A484BCE892FD}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{5499F624-F371-4559-B4C2-A484BCE892FD}.Debug|Win32.ActiveCfg = Debug|Win32
{5499F624-F371-4559-B4C2-A484BCE892FD}.Debug|Win32.Build.0 = Debug|Win32
{5499F624-F371-4559-B4C2-A484BCE892FD}.Debug|x64.ActiveCfg = Debug|x64
{5499F624-F371-4559-B4C2-A484BCE892FD}.Release|Any CPU.ActiveCfg = Release|Win32
{5499F624-F371-4559-B4C2-A484BCE892FD}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{5499F624-F371-4559-B4C2-A484BCE892FD}.Release|Mixed Platforms.Build.0 = Release|Win32
{5499F624-F371-4559-B4C2-A484BCE892FD}.Release|Win32.ActiveCfg = Release|Win32
{5499F624-F371-4559-B4C2-A484BCE892FD}.Release|Win32.Build.0 = Release|Win32
{5499F624-F371-4559-B4C2-A484BCE892FD}.Release|x64.ActiveCfg = Release|x64
{CBD168E8-1D5F-4D75-9E2D-6970CCEB652E}.Debug|Any CPU.ActiveCfg = Debug|Win32
{CBD168E8-1D5F-4D75-9E2D-6970CCEB652E}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{CBD168E8-1D5F-4D75-9E2D-6970CCEB652E}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{CBD168E8-1D5F-4D75-9E2D-6970CCEB652E}.Debug|Win32.ActiveCfg = Debug|Win32
{CBD168E8-1D5F-4D75-9E2D-6970CCEB652E}.Debug|Win32.Build.0 = Debug|Win32
{CBD168E8-1D5F-4D75-9E2D-6970CCEB652E}.Debug|x64.ActiveCfg = Debug|x64
{CBD168E8-1D5F-4D75-9E2D-6970CCEB652E}.Release|Any CPU.ActiveCfg = Release|Win32
{CBD168E8-1D5F-4D75-9E2D-6970CCEB652E}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{CBD168E8-1D5F-4D75-9E2D-6970CCEB652E}.Release|Mixed Platforms.Build.0 = Release|Win32
{CBD168E8-1D5F-4D75-9E2D-6970CCEB652E}.Release|Win32.ActiveCfg = Release|Win32
{CBD168E8-1D5F-4D75-9E2D-6970CCEB652E}.Release|Win32.Build.0 = Release|Win32
{CBD168E8-1D5F-4D75-9E2D-6970CCEB652E}.Release|x64.ActiveCfg = Release|x64
{6034EBF1-0838-45C4-A538-A41A31EC8F46}.Debug|Any CPU.ActiveCfg = Debug|Win32
{6034EBF1-0838-45C4-A538-A41A31EC8F46}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{6034EBF1-0838-45C4-A538-A41A31EC8F46}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{6034EBF1-0838-45C4-A538-A41A31EC8F46}.Debug|Win32.ActiveCfg = Debug|Win32
{6034EBF1-0838-45C4-A538-A41A31EC8F46}.Debug|Win32.Build.0 = Debug|Win32
{6034EBF1-0838-45C4-A538-A41A31EC8F46}.Debug|x64.ActiveCfg = Debug|x64
{6034EBF1-0838-45C4-A538-A41A31EC8F46}.Release|Any CPU.ActiveCfg = Release|Win32
{6034EBF1-0838-45C4-A538-A41A31EC8F46}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{6034EBF1-0838-45C4-A538-A41A31EC8F46}.Release|Mixed Platforms.Build.0 = Release|Win32
{6034EBF1-0838-45C4-A538-A41A31EC8F46}.Release|Win32.ActiveCfg = Release|Win32
{6034EBF1-0838-45C4-A538-A41A31EC8F46}.Release|Win32.Build.0 = Release|Win32
{6034EBF1-0838-45C4-A538-A41A31EC8F46}.Release|x64.ActiveCfg = Release|x64
{1BA1FC97-5AF1-4506-A7FD-EBFD46D361A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1BA1FC97-5AF1-4506-A7FD-EBFD46D361A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1BA1FC97-5AF1-4506-A7FD-EBFD46D361A0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{1BA1FC97-5AF1-4506-A7FD-EBFD46D361A0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{1BA1FC97-5AF1-4506-A7FD-EBFD46D361A0}.Debug|Win32.ActiveCfg = Debug|Any CPU
{1BA1FC97-5AF1-4506-A7FD-EBFD46D361A0}.Debug|x64.ActiveCfg = Debug|Any CPU
{1BA1FC97-5AF1-4506-A7FD-EBFD46D361A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1BA1FC97-5AF1-4506-A7FD-EBFD46D361A0}.Release|Any CPU.Build.0 = Release|Any CPU
{1BA1FC97-5AF1-4506-A7FD-EBFD46D361A0}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{1BA1FC97-5AF1-4506-A7FD-EBFD46D361A0}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{1BA1FC97-5AF1-4506-A7FD-EBFD46D361A0}.Release|Win32.ActiveCfg = Release|Any CPU
{1BA1FC97-5AF1-4506-A7FD-EBFD46D361A0}.Release|x64.ActiveCfg = Release|Any CPU
{BCFF2C8D-3896-4019-BB15-0AB686D6F920}.Debug|Any CPU.ActiveCfg = Debug
{BCFF2C8D-3896-4019-BB15-0AB686D6F920}.Debug|Any CPU.Build.0 = Debug
{BCFF2C8D-3896-4019-BB15-0AB686D6F920}.Debug|Mixed Platforms.ActiveCfg = Debug
{BCFF2C8D-3896-4019-BB15-0AB686D6F920}.Debug|Mixed Platforms.Build.0 = Debug
{BCFF2C8D-3896-4019-BB15-0AB686D6F920}.Debug|Win32.ActiveCfg = Debug
{BCFF2C8D-3896-4019-BB15-0AB686D6F920}.Debug|Win32.Build.0 = Debug
{BCFF2C8D-3896-4019-BB15-0AB686D6F920}.Debug|x64.ActiveCfg = Debug
{BCFF2C8D-3896-4019-BB15-0AB686D6F920}.Debug|x64.Build.0 = Debug
{BCFF2C8D-3896-4019-BB15-0AB686D6F920}.Release|Any CPU.ActiveCfg = Release
{BCFF2C8D-3896-4019-BB15-0AB686D6F920}.Release|Any CPU.Build.0 = Release
{BCFF2C8D-3896-4019-BB15-0AB686D6F920}.Release|Mixed Platforms.ActiveCfg = Release
{BCFF2C8D-3896-4019-BB15-0AB686D6F920}.Release|Mixed Platforms.Build.0 = Release
{BCFF2C8D-3896-4019-BB15-0AB686D6F920}.Release|Win32.ActiveCfg = Release
{BCFF2C8D-3896-4019-BB15-0AB686D6F920}.Release|Win32.Build.0 = Release
{BCFF2C8D-3896-4019-BB15-0AB686D6F920}.Release|x64.ActiveCfg = Release
{BCFF2C8D-3896-4019-BB15-0AB686D6F920}.Release|x64.Build.0 = Release
{E62A1388-82C9-4AE8-B29E-C9C808B05425}.Debug|Any CPU.ActiveCfg = Debug
{E62A1388-82C9-4AE8-B29E-C9C808B05425}.Debug|Mixed Platforms.ActiveCfg = Debug
{E62A1388-82C9-4AE8-B29E-C9C808B05425}.Debug|Win32.ActiveCfg = Debug
{E62A1388-82C9-4AE8-B29E-C9C808B05425}.Debug|x64.ActiveCfg = Debug
{E62A1388-82C9-4AE8-B29E-C9C808B05425}.Debug|x64.Build.0 = Debug
{E62A1388-82C9-4AE8-B29E-C9C808B05425}.Release|Any CPU.ActiveCfg = Release
{E62A1388-82C9-4AE8-B29E-C9C808B05425}.Release|Mixed Platforms.ActiveCfg = Release
{E62A1388-82C9-4AE8-B29E-C9C808B05425}.Release|Win32.ActiveCfg = Release
{E62A1388-82C9-4AE8-B29E-C9C808B05425}.Release|x64.ActiveCfg = Release
{E62A1388-82C9-4AE8-B29E-C9C808B05425}.Release|x64.Build.0 = Release
{8B51B0A7-CA38-43DA-8989-58E6508BF2F9}.Debug|Any CPU.ActiveCfg = Debug
{8B51B0A7-CA38-43DA-8989-58E6508BF2F9}.Debug|Any CPU.Build.0 = Debug
{8B51B0A7-CA38-43DA-8989-58E6508BF2F9}.Debug|Mixed Platforms.ActiveCfg = Debug
{8B51B0A7-CA38-43DA-8989-58E6508BF2F9}.Debug|Mixed Platforms.Build.0 = Debug
{8B51B0A7-CA38-43DA-8989-58E6508BF2F9}.Debug|Win32.ActiveCfg = Debug
{8B51B0A7-CA38-43DA-8989-58E6508BF2F9}.Debug|Win32.Build.0 = Debug
{8B51B0A7-CA38-43DA-8989-58E6508BF2F9}.Debug|x64.ActiveCfg = Debug
{8B51B0A7-CA38-43DA-8989-58E6508BF2F9}.Debug|x64.Build.0 = Debug
{8B51B0A7-CA38-43DA-8989-58E6508BF2F9}.Release|Any CPU.ActiveCfg = Release
{8B51B0A7-CA38-43DA-8989-58E6508BF2F9}.Release|Any CPU.Build.0 = Release
{8B51B0A7-CA38-43DA-8989-58E6508BF2F9}.Release|Mixed Platforms.ActiveCfg = Release
{8B51B0A7-CA38-43DA-8989-58E6508BF2F9}.Release|Mixed Platforms.Build.0 = Release
{8B51B0A7-CA38-43DA-8989-58E6508BF2F9}.Release|Win32.ActiveCfg = Release
{8B51B0A7-CA38-43DA-8989-58E6508BF2F9}.Release|Win32.Build.0 = Release
{8B51B0A7-CA38-43DA-8989-58E6508BF2F9}.Release|x64.ActiveCfg = Release
{8B51B0A7-CA38-43DA-8989-58E6508BF2F9}.Release|x64.Build.0 = Release
{EC98E4C3-9C61-45F4-8E48-4A258BBFD534}.Debug|Any CPU.ActiveCfg = Debug
{EC98E4C3-9C61-45F4-8E48-4A258BBFD534}.Debug|Any CPU.Build.0 = Debug
{EC98E4C3-9C61-45F4-8E48-4A258BBFD534}.Debug|Mixed Platforms.ActiveCfg = Debug
{EC98E4C3-9C61-45F4-8E48-4A258BBFD534}.Debug|Mixed Platforms.Build.0 = Debug
{EC98E4C3-9C61-45F4-8E48-4A258BBFD534}.Debug|Win32.ActiveCfg = Debug
{EC98E4C3-9C61-45F4-8E48-4A258BBFD534}.Debug|Win32.Build.0 = Debug
{EC98E4C3-9C61-45F4-8E48-4A258BBFD534}.Debug|x64.ActiveCfg = Debug
{EC98E4C3-9C61-45F4-8E48-4A258BBFD534}.Debug|x64.Build.0 = Debug
{EC98E4C3-9C61-45F4-8E48-4A258BBFD534}.Release|Any CPU.ActiveCfg = Release
{EC98E4C3-9C61-45F4-8E48-4A258BBFD534}.Release|Any CPU.Build.0 = Release
{EC98E4C3-9C61-45F4-8E48-4A258BBFD534}.Release|Mixed Platforms.ActiveCfg = Release
{EC98E4C3-9C61-45F4-8E48-4A258BBFD534}.Release|Mixed Platforms.Build.0 = Release
{EC98E4C3-9C61-45F4-8E48-4A258BBFD534}.Release|Win32.ActiveCfg = Release
{EC98E4C3-9C61-45F4-8E48-4A258BBFD534}.Release|Win32.Build.0 = Release
{EC98E4C3-9C61-45F4-8E48-4A258BBFD534}.Release|x64.ActiveCfg = Release
{EC98E4C3-9C61-45F4-8E48-4A258BBFD534}.Release|x64.Build.0 = Release
{A73CCB1F-3ED1-4CF2-BEA6-317E6A7638F5}.Debug|Any CPU.ActiveCfg = Debug
{A73CCB1F-3ED1-4CF2-BEA6-317E6A7638F5}.Debug|Any CPU.Build.0 = Debug
{A73CCB1F-3ED1-4CF2-BEA6-317E6A7638F5}.Debug|Mixed Platforms.ActiveCfg = Debug
{A73CCB1F-3ED1-4CF2-BEA6-317E6A7638F5}.Debug|Mixed Platforms.Build.0 = Debug
{A73CCB1F-3ED1-4CF2-BEA6-317E6A7638F5}.Debug|Win32.ActiveCfg = Debug
{A73CCB1F-3ED1-4CF2-BEA6-317E6A7638F5}.Debug|Win32.Build.0 = Debug
{A73CCB1F-3ED1-4CF2-BEA6-317E6A7638F5}.Debug|x64.ActiveCfg = Debug
{A73CCB1F-3ED1-4CF2-BEA6-317E6A7638F5}.Debug|x64.Build.0 = Debug
{A73CCB1F-3ED1-4CF2-BEA6-317E6A7638F5}.Release|Any CPU.ActiveCfg = Release
{A73CCB1F-3ED1-4CF2-BEA6-317E6A7638F5}.Release|Any CPU.Build.0 = Release
{A73CCB1F-3ED1-4CF2-BEA6-317E6A7638F5}.Release|Mixed Platforms.ActiveCfg = Release
{A73CCB1F-3ED1-4CF2-BEA6-317E6A7638F5}.Release|Mixed Platforms.Build.0 = Release
{A73CCB1F-3ED1-4CF2-BEA6-317E6A7638F5}.Release|Win32.ActiveCfg = Release
{A73CCB1F-3ED1-4CF2-BEA6-317E6A7638F5}.Release|Win32.Build.0 = Release
{A73CCB1F-3ED1-4CF2-BEA6-317E6A7638F5}.Release|x64.ActiveCfg = Release
{A73CCB1F-3ED1-4CF2-BEA6-317E6A7638F5}.Release|x64.Build.0 = Release
{216FCE3D-A324-4FF7-8E2B-A7DC5B2415FB}.Debug|Any CPU.ActiveCfg = Debug
{216FCE3D-A324-4FF7-8E2B-A7DC5B2415FB}.Debug|Any CPU.Build.0 = Debug
{216FCE3D-A324-4FF7-8E2B-A7DC5B2415FB}.Debug|Mixed Platforms.ActiveCfg = Debug
{216FCE3D-A324-4FF7-8E2B-A7DC5B2415FB}.Debug|Mixed Platforms.Build.0 = Debug
{216FCE3D-A324-4FF7-8E2B-A7DC5B2415FB}.Debug|Win32.ActiveCfg = Debug
{216FCE3D-A324-4FF7-8E2B-A7DC5B2415FB}.Debug|Win32.Build.0 = Debug
{216FCE3D-A324-4FF7-8E2B-A7DC5B2415FB}.Debug|x64.ActiveCfg = Debug
{216FCE3D-A324-4FF7-8E2B-A7DC5B2415FB}.Debug|x64.Build.0 = Debug
{216FCE3D-A324-4FF7-8E2B-A7DC5B2415FB}.Release|Any CPU.ActiveCfg = Release
{216FCE3D-A324-4FF7-8E2B-A7DC5B2415FB}.Release|Any CPU.Build.0 = Release
{216FCE3D-A324-4FF7-8E2B-A7DC5B2415FB}.Release|Mixed Platforms.ActiveCfg = Release
{216FCE3D-A324-4FF7-8E2B-A7DC5B2415FB}.Release|Mixed Platforms.Build.0 = Release
{216FCE3D-A324-4FF7-8E2B-A7DC5B2415FB}.Release|Win32.ActiveCfg = Release
{216FCE3D-A324-4FF7-8E2B-A7DC5B2415FB}.Release|Win32.Build.0 = Release
{216FCE3D-A324-4FF7-8E2B-A7DC5B2415FB}.Release|x64.ActiveCfg = Release
{216FCE3D-A324-4FF7-8E2B-A7DC5B2415FB}.Release|x64.Build.0 = Release
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -73,6 +73,25 @@
<DebugType>none</DebugType>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG</DefineConstants>
<BaseAddress>285212672</BaseAddress>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<BaseAddress>285212672</BaseAddress>
<Optimize>true</Optimize>
<DebugType>
</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>
<Reference Include="System">
<Name>System</Name>

View File

@ -36,7 +36,7 @@ typedef struct _AuthMechMod
{
LIST_ENTRY listEntry;
char *pAuthTypeName;
int authTypeNameLen;
size_t authTypeNameLen;
LIB_HANDLE libHandle;
AuthTokenIf *pAuthTokenIf;
@ -87,7 +87,7 @@ GetAuthTokenIf(
{
LIST_ENTRY *pListEntry;
AuthMechMod *pAuthMechMod = NULL;
int authTypeNameLen = strlen(pAuthTypeName);
size_t authTypeNameLen = strlen(pAuthTypeName);
// Look if we already have the module in our list
pListEntry = g_authMechModuleListHead.Flink;
@ -283,7 +283,7 @@ GetAuthMechToken(
if (CASA_SUCCESS(retStatus))
{
char *pAuthToken = NULL;
uint32_t authTokenBufLen = 0;
size_t authTokenBufLen = 0;
// We found a provider for the service, query it for the buffer size
// needed to obtain the authentication token.

View File

@ -181,7 +181,7 @@ BuildAuthenticateMsg(
DbgTrace(0, "-BuildAuthenticateMsg- Buffer allocation error\n", 0);
}
DbgTrace(1, "-BuildAuthenticateMsg- End, pMsg = %0lX\n", (long) pMsg);
DbgTrace(1, "-BuildAuthenticateMsg- End, pMsg = 0x%X\n", pMsg);
return pMsg;
}

View File

@ -194,7 +194,7 @@ CreateAuthTokenCacheEntry(
DbgTrace(0, "-CreateAuthTokenCacheEntry- entrySize overflow prevented\n", 0);
}
DbgTrace(1, "-CreateAuthTokenCacheEntry- End, pEntry = %0lX\n", (long) pEntry);
DbgTrace(1, "-CreateAuthTokenCacheEntry- End, pEntry = 0x%X\n", pEntry);
return pEntry;
}
@ -320,7 +320,7 @@ CreateSessionTokenCacheEntry(
DbgTrace(0, "-CreateSessionTokenCacheEntry- entrySize overflow prevented\n", 0);
}
DbgTrace(1, "-CreateSessionTokenCacheEntry- End, pEntry = %0lX\n", (long) pEntry);
DbgTrace(1, "-CreateSessionTokenCacheEntry- End, pEntry = 0x%X\n", pEntry);
return pEntry;
}
@ -345,7 +345,7 @@ FreeAuthCacheEntry(
{
WrapperAuthCacheEntry *pWrapperEntry = CONTAINING_RECORD(pEntry, WrapperAuthCacheEntry, entry);
DbgTrace(1, "-FreeAuthCacheEntry- Start, pEntry = %0lX\n", (long) pEntry);
DbgTrace(1, "-FreeAuthCacheEntry- Start, pEntry = 0x%X\n", pEntry);
// Free the entry after clearing the memory holding it since it
// may contain security sensitive data.
@ -533,7 +533,7 @@ FindSessionTokenEntryInCache(
DbgTrace(0, "-FindSessionTokenEntryInCache- cacheKeyStrLen overflow prevented\n", 0);
}
DbgTrace(1, "-FindSessionTokenEntryInCache- End, pEntry = %0lX\n", (long) pEntry);
DbgTrace(1, "-FindSessionTokenEntryInCache- End, pEntry = 0x%X\n", pEntry);
return pEntry;
}
@ -661,7 +661,7 @@ FindAuthTokenEntryInCache(
DbgTrace(0, "-FindAuthTokenEntryInCache- keySize overflow prevented\n", 0);
}
DbgTrace(1, "-FindAuthTokenEntryInCache- End, pEntry = %0lX\n", (long) pEntry);
DbgTrace(1, "-FindAuthTokenEntryInCache- End, pEntry = 0x%X\n", pEntry);
return pEntry;
}

View File

@ -298,9 +298,10 @@ ObtainAuthTokenFromServer(
IN const char *pServiceName,
IN const char *pHostName,
IN const char *pNormalizedHostName,
IN const void *pCredStoreScope,
INOUT char **ppAuthToken,
INOUT int *pTokenLifetime,
IN void *pCredStoreScope)
INOUT bool *pAdvisedToRetry)
//
// Arguments:
//
@ -318,8 +319,9 @@ ObtainAuthTokenFromServer(
DbgTrace(1, "-ObtainAuthTokenFromServer- Start\n", 0);
// Initialize output parameter
// Initialize output parameters
*ppAuthToken = NULL;
*pAdvisedToRetry = false;
// Open Rpc Session to the auth service at the specified host
pRpcSession = OpenRpcSession((g_pATSHostName != NULL) ? g_pATSHostName : pHostName,
@ -410,6 +412,9 @@ ObtainAuthTokenFromServer(
{
RemoveSessionTokenEntryInCache(pSessionTokenAuthContext->pContext,
pCredStoreScope);
// Advice that a retry should be attempted
*pAdvisedToRetry = true;
}
}
}
@ -529,9 +534,9 @@ CasaStatus
ObtainAuthTokenInt(
IN const char *pServiceName,
IN const char *pHostName,
IN const void *pCredStoreScope,
INOUT char *pAuthTokenBuf,
INOUT int *pAuthTokenBufLen,
IN void *pCredStoreScope)
INOUT int *pAuthTokenBufLen)
//
// Arguments:
// pServiceName -
@ -545,6 +550,11 @@ ObtainAuthTokenInt(
// client is trying to authenticate. Note that the name
// can either be a DNS name or a dotted IP address.
//
// pCredStoreScope -
// Pointer to CASA structure for scoping credential store access
// to specific users. This can only be leveraged by applications
// running in the context of System.
//
// pAuthTokenBuf -
// Pointer to buffer that will receive the authentication
// token. The length of this buffer is specified by the
@ -559,12 +569,7 @@ ObtainAuthTokenInt(
// completes or the buffer length required if the function
// fails because the buffer pointed at by pAuthTokenBuf is
// not large enough.
//
// pCredStoreScope -
// Pointer to CASA structure for scoping credential store access
// to specific users. This can only be leveraged by applications
// running in the context of System.
//
// Returns:
// Casa Status
//
@ -645,15 +650,30 @@ ObtainAuthTokenInt(
{
// Initialize to retry in case of failure
int cacheEntryLifetime = DEFAULT_RETRY_LIFETIME;
bool advisedToRetry;
// Cache entry created, now try to obtain auth token from the CASA Server
pToken = NULL;
retStatus = ObtainAuthTokenFromServer(pServiceName,
pHostName,
pNormalizedHostName,
pCredStoreScope,
&pToken,
&cacheEntryLifetime,
pCredStoreScope);
&advisedToRetry);
// Retry if not successful and if advised to do so
if (!CASA_SUCCESS(retStatus)
&& advisedToRetry)
{
retStatus = ObtainAuthTokenFromServer(pServiceName,
pHostName,
pNormalizedHostName,
pCredStoreScope,
&pToken,
&cacheEntryLifetime,
&advisedToRetry);
}
// Add the entry to the cache if successful or if the reason that we failed
// was because the server was un-available.
@ -803,9 +823,9 @@ ObtainAuthToken(
// Call our internal worker
retStatus = ObtainAuthTokenInt(pServiceName,
pHostName,
NULL,
pAuthTokenBuf,
pAuthTokenBufLen,
NULL);
pAuthTokenBufLen);
DbgTrace(1, "-ObtainAuthToken- End, retStatus = %08X\n", retStatus);
@ -911,11 +931,11 @@ InitializeLibrary(void)
DbgTrace(0, "-InitializeLibrary- DisableSecureConnections setting configured = %s\n", pDisableSecureConnections);
// Adjust the g_rpcFlags variable based on the setting
if (stricmp(pDisableSecureConnections, "true") == 0)
if (_stricmp(pDisableSecureConnections, "true") == 0)
{
g_rpcFlags &= ~SECURE_RPC_FLAG;
}
else if (stricmp(pDisableSecureConnections, "false") == 0)
else if (_stricmp(pDisableSecureConnections, "false") == 0)
{
g_rpcFlags |= SECURE_RPC_FLAG;
}

View File

@ -160,7 +160,7 @@ BuildGetAuthPolicyMsg(
DbgTrace(0, "-BuildGetAuthPolicyMsg- Buffer allocation error\n", 0);
}
DbgTrace(1, "-BuildGetAuthPolicyMsg- End, pMsg = %0lX\n", (long) pMsg);
DbgTrace(1, "-BuildGetAuthPolicyMsg- End, pMsg = 0x%X\n", pMsg);
return pMsg;
}

View File

@ -178,7 +178,7 @@ BuildGetAuthTokenMsg(
DbgTrace(0, "-BuildGetAuthTokenMsg- Buffer allocation error\n", 0);
}
DbgTrace(1, "-BuildGetAuthTokenMsg- End, pMsg = %0lX\n", (long) pMsg);
DbgTrace(1, "-BuildGetAuthTokenMsg- End, pMsg = 0x%X\n", pMsg);
return pMsg;
}

View File

@ -144,9 +144,9 @@ CasaStatus
ObtainAuthTokenInt(
IN const char *pServiceName,
IN const char *pHostName,
IN const void *pCredStoreScope,
INOUT char *pAuthTokenBuf,
INOUT int *pAuthTokenBufLen,
IN void *pCredStoreScope);
INOUT int *pAuthTokenBufLen);
//
// Functions exported by authmech.c

View File

@ -87,11 +87,11 @@ CasaStatus
(SSCS_CALL *PFNAuthTokenIf_GetAuthToken)(
IN const void *pIfInstance,
IN const char *pContext,
IN char *pMechInfo,
IN const char *pMechInfo,
IN const char *pHostName,
IN void *pCredStoreScope,
IN void *pCredStoreScope,
INOUT char *pTokenBuf,
INOUT uint32_t *pTokenBufLen);
INOUT size_t *pTokenBufLen);
//
// Arguments:
// pIfInstance -
@ -159,20 +159,20 @@ typedef
CasaStatus
(SSCS_CALL *PFN_GetAuthTokenIfRtn)(
IN const ConfigIf *pModuleConfigIf,
IN const int debugLevel,
IN const char *pDebugFilePath,
IN const int debugLevel,
IN const char *pDebugFilePath,
INOUT AuthTokenIf **ppAuthTokenIf);
//
// Arguments:
// pModuleConfigIf -
// Pointer to configuration interface instance for the module.
//
// debugLevel -
// Level to utilize for debugging, 0 being lowest.
//
// pDebugFilePath -
// Path to debug log file. Can be NULL.
//
// debugLevel -
// Level to utilize for debugging, 0 being lowest.
//
// pDebugFilePath -
// Path to debug log file. Can be NULL.
//
// ppAuthTokenIf -
// Pointer to variable that will receive pointer to AuthTokenIf
// instance.

View File

@ -58,7 +58,7 @@ CasaStatus SSCS_CALL
AuthTokenIf_GetAuthToken(
IN const void *pIfInstance,
IN const char *pContext,
IN char *pMechInfo,
IN const char *pMechInfo,
IN const char *pHostName,
IN void *pCredStoreScope,
INOUT char *pTokenBuf,

View File

@ -34,7 +34,7 @@
// Debug Level and debug log file path.
int KrbMechDebugLevel = 0;
char *pKrbMechDebugLogFilePath = NULL;
char *pKrbMechDebugLogFilePath = NULL;
// Tables for Base64 encoding and decoding
static const int8_t g_Base64[] =

View File

@ -39,7 +39,7 @@ CasaStatus SSCS_CALL
AuthTokenIf_GetAuthToken(
IN const void *pIfInstance,
IN const char *pContext,
IN char *pMechInfo,
IN const char *pMechInfo,
IN const char *pHostName,
IN void *pCredStoreScope,
INOUT char *pTokenBuf,
@ -122,32 +122,53 @@ AuthTokenIf_GetAuthToken(
// Process any mechanism information that may have been provided
if (pMechInfo)
{
// Mechanism information has been provided. Mechanism information
// consists of semicolon delimited settings. The settings are formated
// using the format settingName=settingvalue. No white space is allowed
// as part of the mechanism information.
char *pNextSettingToken;
char *pSettingValueToken = strtok_r(pMechInfo, ";", &pNextSettingToken);
while (pSettingValueToken != NULL)
{
char *pNextToken;
char *pSettingName = strtok_r(pSettingValueToken, "=", &pNextToken);
char *pSettingValue = strtok_r(NULL, "=", &pNextToken);
if (pSettingValue)
{
// Process the setting
if (strcmpi(pSettingName, "SVC_PRINCIPAL") == 0)
{
pKrbServiceName = pSettingValue;
}
}
else
{
DbgTrace(0, "-AuthTokenIf_GetAuthToken- Bad setting\n", 0);
}
// Allocate a buffer to hold the mech info so that we can manipulate it
char *pMechInfoInt = malloc(strlen(pMechInfo) + 1);
if (pMechInfoInt)
{
char *pNextSettingToken;
char *pSettingValueToken;
pSettingValueToken = strtok_r(NULL, ";", &pNextSettingToken);
}
// Copy the mechanism info to our work buffer
strcpy(pMechInfoInt, pMechInfo);
// Mechanism information has been provided. Mechanism information
// consists of semicolon delimited settings. The settings are formated
// using the format settingName=settingvalue. No white space is allowed
// as part of the mechanism information.
pSettingValueToken = strtok_r(pMechInfoInt, ";", &pNextSettingToken);
while (pSettingValueToken != NULL)
{
char *pNextToken;
char *pSettingName = strtok_r(pSettingValueToken, "=", &pNextToken);
char *pSettingValue = strtok_r(NULL, "=", &pNextToken);
if (pSettingValue)
{
// Process the setting
if (stricmp(pSettingName, "SVC_PRINCIPAL") == 0)
{
pKrbServiceName = pSettingValue;
}
}
else
{
DbgTrace(0, "-AuthTokenIf_GetAuthToken- Bad setting\n", 0);
}
pSettingValueToken = strtok_r(NULL, ";", &pNextSettingToken);
}
// Free the buffer that we allocated
free(pMechInfoInt);
}
else
{
DbgTrace(0, "-AuthTokenIf_GetAuthToken- Buffer allocation failure\n", 0);
retStatus = CasaStatusBuild(CASA_SEVERITY_ERROR,
CASA_FACILITY_PWTOKEN,
CASA_STATUS_INVALID_PARAMETER);
goto exit;
}
}
// Check if we need to construct the service name

View File

@ -102,88 +102,6 @@
CommandLine="mkdir \&quot;Program Files&quot;\novell\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\lib\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\etc\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\etc\auth\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\etc\auth\mechanisms\&#x0D;&#x0A;copy Krb5Authenticate.conf \&quot;Program Files&quot;\novell\casa\etc\auth\mechanisms\Krb5Authenticate.conf&#x0D;&#x0A;copy $(OutDir)\krb5mech.dll \&quot;Program Files&quot;\novell\casa\lib\krb5mech.dll&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="..\windows\$(ConfigurationName)"
IntermediateDirectory="..\windows\$(ConfigurationName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="-DSECURITY_WIN32 -D&quot;_CRT_SECURE_NO_DEPRECATE&quot;"
AdditionalIncludeDirectories=".\;..\;..\..\..;..\..\..\..\include;&quot;..\..\..\..\..\..\..\Expat-2.0.0\source\lib&quot;;..\..\..\..\..\..\CASA\include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/EXPORT:GetAuthTokenInterface"
AdditionalDependencies="secur32.lib"
OutputFile="$(OutDir)/krb5mech.dll"
LinkIncremental="1"
IgnoreDefaultLibraryNames="libc"
GenerateDebugInformation="true"
SubSystem="0"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
@ -266,7 +184,89 @@
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir \&quot;Program Files&quot;\novell\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\lib\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\etc\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\etc\auth\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\etc\auth\mechanisms\&#x0D;&#x0A;copy Krb5Authenticate.conf \&quot;Program Files&quot;\novell\casa\etc\auth\mechanisms\Krb5Authenticate.conf&#x0D;&#x0A;copy $(OutDir)\krb5mech.dll \&quot;Program Files&quot;\novell\casa\lib\krb5mech.dll&#x0D;&#x0A;"
CommandLine=""
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="..\windows\$(ConfigurationName)"
IntermediateDirectory="..\windows\$(ConfigurationName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="-DSECURITY_WIN32 -D&quot;_CRT_SECURE_NO_DEPRECATE&quot;"
AdditionalIncludeDirectories=".\;..\;..\..\..;..\..\..\..\include;&quot;..\..\..\..\..\..\..\Expat-2.0.0\source\lib&quot;;..\..\..\..\..\..\CASA\include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/EXPORT:GetAuthTokenInterface"
AdditionalDependencies="secur32.lib"
OutputFile="$(OutDir)/krb5mech.dll"
LinkIncremental="1"
IgnoreDefaultLibraryNames="libc"
GenerateDebugInformation="true"
SubSystem="0"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration

View File

@ -1,97 +1,97 @@
/***********************************************************************
*
* Copyright (C) 2006 Novell, Inc. All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; version 2.1
* of the License.
*
* This library 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
* Library Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, Novell, Inc.
*
* To contact Novell about this file by physical or electronic mail,
* you may find current contact information at www.novell.com.
*
* Author: Juan Carlos Luciani <jluciani@novell.com>
*
***********************************************************************/
#ifndef _PLATFORM_H_
#define _PLATFORM_H_
//===[ Include files ]=====================================================
#include <windows.h>
#include <stdio.h>
#include <winerror.h>
#include <security.h>
#include <sspi.h>
//===[ Type definitions ]==================================================
#ifndef CONTAINING_RECORD
#define CONTAINING_RECORD(address, type, field) ((type *)( \
(char*)(address) - \
(char*)(&((type *)0)->field)))
#endif
//
// DbgTrace macro define
//
//#define DbgTrace(LEVEL, X, Y) { \
//char printBuff[256]; \
// if (LEVEL == 0 || DebugLevel >= LEVEL) \
// { \
// _snprintf(printBuff, sizeof(printBuff), X, Y); \
// printf("Krb5Mech %s", printBuff); \
// } \
//}
#define DbgTrace(LEVEL, X, Y) { \
char formatBuff[128]; \
char printBuff[256]; \
/***********************************************************************
*
* Copyright (C) 2006 Novell, Inc. All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; version 2.1
* of the License.
*
* This library 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
* Library Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, Novell, Inc.
*
* To contact Novell about this file by physical or electronic mail,
* you may find current contact information at www.novell.com.
*
* Author: Juan Carlos Luciani <jluciani@novell.com>
*
***********************************************************************/
#ifndef _PLATFORM_H_
#define _PLATFORM_H_
//===[ Include files ]=====================================================
#include <windows.h>
#include <stdio.h>
#include <winerror.h>
#include <security.h>
#include <sspi.h>
//===[ Type definitions ]==================================================
#ifndef CONTAINING_RECORD
#define CONTAINING_RECORD(address, type, field) ((type *)( \
(char*)(address) - \
(char*)(&((type *)0)->field)))
#endif
//
// DbgTrace macro define
//
//#define DbgTrace(LEVEL, X, Y) { \
//char printBuff[256]; \
// if (LEVEL == 0 || DebugLevel >= LEVEL) \
// { \
// _snprintf(printBuff, sizeof(printBuff), X, Y); \
// printf("Krb5Mech %s", printBuff); \
// } \
//}
#define DbgTrace(LEVEL, X, Y) { \
char formatBuff[128]; \
char printBuff[256]; \
FILE *pDebugFile; \
if (LEVEL == 0 || KrbMechDebugLevel >= LEVEL) \
{ \
strcpy(formatBuff, "Krb5Mech "); \
strncat(formatBuff, X, sizeof(formatBuff) - 9); \
_snprintf(printBuff, sizeof(printBuff), formatBuff, Y); \
if (pKrbMechDebugLogFilePath) \
{ \
if (LEVEL == 0 || KrbMechDebugLevel >= LEVEL) \
{ \
strcpy(formatBuff, "Krb5Mech "); \
strncat(formatBuff, X, sizeof(formatBuff) - 9); \
_snprintf(printBuff, sizeof(printBuff), formatBuff, Y); \
if (pKrbMechDebugLogFilePath) \
{ \
pDebugFile = fopen(pKrbMechDebugLogFilePath, "a+"); \
if (pDebugFile) \
{ \
fwrite(printBuff, strlen(printBuff), 1, pDebugFile); \
fclose(pDebugFile); \
} \
} \
else \
OutputDebugString(printBuff); \
} \
}
#define INT32_MAX (2147483647)
#define UINT32_MAX (4294967295U)
#define bool BOOLEAN
#define true TRUE
#define false FALSE
#define strtok_r strtok_s
//===[ Inlines functions ]===============================================
//===[ Function prototypes ]===============================================
//===[ Global externals ]==================================================
//===[ External prototypes ]===============================================
//=========================================================================
#endif // _PLATFORM_H_
if (pDebugFile) \
{ \
fwrite(printBuff, strlen(printBuff), 1, pDebugFile); \
fclose(pDebugFile); \
} \
} \
else \
OutputDebugString(printBuff); \
} \
}
#define INT32_MAX (2147483647)
#define UINT32_MAX (4294967295U)
#define bool BOOLEAN
#define true TRUE
#define false FALSE
#define strtok_r strtok_s
//===[ Inlines functions ]===============================================
//===[ Function prototypes ]===============================================
//===[ Global externals ]==================================================
//===[ External prototypes ]===============================================
//=========================================================================
#endif // _PLATFORM_H_

View File

@ -220,7 +220,7 @@ CasaStatus SSCS_CALL
AuthTokenIf_GetAuthToken(
IN const void *pIfInstance,
IN const char *pContext,
IN char *pMechInfo,
IN const char *pMechInfo,
IN const char *pHostName,
IN void *pCredStoreScope,
INOUT char *pTokenBuf,
@ -302,34 +302,55 @@ AuthTokenIf_GetAuthToken(
// Process any mechanism information that may have been provided
if (pMechInfo)
{
// Mechanism information has been provided. Mechanism information
// consists of semicolon delimited settings. The settings are formated
// using the format settingName=settingvalue. No white space is allowed
// as part of the mechanism information.
char *pNextSettingToken;
char *pSettingValueToken = strtok_r(pMechInfo, ";", &pNextSettingToken);
while (pSettingValueToken != NULL)
// Allocate a buffer to hold the mech info so that we can manipulate it
char *pMechInfoInt = malloc(strlen(pMechInfo) + 1);
if (pMechInfoInt)
{
char *pNextToken;
char *pSettingName = strtok_r(pSettingValueToken, "=", &pNextToken);
char *pSettingValue = strtok_r(NULL, "=", &pNextToken);
if (pSettingValue)
char *pNextSettingToken;
char *pSettingValueToken;
// Copy the mechanism info to our work buffer
strcpy(pMechInfoInt, pMechInfo);
// Mechanism information has been provided. Mechanism information
// consists of semicolon delimited settings. The settings are formated
// using the format settingName=settingvalue. No white space is allowed
// as part of the mechanism information.
pSettingValueToken = strtok_r(pMechInfoInt, ";", &pNextSettingToken);
while (pSettingValueToken != NULL)
{
// Process the setting
if (strcasecmp(pSettingName, "REALM_CREDENTIALS_ONLY") == 0)
char *pNextToken;
char *pSettingName = strtok_r(pSettingValueToken, "=", &pNextToken);
char *pSettingValue = strtok_r(NULL, "=", &pNextToken);
if (pSettingValue)
{
if (strcasecmp(pSettingValue, "true") == 0)
// Process the setting
if (strcasecmp(pSettingName, "REALM_CREDENTIALS_ONLY") == 0)
{
realm_credentials_only = true;
if (strcasecmp(pSettingValue, "true") == 0)
{
realm_credentials_only = true;
}
}
}
}
else
{
DbgTrace(0, "-AuthTokenIf_GetAuthToken- Bad setting\n", 0);
else
{
DbgTrace(0, "-AuthTokenIf_GetAuthToken- Bad setting\n", 0);
}
pSettingValueToken = strtok_r(NULL, ";", &pNextSettingToken);
}
pSettingValueToken = strtok_r(NULL, ";", &pNextSettingToken);
// Free the buffer that we allocated
free(pMechInfoInt);
}
else
{
DbgTrace(0, "-AuthTokenIf_GetAuthToken- Buffer allocation failure\n", 0);
retStatus = CasaStatusBuild(CASA_SEVERITY_ERROR,
CASA_FACILITY_PWTOKEN,
CASA_STATUS_INVALID_PARAMETER);
goto exit;
}
}

View File

@ -60,7 +60,7 @@ CasaStatus SSCS_CALL
AuthTokenIf_GetAuthToken(
IN const void *pIfInstance,
IN const char *pContext,
IN char *pMechInfo,
IN const char *pMechInfo,
IN const char *pHostName,
IN void *pCredStoreScope,
INOUT char *pTokenBuf,

View File

@ -1,96 +1,96 @@
/***********************************************************************
*
* Copyright (C) 2006 Novell, Inc. All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; version 2.1
* of the License.
*
* This library 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
* Library Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, Novell, Inc.
*
* To contact Novell about this file by physical or electronic mail,
* you may find current contact information at www.novell.com.
*
* Author: Juan Carlos Luciani <jluciani@novell.com>
*
***********************************************************************/
#ifndef _PLATFORM_H_
#define _PLATFORM_H_
//===[ Include files ]=====================================================
#include <windows.h>
#include <stdio.h>
#include <winerror.h>
//===[ Type definitions ]==================================================
#ifndef CONTAINING_RECORD
#define CONTAINING_RECORD(address, type, field) ((type *)( \
(char*)(address) - \
(char*)(&((type *)0)->field)))
#endif
//
// DbgTrace macro define
//
//#define DbgTrace(LEVEL, X, Y) { \
//char printBuff[256]; \
// if (LEVEL == 0 || DebugLevel >= LEVEL) \
// { \
// _snprintf(printBuff, sizeof(printBuff), X, Y); \
// printf("PwdMech %s", printBuff); \
// } \
//}
#define DbgTrace(LEVEL, X, Y) { \
char formatBuff[128]; \
char printBuff[256]; \
/***********************************************************************
*
* Copyright (C) 2006 Novell, Inc. All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; version 2.1
* of the License.
*
* This library 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
* Library Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, Novell, Inc.
*
* To contact Novell about this file by physical or electronic mail,
* you may find current contact information at www.novell.com.
*
* Author: Juan Carlos Luciani <jluciani@novell.com>
*
***********************************************************************/
#ifndef _PLATFORM_H_
#define _PLATFORM_H_
//===[ Include files ]=====================================================
#include <windows.h>
#include <stdio.h>
#include <winerror.h>
//===[ Type definitions ]==================================================
#ifndef CONTAINING_RECORD
#define CONTAINING_RECORD(address, type, field) ((type *)( \
(char*)(address) - \
(char*)(&((type *)0)->field)))
#endif
//
// DbgTrace macro define
//
//#define DbgTrace(LEVEL, X, Y) { \
//char printBuff[256]; \
// if (LEVEL == 0 || DebugLevel >= LEVEL) \
// { \
// _snprintf(printBuff, sizeof(printBuff), X, Y); \
// printf("PwdMech %s", printBuff); \
// } \
//}
#define DbgTrace(LEVEL, X, Y) { \
char formatBuff[128]; \
char printBuff[256]; \
FILE *pDebugFile; \
if (LEVEL == 0 || PwdMechDebugLevel >= LEVEL) \
{ \
strcpy(formatBuff, "CASA_PwdMech "); \
strncat(formatBuff, X, sizeof(formatBuff) - 8); \
_snprintf(printBuff, sizeof(printBuff), formatBuff, Y); \
if (pPwdMechDebugLogFilePath) \
{ \
if (LEVEL == 0 || PwdMechDebugLevel >= LEVEL) \
{ \
strcpy(formatBuff, "CASA_PwdMech "); \
strncat(formatBuff, X, sizeof(formatBuff) - 8); \
_snprintf(printBuff, sizeof(printBuff), formatBuff, Y); \
if (pPwdMechDebugLogFilePath) \
{ \
pDebugFile = fopen(pPwdMechDebugLogFilePath, "a+"); \
if (pDebugFile) \
{ \
fwrite(printBuff, strlen(printBuff), 1, pDebugFile); \
fclose(pDebugFile); \
} \
} \
else \
OutputDebugString(printBuff); \
} \
}
#define INT32_MAX (2147483647)
#define UINT32_MAX (4294967295U)
#define bool BOOLEAN
#define true TRUE
#define false FALSE
#define strtok_r strtok_s
#define strcasecmp strcmpi
//===[ Inlines functions ]===============================================
//===[ Function prototypes ]===============================================
//===[ Global externals ]==================================================
//===[ External prototypes ]===============================================
//=========================================================================
#endif // _PLATFORM_H_
if (pDebugFile) \
{ \
fwrite(printBuff, strlen(printBuff), 1, pDebugFile); \
fclose(pDebugFile); \
} \
} \
else \
OutputDebugString(printBuff); \
} \
}
#define INT32_MAX (2147483647)
#define UINT32_MAX (4294967295U)
#define bool BOOLEAN
#define true TRUE
#define false FALSE
#define strtok_r strtok_s
#define strcasecmp stricmp
//===[ Inlines functions ]===============================================
//===[ Function prototypes ]===============================================
//===[ Global externals ]==================================================
//===[ External prototypes ]===============================================
//=========================================================================
#endif // _PLATFORM_H_

View File

@ -103,89 +103,6 @@
CommandLine="mkdir \&quot;Program Files&quot;\novell\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\lib\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\etc\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\etc\auth\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\etc\auth\mechanisms\&#x0D;&#x0A;copy PwdAuthenticate.conf \&quot;Program Files&quot;\novell\casa\etc\auth\mechanisms\PwdAuthenticate.conf&#x0D;&#x0A;copy $(OutDir)\pwmech.dll \&quot;Program Files&quot;\novell\casa\lib\pwmech.dll&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="..\windows\$(ConfigurationName)"
IntermediateDirectory="..\windows\$(ConfigurationName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="-D&quot;_CRT_SECURE_NO_DEPRECATE&quot;"
AdditionalIncludeDirectories=".\;..\;..\..\;..\..\..\;..\..\..\include;..\..\..\include\windows;..\..\..\..\..\..\CASA\include;..\..\..\..\..\..\..\..\CASA\micasadk\Release"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/EXPORT:GetAuthTokenInterface"
AdditionalDependencies="micasa.lib"
OutputFile="$(OutDir)/pwmech.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;\Program Files\Novell\CASA\lib&quot;;..\..\..\..\..\..\CASA\micasadk\Release"
IgnoreDefaultLibraryNames="libc"
GenerateDebugInformation="true"
SubSystem="0"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
@ -269,7 +186,90 @@
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir \&quot;Program Files&quot;\novell\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\lib\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\etc\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\etc\auth\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\etc\auth\mechanisms\&#x0D;&#x0A;copy PwdAuthenticate.conf \&quot;Program Files&quot;\novell\casa\etc\auth\mechanisms\PwdAuthenticate.conf&#x0D;&#x0A;copy $(OutDir)\pwmech.dll \&quot;Program Files&quot;\novell\casa\lib\pwmech.dll&#x0D;&#x0A;"
CommandLine=""
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="..\windows\$(ConfigurationName)"
IntermediateDirectory="..\windows\$(ConfigurationName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="-D&quot;_CRT_SECURE_NO_DEPRECATE&quot;"
AdditionalIncludeDirectories=".\;..\;..\..\;..\..\..\;..\..\..\include;..\..\..\include\windows;..\..\..\..\..\..\CASA\include;..\..\..\..\..\..\..\..\CASA\micasadk\Release"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/EXPORT:GetAuthTokenInterface"
AdditionalDependencies="micasa.lib"
OutputFile="$(OutDir)/pwmech.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;\Program Files\Novell\CASA\lib&quot;;..\..\..\..\..\..\CASA\micasadk\Release"
IgnoreDefaultLibraryNames="libc"
GenerateDebugInformation="true"
SubSystem="0"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration

View File

@ -45,8 +45,8 @@
Name="VCCLCompilerTool"
AdditionalOptions="/D &quot;XML_STATIC&quot; /D &quot;_CRT_SECURE_NO_DEPRECATE&quot;"
Optimization="0"
AdditionalIncludeDirectories=".;..\;..\..\include;..\..\include\windows;&quot;\Program Files\Microsoft Platform SDK\include&quot;;&quot;\Program Files\novell\casa\include&quot;;&quot;..\..\..\..\..\Expat-2.0.0\Source\lib&quot;;..\..\..\..\CASA\include;&quot;$(CASA)\include&quot;;&quot;$(EXPAT)\source\lib&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
AdditionalIncludeDirectories=".;..\;..\..\include;..\..\include\windows;&quot;\Program Files\Microsoft Platform SDK\include&quot;;&quot;C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include&quot;;&quot;\Program Files\novell\casa\include&quot;;&quot;..\..\..\..\..\Expat-2.0.0\Source\lib&quot;;..\..\..\..\CASA\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_MSC_VER"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
@ -69,10 +69,10 @@
Name="VCLinkerTool"
IgnoreImportLibrary="false"
AdditionalOptions="/EXPORT:ObtainAuthToken /EXPORT:ObtainAuthTokenEx"
AdditionalDependencies="ws2_32.lib winhttp.lib libexpatml.lib micasa.lib shlwapi.lib"
AdditionalDependencies="ws2_32.lib winhttp.lib libexpatmt.lib micasa.lib shlwapi.lib"
OutputFile="$(OutDir)/casa_authtoken.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;\Program Files\Microsoft Platform SDK\lib&quot;;&quot;\Program Files\Novell\CASA\lib&quot;;&quot;..\..\..\..\..\Expat-2.0.0\StaticLibs&quot;;..\..\..\..\CASA\lib\Release;..\..\..\..\CASA\micasadk\Release;&quot;$(CASA)\lib&quot;;&quot;$(CASA)\lib\Release&quot;;&quot;$(CASA)\micasadk\Release&quot;;&quot;$(EXPAT)\StaticLibs&quot;"
AdditionalLibraryDirectories="&quot;\Program Files\Microsoft Platform SDK\lib&quot;;&quot;C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib&quot;;&quot;\Program Files\Novell\CASA\lib&quot;;&quot;..\..\..\..\..\Expat-2.0.0\StaticLibs&quot;;..\..\..\..\CASA\lib\Release;..\..\..\..\CASA\micasadk\Release;&quot;$(CASA)\lib&quot;;&quot;$(CASA)\lib\Release&quot;;&quot;$(CASA)\micasadk\Release&quot;;&quot;$(EXPAT)\StaticLibs&quot;"
IgnoreAllDefaultLibraries="false"
IgnoreDefaultLibraryNames="libc"
GenerateDebugInformation="true"
@ -107,6 +107,96 @@
CommandLine="mkdir \&quot;Program Files&quot;\novell\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\lib\&#x0D;&#x0A;copy $(OutDir)\casa_authtoken.dll \&quot;Program Files&quot;\novell\casa\lib\casa_authtoken.dll&#x0D;&#x0A;copy $(SolutionDir)\lib\windows\casa_authtoken.lib \&quot;Program Files&quot;\novell\casa\lib\casa_authtoken.lib&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/D &quot;XML_STATIC&quot; /D &quot;_CRT_SECURE_NO_DEPRECATE&quot;"
Optimization="0"
AdditionalIncludeDirectories=".;..\;..\..\include;..\..\include\windows;&quot;$(MS_SDK_DIR)\include&quot;;&quot;\Program Files\novell\casa\include&quot;;&quot;..\..\..\..\..\Expat-2.0.0\Source\lib&quot;;..\..\..\..\CASA\include;&quot;$(CASA)\include&quot;;&quot;$(EXPAT)\source\lib&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
CallingConvention="2"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="false"
AdditionalOptions="/EXPORT:ObtainAuthToken /EXPORT:ObtainAuthTokenEx"
AdditionalDependencies="ws2_32.lib &quot;$(MS_SDK_DIR)\lib\amd64\winhttp.lib&quot; libexpatmt.lib micasa.lib shlwapi.lib"
OutputFile="$(OutDir)/casa_authtoken.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;\Program Files\Novell\CASA\lib&quot;;&quot;..\..\..\..\..\Expat-2.0.0\StaticLibs\x64&quot;;..\..\..\..\CASA\lib\Release;..\..\..\..\CASA\micasadk\Release;&quot;$(CASA)\lib&quot;;&quot;$(CASA)\lib\Release&quot;;&quot;$(CASA)\micasadk\Release&quot;;&quot;$(EXPAT)\StaticLibs&quot;"
IgnoreAllDefaultLibraries="false"
IgnoreDefaultLibraryNames="libc"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
SubSystem="0"
ImportLibrary="$(SolutionDir)lib\windows/$(TargetName).lib"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="..\windows\$(ConfigurationName)"
@ -133,8 +223,8 @@
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/D &quot;XML_STATIC&quot; /D &quot;_CRT_SECURE_NO_DEPRECATE&quot;"
AdditionalIncludeDirectories=".;..\;..\..\include;..\..\include\windows;&quot;\Program Files\Microsoft Platform SDK\include&quot;;&quot;\Program Files\novell\casa\include&quot;;&quot;..\..\..\..\..\Expat-2.0.0\Source\lib&quot;;..\..\..\..\CASA\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
AdditionalIncludeDirectories=".;..\;..\..\include;..\..\include\windows;&quot;\Program Files\Microsoft Platform SDK\include&quot;;&quot;C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include&quot;;&quot;\Program Files\novell\casa\include&quot;;&quot;..\..\..\..\..\Expat-2.0.0\Source\lib&quot;;..\..\..\..\CASA\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_MSC_VER"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
@ -153,7 +243,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/EXPORT:ObtainAuthToken /EXPORT:ObtainAuthTokenEx"
AdditionalDependencies="ws2_32.lib winhttp.lib libexpatml.lib micasa.lib shlwapi.lib"
AdditionalDependencies="ws2_32.lib winhttp.lib libexpatmt.lib micasa.lib shlwapi.lib"
OutputFile="$(OutDir)/casa_authtoken.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;\Program Files\Microsoft Platform SDK\lib&quot;;&quot;\Program Files\Novell\CASA\lib&quot;;&quot;..\..\..\..\..\Expat-2.0.0\StaticLibs&quot;;..\..\..\..\CASA\lib\Release;..\..\..\..\CASA\micasadk\Release"
@ -191,96 +281,6 @@
CommandLine=""
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/D &quot;XML_STATIC&quot; /D &quot;_CRT_SECURE_NO_DEPRECATE&quot;"
Optimization="0"
AdditionalIncludeDirectories=".;..\;..\..\include;..\..\include\windows;&quot;\Program Files\Microsoft Platform SDK\include&quot;;&quot;\Program Files\novell\casa\include&quot;;&quot;..\..\..\..\..\Expat-2.0.0\Source\lib&quot;;..\..\..\..\CASA\include;&quot;$(CASA)\include&quot;;&quot;$(EXPAT)\source\lib&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
CallingConvention="2"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="false"
AdditionalOptions="/EXPORT:ObtainAuthToken /EXPORT:ObtainAuthTokenEx"
AdditionalDependencies="ws2_32.lib winhttp.lib libexpatml.lib micasa.lib shlwapi.lib"
OutputFile="$(OutDir)/casa_authtoken.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;\Program Files\Microsoft Platform SDK\lib&quot;;&quot;\Program Files\Novell\CASA\lib&quot;;&quot;..\..\..\..\..\Expat-2.0.0\StaticLibs&quot;;..\..\..\..\CASA\lib\Release;..\..\..\..\CASA\micasadk\Release;&quot;$(CASA)\lib&quot;;&quot;$(CASA)\lib\Release&quot;;&quot;$(CASA)\micasadk\Release&quot;;&quot;$(EXPAT)\StaticLibs&quot;"
IgnoreAllDefaultLibraries="false"
IgnoreDefaultLibraryNames="libc"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
SubSystem="0"
ImportLibrary="$(SolutionDir)lib\windows/$(TargetName).lib"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="mkdir \&quot;Program Files&quot;\novell\&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa&#x0D;&#x0A;mkdir \&quot;Program Files&quot;\novell\casa\lib\&#x0D;&#x0A;copy $(OutDir)\casa_authtoken.dll \&quot;Program Files&quot;\novell\casa\lib\casa_authtoken.dll&#x0D;&#x0A;copy $(SolutionDir)\lib\windows\casa_authtoken.lib \&quot;Program Files&quot;\novell\casa\lib\casa_authtoken.lib&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
@ -308,8 +308,8 @@
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/D &quot;XML_STATIC&quot; /D &quot;_CRT_SECURE_NO_DEPRECATE&quot;"
AdditionalIncludeDirectories=".;..\;..\..\include;..\..\include\windows;&quot;\Program Files\Microsoft Platform SDK\include&quot;;&quot;\Program Files\novell\casa\include&quot;;&quot;..\..\..\..\..\Expat-2.0.0\Source\lib&quot;;..\..\..\..\CASA\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
AdditionalIncludeDirectories=".;..\;..\..\include;..\..\include\windows;&quot;$(MS_SDK_DIR)\include&quot;;&quot;\Program Files\novell\casa\include&quot;;&quot;..\..\..\..\..\Expat-2.0.0\Source\lib&quot;;..\..\..\..\CASA\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
@ -328,10 +328,10 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/EXPORT:ObtainAuthToken /EXPORT:ObtainAuthTokenEx"
AdditionalDependencies="ws2_32.lib winhttp.lib libexpatml.lib micasa.lib shlwapi.lib"
AdditionalDependencies="ws2_32.lib &quot;$(MS_SDK_DIR)\lib\amd64\winhttp.lib&quot; libexpatmt.lib micasa.lib shlwapi.lib"
OutputFile="$(OutDir)/casa_authtoken.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;\Program Files\Microsoft Platform SDK\lib&quot;;&quot;\Program Files\Novell\CASA\lib&quot;;&quot;..\..\..\..\..\Expat-2.0.0\StaticLibs&quot;;..\..\..\..\CASA\lib\Release;..\..\..\..\CASA\micasadk\Release"
AdditionalLibraryDirectories="&quot;\Program Files\Novell\CASA\lib&quot;;&quot;..\..\..\..\..\Expat-2.0.0\StaticLibs\x64&quot;;..\..\..\..\CASA\lib\Release;..\..\..\..\CASA\micasadk\Release"
IgnoreDefaultLibraryNames="libc"
GenerateDebugInformation="true"
SubSystem="0"

View File

@ -112,9 +112,9 @@ ObtainAuthTokenEx(
// Call our internal worker
retStatus = ObtainAuthTokenInt(pServiceName,
pHostName,
pCredStoreScope,
pAuthTokenBuf,
pAuthTokenBufLen,
pCredStoreScope);
pAuthTokenBufLen);
DbgTrace(1, "-ObtainAuthTokenEx- End, retStatus = %0X\n", retStatus);

View File

@ -55,7 +55,7 @@
#define DbgTrace(LEVEL, X, Y) { \
char formatBuff[128]; \
char printBuff[256]; \
FILE *pDebugFile; \
FILE *pDebugFile; \
if (LEVEL == 0 || DebugLevel >= LEVEL) \
{ \
strcpy(formatBuff, "CASA_AuthToken "); \
@ -63,7 +63,7 @@ FILE *pDebugFile; \
_snprintf(printBuff, sizeof(printBuff), formatBuff, Y); \
if (g_pDebugLogFilePath) \
{ \
pDebugFile = fopen(g_pDebugLogFilePath, "a+"); \
pDebugFile = fopen(g_pDebugLogFilePath, "a+"); \
if (pDebugFile) \
{ \
fwrite(printBuff, strlen(printBuff), 1, pDebugFile); \

View File

@ -153,8 +153,8 @@ CopyWideToMultiAlloc(
//++=======================================================================
RpcSession*
OpenRpcSession(
IN char *pHostName,
IN uint16_t hostPort)
IN const char *pHostName,
IN const uint16_t hostPort)
//
// Arguments:
//
@ -307,7 +307,7 @@ static
void CALLBACK
SecureFailureStatusCallback(
IN HINTERNET hRequest,
IN DWORD *pContext,
IN DWORD_PTR *pContext,
IN DWORD internetStatus,
IN LPVOID pStatusInformation,
IN DWORD statusInformationLength)

View File

@ -177,10 +177,10 @@
"Name" = "8:Microsoft Visual Studio"
"ProductName" = "8:authtokenclient"
"ProductCode" = "8:{6D3AAA36-871A-4427-9311-FC3FE2F17511}"
"PackageCode" = "8:{9794A10E-6E27-4DDE-8C40-535FA06EB88E}"
"PackageCode" = "8:{CDA1542D-6493-4F59-B8BE-22752B63A0AB}"
"UpgradeCode" = "8:{69C5F129-788A-4487-9397-331C0A313A2D}"
"RestartWWWService" = "11:FALSE"
"RemovePreviousVersions" = "11:FALSE"
"RemovePreviousVersions" = "11:TRUE"
"DetectNewerInstalledVersion" = "11:TRUE"
"InstallAllUsers" = "11:FALSE"
"ProductVersion" = "8:1.0.0"
@ -714,5 +714,8 @@
}
}
}
"VJSharpPlugin"
{
}
}
}

View File

@ -33,18 +33,24 @@
}
"Entry"
{
"MsmKey" = "8:_71C343EBC4935F8914C3145115EDEC4A"
"OwnerKey" = "8:_8E623C85FD4143F3B09460457E8ED6CA"
"MsmKey" = "8:_65C94F01EA00062BD16ABB7818135818"
"OwnerKey" = "8:_75519C9025D94CC496F276E698CE3AF8"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_71C343EBC4935F8914C3145115EDEC4A"
"MsmKey" = "8:_65C94F01EA00062BD16ABB7818135818"
"OwnerKey" = "8:_C1C37E2154994C29B02FDD9C90635B26"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_65C94F01EA00062BD16ABB7818135818"
"OwnerKey" = "8:_8E623C85FD4143F3B09460457E8ED6CA"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_75519C9025D94CC496F276E698CE3AF8"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@ -75,18 +81,24 @@
}
"Entry"
{
"MsmKey" = "8:_F0C46E8F1B5048179188E62D91BA91EB"
"OwnerKey" = "8:_UNDEFINED"
"MsmKey" = "8:_CD71F4838A178ADBB1127E18F4804F3B"
"OwnerKey" = "8:_75519C9025D94CC496F276E698CE3AF8"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_FE85A5D48B5A23F3077871E9FD2378DE"
"MsmKey" = "8:_CD71F4838A178ADBB1127E18F4804F3B"
"OwnerKey" = "8:_C1C37E2154994C29B02FDD9C90635B26"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_F0C46E8F1B5048179188E62D91BA91EB"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_UNDEFINED"
"OwnerKey" = "8:_4744A4EB6B904673B8897294AB8C6162"
"MsmSig" = "8:_UNDEFINED"
@ -182,7 +194,7 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_71C343EBC4935F8914C3145115EDEC4A"
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_65C94F01EA00062BD16ABB7818135818"
{
"SourcePath" = "8:micasa.dll"
"TargetName" = "8:micasa.dll"
@ -242,6 +254,26 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_CD71F4838A178ADBB1127E18F4804F3B"
{
"SourcePath" = "8:WINHTTP.dll"
"TargetName" = "8:WINHTTP.dll"
"Tag" = "8:"
"Folder" = "8:_01897726E7804A3B875B67A1C2692147"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:TRUE"
"IsDependency" = "11:TRUE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_F0C46E8F1B5048179188E62D91BA91EB"
{
"SourcePath" = "8:..\\..\\..\\library\\mechanisms\\pwd\\windows\\PwdAuthenticate.conf"
@ -262,26 +294,6 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_FE85A5D48B5A23F3077871E9FD2378DE"
{
"SourcePath" = "8:WINHTTP.dll"
"TargetName" = "8:WINHTTP.dll"
"Tag" = "8:"
"Folder" = "8:_01897726E7804A3B875B67A1C2692147"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:TRUE"
"IsDependency" = "11:TRUE"
"IsolateTo" = "8:"
}
}
"FileType"
{
@ -317,7 +329,7 @@
"Property" = "8:_6F4D982C87CA4DF991766D49335B6669"
"Folders"
{
"{9EF0B969-E518-4E46-987F-47570745A589}:_7911DA52FBB24F3DB6BAF4B8BD9E57BF"
"{9EF0B969-E518-4E46-987F-47570745A589}:_F97C66B0F09D45BFBE1A75E5E70A9612"
{
"Name" = "8:CASA"
"AlwaysCreate" = "11:FALSE"
@ -439,7 +451,7 @@
{
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_4744A4EB6B904673B8897294AB8C6162"
{
"SourcePath" = "8:..\\..\\..\\csharp-api\\Novell.Casa.Authtoken\\obj\\Debug\\Novell.Casa.Client.Auth.dll"
"SourcePath" = "8:..\\..\\..\\csharp-api\\Novell.Casa.Authtoken\\obj\\Release\\Novell.Casa.Client.Auth.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_8E0BBDD021EA45308BD98380F28EB7F6"
@ -467,7 +479,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_50C15B4896B94AAD8CF7A676F541BD89"
{
"SourcePath" = "8:..\\..\\..\\library\\mechanisms\\krb5\\windows\\Debug\\krb5mech.dll"
"SourcePath" = "8:..\\..\\..\\library\\mechanisms\\krb5\\windows\\x64\\Release\\krb5mech.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_01897726E7804A3B875B67A1C2692147"
@ -495,7 +507,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_75519C9025D94CC496F276E698CE3AF8"
{
"SourcePath" = "8:..\\..\\..\\library\\windows\\Debug\\casa_authtoken.dll"
"SourcePath" = "8:..\\..\\..\\library\\windows\\x64\\Release\\casa_authtoken.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_E092F841E4D04920B053C3F6A5151BA2"
@ -523,7 +535,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_8E623C85FD4143F3B09460457E8ED6CA"
{
"SourcePath" = "8:..\\..\\..\\library\\mechanisms\\pwd\\windows\\Debug\\pwmech.dll"
"SourcePath" = "8:..\\..\\..\\library\\mechanisms\\pwd\\windows\\x64\\Release\\pwmech.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_01897726E7804A3B875B67A1C2692147"
@ -551,7 +563,7 @@
}
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_C1C37E2154994C29B02FDD9C90635B26"
{
"SourcePath" = "8:..\\..\\..\\library\\windows\\Debug\\casa_authtoken.dll"
"SourcePath" = "8:..\\..\\..\\library\\windows\\x64\\Release\\casa_authtoken.dll"
"TargetName" = "8:"
"Tag" = "8:"
"Folder" = "8:_01897726E7804A3B875B67A1C2692147"

View File

@ -19,6 +19,12 @@
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_UNDEFINED"
"OwnerKey" = "8:_FD0A8D57CFD64B5CADAF19B3B9BCB7B8"
"MsmSig" = "8:_UNDEFINED"
}
}
"Configurations"
{
@ -235,10 +241,10 @@
"Name" = "8:Microsoft Visual Studio"
"ProductName" = "8:authtokenclientdevel_msi"
"ProductCode" = "8:{C3A6CFD7-F415-4317-AA75-45888378B08A}"
"PackageCode" = "8:{A96250E5-B755-4245-9366-FDB7A997B9FC}"
"PackageCode" = "8:{D329A8C0-9A96-4CBC-8634-26B92F5E1305}"
"UpgradeCode" = "8:{A98C298C-4FB1-4267-9045-92B820B97A14}"
"RestartWWWService" = "11:FALSE"
"RemovePreviousVersions" = "11:FALSE"
"RemovePreviousVersions" = "11:TRUE"
"DetectNewerInstalledVersion" = "11:TRUE"
"InstallAllUsers" = "11:FALSE"
"ProductVersion" = "8:1.0.0"
@ -610,41 +616,6 @@
}
}
}
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_CA624AA458884E179C15920FEE46A7A4"
{
"Sequence" = "3:200"
"DisplayName" = "8:Installation Folder"
"UseDynamicProperties" = "11:TRUE"
"IsDependency" = "11:FALSE"
"SourcePath" = "8:<VsdDialogDir>\\VsdFolderDlg.wid"
"Properties"
{
"BannerBitmap"
{
"Name" = "8:BannerBitmap"
"DisplayName" = "8:#1001"
"Description" = "8:#1101"
"Type" = "3:8"
"ContextData" = "8:Bitmap"
"Attributes" = "3:4"
"Setting" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
"InstallAllUsersVisible"
{
"Name" = "8:InstallAllUsersVisible"
"DisplayName" = "8:#1059"
"Description" = "8:#1159"
"Type" = "3:5"
"ContextData" = "8:1;True=1;False=0"
"Attributes" = "3:0"
"Setting" = "3:0"
"Value" = "3:1"
"DefaultValue" = "3:1"
"UsePlugInResources" = "11:TRUE"
}
}
}
}
}
"{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_79D963ADC74940CA9EB076A612495884"
@ -807,5 +778,8 @@
}
}
}
"VJSharpPlugin"
{
}
}
}