Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
wine
Manage
Activity
Members
Labels
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Package registry
Container Registry
Model registry
Operate
Terraform modules
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Zsolt Vadász
wine
Commits
65c7aa99
Commit
65c7aa99
authored
20 years ago
by
Juan Lang
Committed by
Alexandre Julliard
20 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Add a bunch of missing declarations.
parent
a89674f3
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
include/wincrypt.h
+311
-0
311 additions, 0 deletions
include/wincrypt.h
with
311 additions
and
0 deletions
include/wincrypt.h
+
311
−
0
View file @
65c7aa99
...
...
@@ -29,6 +29,7 @@ typedef unsigned long HCRYPTPROV;
typedef
unsigned
long
HCRYPTKEY
;
typedef
unsigned
long
HCRYPTHASH
;
typedef
void
*
HCERTSTORE
;
typedef
void
*
HCRYPTMSG
;
/* CSP Structs */
...
...
@@ -152,6 +153,168 @@ typedef struct _VTableProvStruc {
LPSTR
pszProvName
;
}
VTableProvStruc
,
*
PVTableProvStruc
;
typedef
struct
_CRYPT_ATTRIBUTE
{
LPSTR
pszObjId
;
DWORD
cValue
;
CRYPT_DATA_BLOB
rgValue
;
}
CRYPT_ATTRIBUTE
,
*
PCRYPT_ATTRIBUTE
;
typedef
struct
_CRYPT_ATTRIBUTES
{
DWORD
cAttr
;
PCRYPT_ATTRIBUTE
rgAttr
;
}
CRYPT_ATTRIBUTES
,
*
PCRYPT_ATTRIBUTES
;
typedef
struct
_CTL_USAGE
{
DWORD
cUsageIdentifier
;
LPSTR
*
rgpszUsageIdentifier
;
}
CTL_USAGE
,
*
PCTL_USAGE
,
CERT_ENHKEY_USAGE
,
*
PCERT_ENHKEY_USAGE
;
typedef
struct
_CTL_ENTRY
{
CRYPT_DATA_BLOB
SubjectIdentifier
;
DWORD
cAttribute
;
PCRYPT_ATTRIBUTE
rgAttribute
;
}
CTL_ENTRY
,
*
PCTL_ENTRY
;
typedef
struct
_CTL_INFO
{
DWORD
dwVersion
;
CTL_USAGE
SubjectUsage
;
CRYPT_DATA_BLOB
ListIdentifier
;
CRYPT_INTEGER_BLOB
SequenceNumber
;
FILETIME
ThisUpdate
;
FILETIME
NextUpdate
;
CRYPT_ALGORITHM_IDENTIFIER
SubjectAlgorithm
;
DWORD
cCTLEntry
;
PCTL_ENTRY
rgCTLEntry
;
DWORD
cExtension
;
PCERT_EXTENSION
rgExtension
;
}
CTL_INFO
,
*
PCTL_INFO
;
typedef
struct
_CTL_CONTEXT
{
DWORD
dwMsgAndCertEncodingType
;
BYTE
*
pbCtlEncoded
;
DWORD
cbCtlEncoded
;
PCTL_INFO
pCtlInfo
;
HCERTSTORE
hCertStore
;
HCRYPTMSG
hCryptMsg
;
BYTE
*
pbCtlContext
;
DWORD
cbCtlContext
;
}
CTL_CONTEXT
,
*
PCTL_CONTEXT
;
typedef
const
CTL_CONTEXT
*
PCCTL_CONTEXT
;
typedef
struct
_CERT_REVOCATION_CRL_INFO
{
DWORD
cbSize
;
PCCRL_CONTEXT
pBaseCrlContext
;
PCCRL_CONTEXT
pDeltaCrlContext
;
PCRL_ENTRY
pCrlEntry
;
BOOL
fDeltaCrlEntry
;
}
CERT_REVOCATION_CRL_INFO
,
*
PCERT_REVOCATION_CRL_INFO
;
typedef
struct
_CERT_REVOCATION_INFO
{
DWORD
cbSize
;
DWORD
dwRevocationResult
;
LPCSTR
pszRevocationOid
;
LPVOID
pvOidSpecificInfo
;
BOOL
fHasFreshnessTime
;
DWORD
dwFreshnessTime
;
PCERT_REVOCATION_CRL_INFO
pCrlInfo
;
}
CERT_REVOCATION_INFO
,
*
PCERT_REVOCATION_INFO
;
typedef
struct
_CERT_TRUST_LIST_INFO
{
DWORD
cbSize
;
PCTL_ENTRY
pCtlEntry
;
PCCTL_CONTEXT
pCtlContext
;
}
CERT_TRUST_LIST_INFO
,
*
PCERT_TRUST_LIST_INFO
;
typedef
struct
_CERT_TRUST_STATUS
{
DWORD
dwErrorStatus
;
DWORD
dwInfoStatus
;
}
CERT_TRUST_STATUS
,
*
PCERT_TRUST_STATUS
;
typedef
struct
_CERT_CHAIN_ELEMENT
{
DWORD
cbSize
;
PCCERT_CONTEXT
pCertContext
;
CERT_TRUST_STATUS
TrustStatus
;
PCERT_REVOCATION_INFO
pRevocationInfo
;
PCERT_ENHKEY_USAGE
pIssuanceUsage
;
PCERT_ENHKEY_USAGE
pApplicationUsage
;
LPCWSTR
pwszExtendedErrorInfo
;
}
CERT_CHAIN_ELEMENT
,
*
PCERT_CHAIN_ELEMENT
;
typedef
struct
_CERT_SIMPLE_CHAIN
{
DWORD
cbSize
;
CERT_TRUST_STATUS
TrustStatus
;
DWORD
cElement
;
PCERT_CHAIN_ELEMENT
*
rgpElement
;
PCERT_TRUST_LIST_INFO
pTrustListInfo
;
BOOL
fHasRevocationFreshnessTime
;
DWORD
dwRevocationFreshnessTime
;
}
CERT_SIMPLE_CHAIN
,
*
PCERT_SIMPLE_CHAIN
;
typedef
struct
_CERT_CHAIN_CONTEXT
CERT_CHAIN_CONTEXT
,
*
PCERT_CHAIN_CONTEXT
;
typedef
const
CERT_CHAIN_CONTEXT
*
PCCERT_CHAIN_CONTEXT
;
struct
_CERT_CHAIN_CONTEXT
{
DWORD
cbSize
;
CERT_TRUST_STATUS
TrustStatus
;
DWORD
cChain
;
PCERT_SIMPLE_CHAIN
*
rgpChain
;
DWORD
cLowerQualityChainContext
;
PCCERT_CHAIN_CONTEXT
*
rgbLowerQualityChainContext
;
BOOL
fHasRevocationFreshnessTime
;
DWORD
dwRevocationFreshnessTime
;
};
typedef
struct
_CERT_CHAIN_POLICY_PARA
{
DWORD
cbSize
;
DWORD
dwFlags
;
void
*
pvExtraPolicyPara
;
}
CERT_CHAIN_POLICY_PARA
,
*
PCERT_CHAIN_POLICY_PARA
;
typedef
struct
_CERT_CHAIN_POLICY_STATUS
{
DWORD
cbSize
;
DWORD
dwError
;
LONG
lChainIndex
;
LONG
lElementIndex
;
void
*
pvExtraPolicyStatus
;
}
CERT_CHAIN_POLICY_STATUS
,
*
PCERT_CHAIN_POLICY_STATUS
;
typedef
struct
_CERT_SYSTEM_STORE_INFO
{
DWORD
cbSize
;
}
CERT_SYSTEM_STORE_INFO
,
*
PCERT_SYSTEM_STORE_INFO
;
typedef
struct
_CERT_PHYSICAL_STORE_INFO
{
DWORD
cbSize
;
LPSTR
pszOpenStoreProvider
;
DWORD
dwOpenEncodingType
;
DWORD
dwOpenFlags
;
CRYPT_DATA_BLOB
OpenParameters
;
DWORD
dwFlags
;
DWORD
dwPriority
;
}
CERT_PHYSICAL_STORE_INFO
,
*
PCERT_PHYSICAL_STORE_INFO
;
typedef
struct
_CERT_SYSTEM_STORE_RELOCATE_PARA
{
union
{
HKEY
hKeyBase
;
VOID
*
pvBase
;
}
DUMMYUNIONNAME
;
union
{
void
*
pvSystemStore
;
LPCSTR
pszSystemStore
;
LPCWSTR
pwszSystemStore
;
}
DUMMYUNIONNAME2
;
}
CERT_SYSTEM_STORE_RELOCATE_PARA
,
*
PCERT_SYSTEM_STORE_RELOCATE_PARA
;
typedef
BOOL
(
WINAPI
*
PFN_CERT_ENUM_SYSTEM_STORE_LOCATION
)(
LPCWSTR
pwszStoreLocation
,
DWORD
dwFlags
,
void
*
pvReserved
,
void
*
pvArg
);
typedef
BOOL
(
WINAPI
*
PFN_CERT_ENUM_SYSTEM_STORE
)(
const
void
*
pvSystemStore
,
DWORD
dwFlags
,
PCERT_SYSTEM_STORE_INFO
pStoreInfo
,
void
*
pvReserved
,
void
*
pvArg
);
typedef
BOOL
(
WINAPI
*
PFN_CERT_ENUM_PHYSICAL_STORE
)(
const
void
*
pvSystemStore
,
DWORD
dwFlags
,
LPCWSTR
pwszStoreName
,
PCERT_PHYSICAL_STORE_INFO
pStoreInfo
,
void
*
pvReserved
,
void
*
pvArg
);
/* Algorithm IDs */
#define GET_ALG_CLASS(x) (x & (7 << 13))
...
...
@@ -523,11 +686,136 @@ static const WCHAR MS_SCARD_PROV_W[] = { 'M','i','c','r','o','s','o','
#define sz_CERT_STORE_PROV_LDAP_W "Ldap"
#define sz_CERT_STORE_PROV_LDAP sz_CERT_STORE_PROV_LDAP_W
/* types for CertOpenStore dwEncodingType */
#define X509_ASN_ENCODING 0x00000001
#define X509_NDR_ENCODING 0x00000002
#define PKCS_7_ASN_ENCODING 0x00010000
#define PKCS_7_NDR_ENCODING 0x00020000
/* system store locations */
#define CERT_SYSTEM_STORE_LOCATION_MASK 0x00ff0000
#define CERT_SYSTEM_STORE_LOCATION_SHIFT 16
/* system store location ids */
/* hkcu */
#define CERT_SYSTEM_STORE_CURRENT_USER_ID 1
/* hklm */
#define CERT_SYSTEM_STORE_LOCAL_MACHINE_ID 2
/* hklm\Software\Microsoft\Cryptography\Services */
#define CERT_SYSTEM_STORE_CURRENT_SERVICE_ID 4
#define CERT_SYSTEM_STORE_SERVICES_ID 5
/* HKEY_USERS */
#define CERT_SYSTEM_STORE_USERS_ID 6
/* hkcu\Software\Microsoft\Policies\Microsoft\SystemCertificates */
#define CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID 7
/* hklm\Software\Microsoft\Policies\Microsoft\SystemCertificates */
#define CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID 8
/* hklm\Software\Microsoft\EnterpriseCertificates */
#define CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID 9
/* system store location values */
#define CERT_SYSTEM_STORE_CURRENT_USER \
(CERT_SYSTEM_STORE_CURRENT_USER_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
#define CERT_SYSTEM_STORE_LOCAL_MACHINE \
(CERT_SYSTEM_STORE_LOCAL_MACHINE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
#define CERT_SYSTEM_STORE_CURRENT_SERVICE \
(CERT_SYSTEM_STORE_CURRENT_SERVICE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
#define CERT_SYSTEM_STORE_SERVICE \
(CERT_SYSTEM_STORE_SERVICES_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
#define CERT_SYSTEM_STORE_USERS \
(CERT_SYSTEM_STORE_USERS_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
#define CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY \
(CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
#define CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY \
(CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
#define CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE \
(CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
/* flags for CertOpenStore dwFlags */
#define CERT_STORE_NO_CRYPT_RELEASE_FLAG 0x00000001
#define CERT_STORE_SET_LOCALIZED_NAME_FLAG 0x00000002
#define CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG 0x00000004
#define CERT_STORE_DELETE_FLAG 0x00000010
#define CERT_STORE_UNSAFE_PHYSICAL_FLAG 0x00000020
#define CERT_STORE_SHARE_STORE_FLAG 0x00000040
#define CERT_STORE_SHARE_CONTEXT_FLAG 0x00000080
#define CERT_STORE_MANIFOLD_FLAG 0x00000100
#define CERT_STORE_ENUM_ARCHIVED_FLAG 0x00000200
#define CERT_STORE_UPDATE_KEYID_FLAG 0x00000400
#define CERT_STORE_BACKUP_RESTORE_FLAG 0x00000800
#define CERT_STORE_MAXIMUM_ALLOWED_FLAG 0x00001000
#define CERT_STORE_CREATE_NEW_FLAG 0x00002000
#define CERT_STORE_OPEN_EXISTING_FLAG 0x00004000
#define CERT_STORE_READONLY_FLAG 0x00008000
/* physical store dwFlags, also used by CertAddStoreToCollection as
* dwUpdateFlags
*/
#define CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG 0x1
#define CERT_PHYSICAL_STORE_OPEN_DISABLE_FLAG 0x2
#define CERT_PHYSICAL_STORE_REMOVE_OPEN_DISABLE_FLAG 0x4
#define CERT_PHYSICAL_STORE_INSERT_COMPUTER_NAME_ENABLE_FLAG 0x8
/* dwFlag values for CertEnumPhysicalStore callback */
#define CERT_PHYSICAL_STORE_PREDEFINED_ENUM_FLAG 0x1
/* predefined store names */
#if defined(__GNUC__)
# define CERT_PHYSICAL_STORE_DEFAULT_NAME (const WCHAR[])\
{'.','D','e','f','a','u','l','t','0'}
# define CERT_PHYSICAL_STORE_GROUP_POLICY_NAME (const WCHAR[])\
{'.','G','r','o','u','p','P','o','l','i','c','y',0}
# define CERT_PHYSICAL_STORE_LOCAL_MACHINE_NAME (const WCHAR[])\
{'.','L','o','c','a','l','M','a','c','h','i','n','e',0}
# define CERT_PHYSICAL_STORE_DS_USER_CERTIFICATE_NAME (const WCHAR[])\
{'.','U','s','e','r','C','e','r','t','i','f','i','c','a','t','e',0}
# define CERT_PHYSICAL_STORE_LOCAL_MACHINE_GROUP_POLICY_NAME (const WCHAR[])\
{'.','L','o','c','a','l','M','a','c','h','i','n','e','G','r','o','u','p',\
'P','o','l','i','c','y',0}
# define CERT_PHYSICAL_STORE_ENTERPRISE_NAME (const WCHAR[])\
{'.','E','n','t','e','r','p','r','i','s','e',0}
# define CERT_PHYSICAL_STORE_AUTH_ROOT_NAME (const WCHAR[])\
{'.','A','u','t','h','R','o','o','t',0}
#elif defined(_MSC_VER)
# define CERT_PHYSICAL_STORE_DEFAULT_NAME \
L".Default"
# define CERT_PHYSICAL_STORE_GROUP_POLICY_NAME \
L".GroupPolicy"
# define CERT_PHYSICAL_STORE_LOCAL_MACHINE_NAME \
L".LocalMachine"
# define CERT_PHYSICAL_STORE_DS_USER_CERTIFICATE_NAME \
L".UserCertificate"
# define CERT_PHYSICAL_STORE_LOCAL_MACHINE_GROUP_POLICY_NAME \
L".LocalMachineGroupPolicy"
# define CERT_PHYSICAL_STORE_ENTERPRISE_NAME \
L".Enterprise"
# define CERT_PHYSICAL_STORE_AUTH_ROOT_NAME \
L".AuthRoot"
#else
static
const
WCHAR
CERT_PHYSICAL_STORE_DEFAULT_NAME
[]
=
{
'.'
,
'D'
,
'e'
,
'f'
,
'a'
,
'u'
,
'l'
,
't'
,
'0'
};
static
const
WCHAR
CERT_PHYSICAL_STORE_GROUP_POLICY_NAME
[]
=
{
'.'
,
'G'
,
'r'
,
'o'
,
'u'
,
'p'
,
'P'
,
'o'
,
'l'
,
'i'
,
'c'
,
'y'
,
0
};
static
const
WCHAR
CERT_PHYSICAL_STORE_LOCAL_MACHINE_NAME
[]
=
{
'.'
,
'L'
,
'o'
,
'c'
,
'a'
,
'l'
,
'M'
,
'a'
,
'c'
,
'h'
,
'i'
,
'n'
,
'e'
,
0
};
static
const
WCHAR
CERT_PHYSICAL_STORE_DS_USER_CERTIFICATE_NAME
[]
=
{
'.'
,
'U'
,
's'
,
'e'
,
'r'
,
'C'
,
'e'
,
'r'
,
't'
,
'i'
,
'f'
,
'i'
,
'c'
,
'a'
,
't'
,
'e'
,
0
};
static
const
WCHAR
CERT_PHYSICAL_STORE_LOCAL_MACHINE_GROUP_POLICY_NAME
[]
=
{
'.'
,
'L'
,
'o'
,
'c'
,
'a'
,
'l'
,
'M'
,
'a'
,
'c'
,
'h'
,
'i'
,
'n'
,
'e'
,
'G'
,
'r'
,
'o'
,
'u'
,
'p'
,
'P'
,
'o'
,
'l'
,
'i'
,
'c'
,
'y'
,
0
};
static
const
WCHAR
CERT_PHYSICAL_STORE_ENTERPRISE_NAME
[]
=
{
'.'
,
'E'
,
'n'
,
't'
,
'e'
,
'r'
,
'p'
,
'r'
,
'i'
,
's'
,
'e'
,
0
};
static
const
WCHAR
CERT_PHYSICAL_STORE_AUTH_ROOT_NAME
[]
=
{
'.'
,
'A'
,
'u'
,
't'
,
'h'
,
'R'
,
'o'
,
'o'
,
't'
,
0
};
#endif
/* cert system store flags */
#define CERT_SYSTEM_STORE_MASK 0xffff0000
#define CERT_SYSTEM_STORE_RELOCATE_FLAG 0x80000000
/* CertFindChainInStore dwFindType types */
#define CERT_CHAIN_FIND_BY_ISSUER 1
/* function declarations */
/* advapi32.dll */
BOOL
WINAPI
CryptAcquireContextA
(
HCRYPTPROV
*
phProv
,
LPCSTR
pszContainer
,
...
...
@@ -615,12 +903,35 @@ HCERTSTORE WINAPI CertOpenSystemStoreW(HCRYPTPROV hProv,
PCCERT_CONTEXT
WINAPI
CertEnumCertificatesInStore
(
HCERTSTORE
hCertStore
,
PCCERT_CONTEXT
pPrev
);
BOOL
WINAPI
CertEnumSystemStoreLocation
(
DWORD
dwFlags
,
void
*
pvArg
,
PFN_CERT_ENUM_SYSTEM_STORE_LOCATION
pfnEnum
);
BOOL
WINAPI
CertEnumSystemStore
(
DWORD
dwFlags
,
void
*
pvSystemStoreLocationPara
,
void
*
pvArg
,
PFN_CERT_ENUM_SYSTEM_STORE
pfnEnum
);
BOOL
WINAPI
CertEnumPhysicalStore
(
const
void
*
pvSystemStore
,
DWORD
dwFlags
,
void
*
pvArg
,
PFN_CERT_ENUM_PHYSICAL_STORE
pfnEnum
);
BOOL
WINAPI
CertSaveStore
(
HCERTSTORE
hCertStore
,
DWORD
dwMsgAndCertEncodingType
,
DWORD
dwSaveAs
,
DWORD
dwSaveTo
,
void
*
pvSaveToPara
,
DWORD
dwFlags
);
PCCRL_CONTEXT
WINAPI
CertCreateCRLContext
(
DWORD
dwCertEncodingType
,
const
BYTE
*
pbCrlEncoded
,
DWORD
cbCrlEncoded
);
BOOL
WINAPI
CertAddStoreToCollection
(
HCERTSTORE
hCollectionStore
,
HCERTSTORE
hSiblingStore
,
DWORD
dwUpdateFlags
,
DWORD
dwPriority
);
void
WINAPI
CertRemoveStoreFromCollection
(
HCERTSTORE
hCollectionStore
,
HCERTSTORE
hSiblingStore
);
PCCERT_CHAIN_CONTEXT
WINAPI
CertFindChainInStore
(
HCERTSTORE
hCertStore
,
DWORD
dwCertEncodingType
,
DWORD
dwFindFlags
,
DWORD
dwFindType
,
const
void
*
pvFindPara
,
PCCERT_CHAIN_CONTEXT
pPrevChainContext
);
BOOL
WINAPI
CertVerifyCertificateChainPolicy
(
LPCSTR
szPolicyOID
,
PCCERT_CHAIN_CONTEXT
pChainContext
,
PCERT_CHAIN_POLICY_PARA
pPolicyPara
,
PCERT_CHAIN_POLICY_STATUS
pPolicyStatus
);
BOOL
WINAPI
CertCloseStore
(
HCERTSTORE
hCertStore
,
DWORD
dwFlags
);
BOOL
WINAPI
CertFreeCertificateContext
(
PCCERT_CONTEXT
pCertContext
);
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment