Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

123 lines
3.2 KiB

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 2001
//
// File: signtool.h
//
// Contents: The SignTool console tool
//
// History: 4/30/2001 SCoyne Created
//
//----------------------------------------------------------------------------
#define MAX_RES_LEN 2048
// Type definitions:
enum COMMAND
{
CommandNone=0,
CatDb,
Sign,
SignWizard,
Timestamp,
Verify,
};
enum CATDBSELECT
{
NoCatDb=0,
FullAutoCatDb,
SystemCatDb,
DefaultCatDb,
GuidCatDb
};
enum POLICY_CHOICE
{
SystemDriver=0,
DefaultAuthenticode,
GuidActionID
};
enum CATDB_COMMAND
{
UpdateCat=0,
AddUniqueCat,
RemoveCat
};
typedef struct _InputInfo {
COMMAND Command;
WCHAR **rgwszFileNames;
DWORD NumFiles;
CATDBSELECT CatDbSelect;
GUID PolicyGuid;
GUID CatDbGuid;
CATDB_COMMAND CatDbCommand;
CRYPT_HASH_BLOB SHA1;
BOOL OpenMachineStore;
POLICY_CHOICE Policy;
BOOL Quiet;
BOOL TSWarn;
BOOL Verbose;
BOOL HelpRequest;
BOOL fIsWow64Process;
DWORD dwPlatform;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
WCHAR *wszCatFile;
WCHAR *wszCertFile;
WCHAR *wszContainerName;
WCHAR *wszCSP;
WCHAR *wszDescription;
WCHAR *wszDescURL;
WCHAR *wszEKU;
#ifdef SIGNTOOL_LIST
WCHAR *wszListFileName;
WCHAR *wszListFileContents;
#endif
WCHAR *wszIssuerName;
WCHAR *wszPassword;
WCHAR *wszRootName;
WCHAR *wszStoreName;
WCHAR *wszSubjectName;
WCHAR *wszTemplateName;
WCHAR *wszTimeStampURL;
WCHAR *wszVersion;
} INPUTINFO;
// Function prototypes:
void PrintUsage(INPUTINFO *InputInfo);
BOOL ParseInputs(int argc, WCHAR **targv, INPUTINFO *InputInfo);
int SignTool_CatDb(INPUTINFO *InputInfo);
int SignTool_Sign(INPUTINFO *InputInfo);
int SignTool_SignWizard(INPUTINFO *InputInfo);
int SignTool_Timestamp(INPUTINFO *InputInfo);
int SignTool_Verify(INPUTINFO *InputInfo);
// Error Functions:
#ifdef SIGNTOOL_DEBUG
#define ResErr if (gDebug) wprintf(L"%hs (%u):\n", __FILE__, __LINE__); Res_Err
#define ResFormatErr if (gDebug) wprintf(L"%hs (%u):\n", __FILE__, __LINE__); ResFormat_Err
#define FormatErrRet if (gDebug) wprintf(L"%hs (%u):\n", __FILE__, __LINE__); Format_ErrRet
#else
#define ResErr Res_Err
#define ResFormatErr ResFormat_Err
#define FormatErrRet Format_ErrRet
#endif
void ResOut(DWORD dwRes);
void Res_Err(DWORD dwRes);
void ResFormatOut(DWORD dwRes, ...);
void ResFormat_Err(DWORD dwRes, ...);
void Format_ErrRet(WCHAR *wszFunc, DWORD dwErr);
// Helper Functions:
BOOL GUIDFromWStr(GUID *guid, LPWSTR str);