In WinCrypt.h I see:
#define CERT_CHAIN_POLICY_SSL ((LPCSTR) 4)
WINCRYPT32API BOOL WINAPI CertVerifyCertificateChainPolicy(
IN LPCSTR pszPolicyOID,
IN PCCERT_CHAIN_CONTEXT pChainContext,
IN PCERT_CHAIN_POLICY_PARA pPolicyPara,
IN OUT PCERT_CHAIN_POLICY_STATUS pPolicyStatus
);
The first argument takes CERT_CHAIN_POLICY_SSL. This appears to be a pointer to a C string, yet it is an integer!?
The pointer is obviously a 32bit integer, but what is it pointing at? If the number is < 255 it will take up a single byte, so is the C string in fact a single byte "string" (ie a byte)?
When conveting to another language that does support BYTE variables, I can just create a bVar (a BYTE variable) and assign it 4. Then I can pass a pointer to that BYTE variable?