Mercurial > games > semicongine
view semicongine/old/thirdparty/winim/winim/inc/wincrypt.nim @ 1191:239adab121a3 compiletime-tests
sync from bedroom to office
author | sam <sam@basx.dev> |
---|---|
date | Mon, 08 Jul 2024 01:16:53 +0700 |
parents | |
children |
line wrap: on
line source
#==================================================================== # # Winim - Windows API, COM, and CLR Module for Nim # Copyright (c) Chen Kai-Hung, Ward # #==================================================================== import winimbase import windef import winbase #include <wincrypt.h> #include <bcrypt.h> #include <ncrypt.h> #include <dpapi.h> type ALG_ID* = int32 HASHALGORITHM_ENUM* = int32 DSAFIPSVERSION_ENUM* = int32 HCRYPTOIDFUNCSET* = pointer HCRYPTOIDFUNCADDR* = pointer HCRYPTMSG* = pointer HCERTSTORE* = pointer HCERTSTOREPROV* = pointer HCRYPTDEFAULTCONTEXT* = pointer HCERT_SERVER_OCSP_RESPONSE* = pointer PRKEVENT* = pointer HCRYPTHASH* = ULONG_PTR HCRYPTKEY* = ULONG_PTR HCRYPTPROV* = ULONG_PTR HCRYPTPROV_OR_NCRYPT_KEY_HANDLE* = ULONG_PTR HCRYPTPROV_LEGACY* = ULONG_PTR BCRYPT_HANDLE* = PVOID BCRYPT_ALG_HANDLE* = PVOID BCRYPT_KEY_HANDLE* = PVOID BCRYPT_HASH_HANDLE* = PVOID BCRYPT_SECRET_HANDLE* = PVOID SECURITY_STATUS* = LONG NCRYPT_HANDLE* = ULONG_PTR NCRYPT_PROV_HANDLE* = ULONG_PTR NCRYPT_KEY_HANDLE* = ULONG_PTR NCRYPT_HASH_HANDLE* = ULONG_PTR NCRYPT_SECRET_HANDLE* = ULONG_PTR HCRYPTASYNC* = HANDLE PHCRYPTASYNC* = ptr HANDLE HCERTCHAINENGINE* = HANDLE CMS_KEY_INFO* {.pure.} = object dwVersion*: DWORD Algid*: ALG_ID pbOID*: ptr BYTE cbOID*: DWORD PCMS_KEY_INFO* = ptr CMS_KEY_INFO HMAC_INFO* {.pure.} = object HashAlgid*: ALG_ID pbInnerString*: ptr BYTE cbInnerString*: DWORD pbOuterString*: ptr BYTE cbOuterString*: DWORD PHMAC_INFO* = ptr HMAC_INFO SCHANNEL_ALG* {.pure.} = object dwUse*: DWORD Algid*: ALG_ID cBits*: DWORD dwFlags*: DWORD dwReserved*: DWORD PSCHANNEL_ALG* = ptr SCHANNEL_ALG BLOBHEADER* {.pure.} = object bType*: BYTE bVersion*: BYTE reserved*: WORD aiKeyAlg*: ALG_ID PUBLICKEYSTRUC* = BLOBHEADER DHPUBKEY* {.pure.} = object magic*: DWORD bitlen*: DWORD DSSPUBKEY* = DHPUBKEY KEAPUBKEY* = DHPUBKEY TEKPUBKEY* = DHPUBKEY DSSSEED* {.pure.} = object counter*: DWORD seed*: array[20, BYTE] DHPUBKEY_VER3* {.pure.} = object magic*: DWORD bitlenP*: DWORD bitlenQ*: DWORD bitlenJ*: DWORD DSSSeed*: DSSSEED DSSPUBKEY_VER3* = DHPUBKEY_VER3 DHPRIVKEY_VER3* {.pure.} = object magic*: DWORD bitlenP*: DWORD bitlenQ*: DWORD bitlenJ*: DWORD bitlenX*: DWORD DSSSeed*: DSSSEED DSSPRIVKEY_VER3* = DHPRIVKEY_VER3 KEY_TYPE_SUBTYPE* {.pure.} = object dwKeySpec*: DWORD Type*: GUID Subtype*: GUID PKEY_TYPE_SUBTYPE* = ptr KEY_TYPE_SUBTYPE CRYPT_RC4_KEY_STATE* {.pure.} = object Key*: array[16, uint8] SBox*: array[256, uint8] i*: uint8 j*: uint8 PCRYPT_RC4_KEY_STATE* = ptr CRYPT_RC4_KEY_STATE CRYPT_DES_KEY_STATE* {.pure.} = object Key*: array[8, uint8] IV*: array[8, uint8] Feedback*: array[8, uint8] PCRYPT_DES_KEY_STATE* = ptr CRYPT_DES_KEY_STATE CRYPT_3DES_KEY_STATE* {.pure.} = object Key*: array[24, uint8] IV*: array[8, uint8] Feedback*: array[8, uint8] PCRYPT_3DES_KEY_STATE* = ptr CRYPT_3DES_KEY_STATE CRYPT_AES_128_KEY_STATE* {.pure.} = object Key*: array[16, uint8] IV*: array[16, uint8] EncryptionState*: array[11, array[16, uint8]] DecryptionState*: array[11, array[16, uint8]] Feedback*: array[16, uint8] PCRYPT_AES_128_KEY_STATE* = ptr CRYPT_AES_128_KEY_STATE CRYPT_AES_256_KEY_STATE* {.pure.} = object Key*: array[32, uint8] IV*: array[16, uint8] EncryptionState*: array[15, array[16, uint8]] DecryptionState*: array[15, array[16, uint8]] Feedback*: array[16, uint8] PCRYPT_AES_256_KEY_STATE* = ptr CRYPT_AES_256_KEY_STATE CRYPT_INTEGER_BLOB* {.pure.} = object cbData*: DWORD pbData*: ptr BYTE PCRYPT_INTEGER_BLOB* = ptr CRYPT_INTEGER_BLOB CRYPT_UINT_BLOB* = CRYPT_INTEGER_BLOB PCRYPT_UINT_BLOB* = ptr CRYPT_INTEGER_BLOB CRYPT_OBJID_BLOB* = CRYPT_INTEGER_BLOB PCRYPT_OBJID_BLOB* = ptr CRYPT_INTEGER_BLOB CERT_NAME_BLOB* = CRYPT_INTEGER_BLOB PCERT_NAME_BLOB* = ptr CRYPT_INTEGER_BLOB CERT_RDN_VALUE_BLOB* = CRYPT_INTEGER_BLOB PCERT_RDN_VALUE_BLOB* = ptr CRYPT_INTEGER_BLOB CERT_BLOB* = CRYPT_INTEGER_BLOB PCERT_BLOB* = ptr CRYPT_INTEGER_BLOB CRL_BLOB* = CRYPT_INTEGER_BLOB PCRL_BLOB* = ptr CRYPT_INTEGER_BLOB DATA_BLOB* = CRYPT_INTEGER_BLOB PDATA_BLOB* = ptr CRYPT_INTEGER_BLOB CRYPT_DATA_BLOB* = CRYPT_INTEGER_BLOB PCRYPT_DATA_BLOB* = ptr CRYPT_INTEGER_BLOB CRYPT_HASH_BLOB* = CRYPT_INTEGER_BLOB PCRYPT_HASH_BLOB* = ptr CRYPT_INTEGER_BLOB CRYPT_DIGEST_BLOB* = CRYPT_INTEGER_BLOB PCRYPT_DIGEST_BLOB* = ptr CRYPT_INTEGER_BLOB CRYPT_DER_BLOB* = CRYPT_INTEGER_BLOB PCRYPT_DER_BLOB* = ptr CRYPT_INTEGER_BLOB CRYPT_ATTR_BLOB* = CRYPT_INTEGER_BLOB PCRYPT_ATTR_BLOB* = ptr CRYPT_INTEGER_BLOB CMS_DH_KEY_INFO* {.pure.} = object dwVersion*: DWORD Algid*: ALG_ID pszContentEncObjId*: LPSTR PubInfo*: CRYPT_DATA_BLOB pReserved*: pointer PCMS_DH_KEY_INFO* = ptr CMS_DH_KEY_INFO BCRYPT_KEY_LENGTHS_STRUCT* {.pure.} = object dwMinLength*: ULONG dwMaxLength*: ULONG dwIncrement*: ULONG BCRYPT_AUTH_TAG_LENGTHS_STRUCT* = BCRYPT_KEY_LENGTHS_STRUCT BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO* {.pure.} = object cbSize*: ULONG dwInfoVersion*: ULONG pbNonce*: PUCHAR cbNonce*: ULONG pbAuthData*: PUCHAR cbAuthData*: ULONG pbTag*: PUCHAR cbTag*: ULONG pbMacContext*: PUCHAR cbMacContext*: ULONG cbAAD*: ULONG cbData*: ULONGLONG dwFlags*: ULONG PBCRYPT_AUTHENTICATED_CIPHER_MODE_INFO* = ptr BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO BCryptBuffer* {.pure.} = object cbBuffer*: ULONG BufferType*: ULONG pvBuffer*: PVOID PBCryptBuffer* = ptr BCryptBuffer BCryptBufferDesc* {.pure.} = object ulVersion*: ULONG cBuffers*: ULONG pBuffers*: PBCryptBuffer PBCryptBufferDesc* = ptr BCryptBufferDesc BCRYPT_ECCKEY_BLOB* {.pure.} = object dwMagic*: ULONG cbKey*: ULONG PBCRYPT_ECCKEY_BLOB* = ptr BCRYPT_ECCKEY_BLOB BCRYPT_DH_KEY_BLOB* {.pure.} = object dwMagic*: ULONG cbKey*: ULONG PBCRYPT_DH_KEY_BLOB* = ptr BCRYPT_DH_KEY_BLOB BCRYPT_DSA_KEY_BLOB* {.pure.} = object dwMagic*: ULONG cbKey*: ULONG Count*: array[4, UCHAR] Seed*: array[20, UCHAR] q*: array[20, UCHAR] PBCRYPT_DSA_KEY_BLOB* = ptr BCRYPT_DSA_KEY_BLOB BCRYPT_DSA_KEY_BLOB_V2* {.pure.} = object dwMagic*: ULONG cbKey*: ULONG hashAlgorithm*: HASHALGORITHM_ENUM standardVersion*: DSAFIPSVERSION_ENUM cbSeedLength*: ULONG cbGroupSize*: ULONG Count*: array[4, UCHAR] PBCRYPT_DSA_KEY_BLOB_V2* = ptr BCRYPT_DSA_KEY_BLOB_V2 BCRYPT_KEY_DATA_BLOB_HEADER* {.pure.} = object dwMagic*: ULONG dwVersion*: ULONG cbKeyData*: ULONG PBCRYPT_KEY_DATA_BLOB_HEADER* = ptr BCRYPT_KEY_DATA_BLOB_HEADER BCRYPT_INTERFACE_VERSION* {.pure.} = object MajorVersion*: USHORT MinorVersion*: USHORT PBCRYPT_INTERFACE_VERSION* = ptr BCRYPT_INTERFACE_VERSION CRYPT_INTERFACE_REG* {.pure.} = object dwInterface*: ULONG dwFlags*: ULONG cFunctions*: ULONG rgpszFunctions*: ptr PWSTR PCRYPT_INTERFACE_REG* = ptr CRYPT_INTERFACE_REG CRYPT_IMAGE_REG* {.pure.} = object pszImage*: PWSTR cInterfaces*: ULONG rgpInterfaces*: ptr PCRYPT_INTERFACE_REG PCRYPT_IMAGE_REG* = ptr CRYPT_IMAGE_REG CRYPT_PROVIDER_REG* {.pure.} = object cAliases*: ULONG rgpszAliases*: ptr PWSTR pUM*: PCRYPT_IMAGE_REG pKM*: PCRYPT_IMAGE_REG PCRYPT_PROVIDER_REG* = ptr CRYPT_PROVIDER_REG CRYPT_PROVIDERS* {.pure.} = object cProviders*: ULONG rgpszProviders*: ptr PWSTR PCRYPT_PROVIDERS* = ptr CRYPT_PROVIDERS CRYPT_CONTEXT_CONFIG* {.pure.} = object dwFlags*: ULONG dwReserved*: ULONG PCRYPT_CONTEXT_CONFIG* = ptr CRYPT_CONTEXT_CONFIG CRYPT_CONTEXT_FUNCTION_CONFIG* {.pure.} = object dwFlags*: ULONG dwReserved*: ULONG PCRYPT_CONTEXT_FUNCTION_CONFIG* = ptr CRYPT_CONTEXT_FUNCTION_CONFIG CRYPT_CONTEXTS* {.pure.} = object cContexts*: ULONG rgpszContexts*: ptr PWSTR PCRYPT_CONTEXTS* = ptr CRYPT_CONTEXTS CRYPT_CONTEXT_FUNCTIONS* {.pure.} = object cFunctions*: ULONG rgpszFunctions*: ptr PWSTR PCRYPT_CONTEXT_FUNCTIONS* = ptr CRYPT_CONTEXT_FUNCTIONS CRYPT_CONTEXT_FUNCTION_PROVIDERS* {.pure.} = object cProviders*: ULONG rgpszProviders*: ptr PWSTR PCRYPT_CONTEXT_FUNCTION_PROVIDERS* = ptr CRYPT_CONTEXT_FUNCTION_PROVIDERS CRYPT_PROPERTY_REF* {.pure.} = object pszProperty*: PWSTR cbValue*: ULONG pbValue*: PUCHAR PCRYPT_PROPERTY_REF* = ptr CRYPT_PROPERTY_REF CRYPT_IMAGE_REF* {.pure.} = object pszImage*: PWSTR dwFlags*: ULONG PCRYPT_IMAGE_REF* = ptr CRYPT_IMAGE_REF CRYPT_PROVIDER_REF* {.pure.} = object dwInterface*: ULONG pszFunction*: PWSTR pszProvider*: PWSTR cProperties*: ULONG rgpProperties*: ptr PCRYPT_PROPERTY_REF pUM*: PCRYPT_IMAGE_REF pKM*: PCRYPT_IMAGE_REF PCRYPT_PROVIDER_REF* = ptr CRYPT_PROVIDER_REF CRYPT_PROVIDER_REFS* {.pure.} = object cProviders*: ULONG rgpProviders*: ptr PCRYPT_PROVIDER_REF PCRYPT_PROVIDER_REFS* = ptr CRYPT_PROVIDER_REFS NCryptBuffer* = BCryptBuffer PNCryptBuffer* = ptr BCryptBuffer NCryptBufferDesc* = BCryptBufferDesc PNCryptBufferDesc* = ptr BCryptBufferDesc NCRYPT_CIPHER_PADDING_INFO* {.pure.} = object cbSize*: ULONG dwFlags*: DWORD pbIV*: PUCHAR cbIV*: ULONG pbOtherInfo*: PUCHAR cbOtherInfo*: ULONG PNCRYPT_CIPHER_PADDING_INFO* = ptr NCRYPT_CIPHER_PADDING_INFO NCRYPT_KEY_BLOB_HEADER* {.pure.} = object cbSize*: ULONG dwMagic*: ULONG cbAlgName*: ULONG cbKeyData*: ULONG PNCRYPT_KEY_BLOB_HEADER* = ptr NCRYPT_KEY_BLOB_HEADER CRYPT_BIT_BLOB* {.pure.} = object cbData*: DWORD pbData*: ptr BYTE cUnusedBits*: DWORD PCRYPT_BIT_BLOB* = ptr CRYPT_BIT_BLOB CRYPT_ALGORITHM_IDENTIFIER* {.pure.} = object pszObjId*: LPSTR Parameters*: CRYPT_OBJID_BLOB PCRYPT_ALGORITHM_IDENTIFIER* = ptr CRYPT_ALGORITHM_IDENTIFIER CRYPT_OBJID_TABLE* {.pure.} = object dwAlgId*: DWORD pszObjId*: LPCSTR PCRYPT_OBJID_TABLE* = ptr CRYPT_OBJID_TABLE CRYPT_HASH_INFO* {.pure.} = object HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER Hash*: CRYPT_HASH_BLOB PCRYPT_HASH_INFO* = ptr CRYPT_HASH_INFO CERT_EXTENSION* {.pure.} = object pszObjId*: LPSTR fCritical*: WINBOOL Value*: CRYPT_OBJID_BLOB PCERT_EXTENSION* = ptr CERT_EXTENSION PCCERT_EXTENSION* = ptr CERT_EXTENSION CRYPT_ATTRIBUTE_TYPE_VALUE* {.pure.} = object pszObjId*: LPSTR Value*: CRYPT_OBJID_BLOB PCRYPT_ATTRIBUTE_TYPE_VALUE* = ptr CRYPT_ATTRIBUTE_TYPE_VALUE CRYPT_ATTRIBUTE* {.pure.} = object pszObjId*: LPSTR cValue*: DWORD rgValue*: PCRYPT_ATTR_BLOB PCRYPT_ATTRIBUTE* = ptr CRYPT_ATTRIBUTE CRYPT_ATTRIBUTES* {.pure.} = object cAttr*: DWORD rgAttr*: PCRYPT_ATTRIBUTE PCRYPT_ATTRIBUTES* = ptr CRYPT_ATTRIBUTES CERT_RDN_ATTR* {.pure.} = object pszObjId*: LPSTR dwValueType*: DWORD Value*: CERT_RDN_VALUE_BLOB PCERT_RDN_ATTR* = ptr CERT_RDN_ATTR CERT_RDN* {.pure.} = object cRDNAttr*: DWORD rgRDNAttr*: PCERT_RDN_ATTR PCERT_RDN* = ptr CERT_RDN CERT_NAME_INFO* {.pure.} = object cRDN*: DWORD rgRDN*: PCERT_RDN PCERT_NAME_INFO* = ptr CERT_NAME_INFO CERT_NAME_VALUE* {.pure.} = object dwValueType*: DWORD Value*: CERT_RDN_VALUE_BLOB PCERT_NAME_VALUE* = ptr CERT_NAME_VALUE CERT_PUBLIC_KEY_INFO* {.pure.} = object Algorithm*: CRYPT_ALGORITHM_IDENTIFIER PublicKey*: CRYPT_BIT_BLOB PCERT_PUBLIC_KEY_INFO* = ptr CERT_PUBLIC_KEY_INFO CRYPT_ECC_PRIVATE_KEY_INFO* {.pure.} = object dwVersion*: DWORD PrivateKey*: CRYPT_DER_BLOB szCurveOid*: LPSTR PublicKey*: CRYPT_BIT_BLOB PCRYPT_ECC_PRIVATE_KEY_INFO* = ptr CRYPT_ECC_PRIVATE_KEY_INFO CRYPT_PRIVATE_KEY_INFO* {.pure.} = object Version*: DWORD Algorithm*: CRYPT_ALGORITHM_IDENTIFIER PrivateKey*: CRYPT_DER_BLOB pAttributes*: PCRYPT_ATTRIBUTES PCRYPT_PRIVATE_KEY_INFO* = ptr CRYPT_PRIVATE_KEY_INFO CRYPT_ENCRYPTED_PRIVATE_KEY_INFO* {.pure.} = object EncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER EncryptedPrivateKey*: CRYPT_DATA_BLOB PCRYPT_ENCRYPTED_PRIVATE_KEY_INFO* = ptr CRYPT_ENCRYPTED_PRIVATE_KEY_INFO PCRYPT_RESOLVE_HCRYPTPROV_FUNC* = proc (pPrivateKeyInfo: ptr CRYPT_PRIVATE_KEY_INFO, phCryptProv: ptr HCRYPTPROV, pVoidResolveFunc: LPVOID): WINBOOL {.stdcall.} PCRYPT_DECRYPT_PRIVATE_KEY_FUNC* = proc (Algorithm: CRYPT_ALGORITHM_IDENTIFIER, EncryptedPrivateKey: CRYPT_DATA_BLOB, pbClearTextKey: ptr BYTE, pcbClearTextKey: ptr DWORD, pVoidDecryptFunc: LPVOID): WINBOOL {.stdcall.} CRYPT_PKCS8_IMPORT_PARAMS* {.pure.} = object PrivateKey*: CRYPT_DIGEST_BLOB pResolvehCryptProvFunc*: PCRYPT_RESOLVE_HCRYPTPROV_FUNC pVoidResolveFunc*: LPVOID pDecryptPrivateKeyFunc*: PCRYPT_DECRYPT_PRIVATE_KEY_FUNC pVoidDecryptFunc*: LPVOID PCRYPT_PKCS8_IMPORT_PARAMS* = ptr CRYPT_PKCS8_IMPORT_PARAMS CRYPT_PRIVATE_KEY_BLOB_AND_PARAMS* = CRYPT_PKCS8_IMPORT_PARAMS PCRYPT_PRIVATE_KEY_BLOB_AND_PARAMS* = ptr CRYPT_PKCS8_IMPORT_PARAMS PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC* = proc (pAlgorithm: ptr CRYPT_ALGORITHM_IDENTIFIER, pClearTextPrivateKey: ptr CRYPT_DATA_BLOB, pbEncryptedKey: ptr BYTE, pcbEncryptedKey: ptr DWORD, pVoidEncryptFunc: LPVOID): WINBOOL {.stdcall.} CRYPT_PKCS8_EXPORT_PARAMS* {.pure.} = object hCryptProv*: HCRYPTPROV dwKeySpec*: DWORD pszPrivateKeyObjId*: LPSTR pEncryptPrivateKeyFunc*: PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC pVoidEncryptFunc*: LPVOID PCRYPT_PKCS8_EXPORT_PARAMS* = ptr CRYPT_PKCS8_EXPORT_PARAMS CERT_INFO* {.pure.} = object dwVersion*: DWORD SerialNumber*: CRYPT_INTEGER_BLOB SignatureAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER Issuer*: CERT_NAME_BLOB NotBefore*: FILETIME NotAfter*: FILETIME Subject*: CERT_NAME_BLOB SubjectPublicKeyInfo*: CERT_PUBLIC_KEY_INFO IssuerUniqueId*: CRYPT_BIT_BLOB SubjectUniqueId*: CRYPT_BIT_BLOB cExtension*: DWORD rgExtension*: PCERT_EXTENSION PCERT_INFO* = ptr CERT_INFO CRL_ENTRY* {.pure.} = object SerialNumber*: CRYPT_INTEGER_BLOB RevocationDate*: FILETIME cExtension*: DWORD rgExtension*: PCERT_EXTENSION PCRL_ENTRY* = ptr CRL_ENTRY CRL_INFO* {.pure.} = object dwVersion*: DWORD SignatureAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER Issuer*: CERT_NAME_BLOB ThisUpdate*: FILETIME NextUpdate*: FILETIME cCRLEntry*: DWORD rgCRLEntry*: PCRL_ENTRY cExtension*: DWORD rgExtension*: PCERT_EXTENSION PCRL_INFO* = ptr CRL_INFO CERT_OR_CRL_BLOB* {.pure.} = object dwChoice*: DWORD cbEncoded*: DWORD pbEncoded*: ptr BYTE PCERT_OR_CRL_BLOB* = ptr CERT_OR_CRL_BLOB CERT_OR_CRL_BUNDLE* {.pure.} = object cItem*: DWORD rgItem*: PCERT_OR_CRL_BLOB PCERT_OR_CRL_BUNDLE* = ptr CERT_OR_CRL_BUNDLE CERT_REQUEST_INFO* {.pure.} = object dwVersion*: DWORD Subject*: CERT_NAME_BLOB SubjectPublicKeyInfo*: CERT_PUBLIC_KEY_INFO cAttribute*: DWORD rgAttribute*: PCRYPT_ATTRIBUTE PCERT_REQUEST_INFO* = ptr CERT_REQUEST_INFO CERT_KEYGEN_REQUEST_INFO* {.pure.} = object dwVersion*: DWORD SubjectPublicKeyInfo*: CERT_PUBLIC_KEY_INFO pwszChallengeString*: LPWSTR PCERT_KEYGEN_REQUEST_INFO* = ptr CERT_KEYGEN_REQUEST_INFO CERT_SIGNED_CONTENT_INFO* {.pure.} = object ToBeSigned*: CRYPT_DER_BLOB SignatureAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER Signature*: CRYPT_BIT_BLOB PCERT_SIGNED_CONTENT_INFO* = ptr CERT_SIGNED_CONTENT_INFO CTL_USAGE* {.pure.} = object cUsageIdentifier*: DWORD rgpszUsageIdentifier*: ptr LPSTR PCTL_USAGE* = ptr CTL_USAGE CERT_ENHKEY_USAGE* = CTL_USAGE PCERT_ENHKEY_USAGE* = ptr CTL_USAGE PCCTL_USAGE* = ptr CTL_USAGE PCCERT_ENHKEY_USAGE* = ptr CERT_ENHKEY_USAGE CTL_ENTRY* {.pure.} = object SubjectIdentifier*: CRYPT_DATA_BLOB cAttribute*: DWORD rgAttribute*: PCRYPT_ATTRIBUTE PCTL_ENTRY* = ptr CTL_ENTRY CTL_INFO* {.pure.} = object dwVersion*: DWORD SubjectUsage*: CTL_USAGE ListIdentifier*: CRYPT_DATA_BLOB SequenceNumber*: CRYPT_INTEGER_BLOB ThisUpdate*: FILETIME NextUpdate*: FILETIME SubjectAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER cCTLEntry*: DWORD rgCTLEntry*: PCTL_ENTRY cExtension*: DWORD rgExtension*: PCERT_EXTENSION PCTL_INFO* = ptr CTL_INFO CRYPT_TIME_STAMP_REQUEST_INFO* {.pure.} = object pszTimeStampAlgorithm*: LPSTR pszContentType*: LPSTR Content*: CRYPT_OBJID_BLOB cAttribute*: DWORD rgAttribute*: PCRYPT_ATTRIBUTE PCRYPT_TIME_STAMP_REQUEST_INFO* = ptr CRYPT_TIME_STAMP_REQUEST_INFO CRYPT_ENROLLMENT_NAME_VALUE_PAIR* {.pure.} = object pwszName*: LPWSTR pwszValue*: LPWSTR PCRYPT_ENROLLMENT_NAME_VALUE_PAIR* = ptr CRYPT_ENROLLMENT_NAME_VALUE_PAIR CRYPT_CSP_PROVIDER* {.pure.} = object dwKeySpec*: DWORD pwszProviderName*: LPWSTR Signature*: CRYPT_BIT_BLOB PCRYPT_CSP_PROVIDER* = ptr CRYPT_CSP_PROVIDER PFN_CRYPT_ALLOC* = proc (cbSize: int): LPVOID {.stdcall.} PFN_CRYPT_FREE* = proc (pv: LPVOID): VOID {.stdcall.} CRYPT_ENCODE_PARA* {.pure.} = object cbSize*: DWORD pfnAlloc*: PFN_CRYPT_ALLOC pfnFree*: PFN_CRYPT_FREE PCRYPT_ENCODE_PARA* = ptr CRYPT_ENCODE_PARA CRYPT_DECODE_PARA* {.pure.} = object cbSize*: DWORD pfnAlloc*: PFN_CRYPT_ALLOC pfnFree*: PFN_CRYPT_FREE PCRYPT_DECODE_PARA* = ptr CRYPT_DECODE_PARA CERT_EXTENSIONS* {.pure.} = object cExtension*: DWORD rgExtension*: PCERT_EXTENSION PCERT_EXTENSIONS* = ptr CERT_EXTENSIONS CERT_AUTHORITY_KEY_ID_INFO* {.pure.} = object KeyId*: CRYPT_DATA_BLOB CertIssuer*: CERT_NAME_BLOB CertSerialNumber*: CRYPT_INTEGER_BLOB PCERT_AUTHORITY_KEY_ID_INFO* = ptr CERT_AUTHORITY_KEY_ID_INFO CERT_PRIVATE_KEY_VALIDITY* {.pure.} = object NotBefore*: FILETIME NotAfter*: FILETIME PCERT_PRIVATE_KEY_VALIDITY* = ptr CERT_PRIVATE_KEY_VALIDITY CERT_KEY_ATTRIBUTES_INFO* {.pure.} = object KeyId*: CRYPT_DATA_BLOB IntendedKeyUsage*: CRYPT_BIT_BLOB pPrivateKeyUsagePeriod*: PCERT_PRIVATE_KEY_VALIDITY PCERT_KEY_ATTRIBUTES_INFO* = ptr CERT_KEY_ATTRIBUTES_INFO CERT_POLICY_ID* {.pure.} = object cCertPolicyElementId*: DWORD rgpszCertPolicyElementId*: ptr LPSTR PCERT_POLICY_ID* = ptr CERT_POLICY_ID CERT_KEY_USAGE_RESTRICTION_INFO* {.pure.} = object cCertPolicyId*: DWORD rgCertPolicyId*: PCERT_POLICY_ID RestrictedKeyUsage*: CRYPT_BIT_BLOB PCERT_KEY_USAGE_RESTRICTION_INFO* = ptr CERT_KEY_USAGE_RESTRICTION_INFO CERT_OTHER_NAME* {.pure.} = object pszObjId*: LPSTR Value*: CRYPT_OBJID_BLOB PCERT_OTHER_NAME* = ptr CERT_OTHER_NAME CERT_ALT_NAME_ENTRY_UNION1* {.pure, union.} = object pOtherName*: PCERT_OTHER_NAME pwszRfc822Name*: LPWSTR pwszDNSName*: LPWSTR DirectoryName*: CERT_NAME_BLOB pwszURL*: LPWSTR IPAddress*: CRYPT_DATA_BLOB pszRegisteredID*: LPSTR CERT_ALT_NAME_ENTRY* {.pure.} = object dwAltNameChoice*: DWORD union1*: CERT_ALT_NAME_ENTRY_UNION1 PCERT_ALT_NAME_ENTRY* = ptr CERT_ALT_NAME_ENTRY CERT_ALT_NAME_INFO* {.pure.} = object cAltEntry*: DWORD rgAltEntry*: PCERT_ALT_NAME_ENTRY PCERT_ALT_NAME_INFO* = ptr CERT_ALT_NAME_INFO CERT_BASIC_CONSTRAINTS_INFO* {.pure.} = object SubjectType*: CRYPT_BIT_BLOB fPathLenConstraint*: WINBOOL dwPathLenConstraint*: DWORD cSubtreesConstraint*: DWORD rgSubtreesConstraint*: ptr CERT_NAME_BLOB PCERT_BASIC_CONSTRAINTS_INFO* = ptr CERT_BASIC_CONSTRAINTS_INFO CERT_BASIC_CONSTRAINTS2_INFO* {.pure.} = object fCA*: WINBOOL fPathLenConstraint*: WINBOOL dwPathLenConstraint*: DWORD PCERT_BASIC_CONSTRAINTS2_INFO* = ptr CERT_BASIC_CONSTRAINTS2_INFO CERT_POLICY_QUALIFIER_INFO* {.pure.} = object pszPolicyQualifierId*: LPSTR Qualifier*: CRYPT_OBJID_BLOB PCERT_POLICY_QUALIFIER_INFO* = ptr CERT_POLICY_QUALIFIER_INFO CERT_POLICY_INFO* {.pure.} = object pszPolicyIdentifier*: LPSTR cPolicyQualifier*: DWORD rgPolicyQualifier*: ptr CERT_POLICY_QUALIFIER_INFO PCERT_POLICY_INFO* = ptr CERT_POLICY_INFO CERT_POLICIES_INFO* {.pure.} = object cPolicyInfo*: DWORD rgPolicyInfo*: ptr CERT_POLICY_INFO PCERT_POLICIES_INFO* = ptr CERT_POLICIES_INFO CERT_POLICY_QUALIFIER_NOTICE_REFERENCE* {.pure.} = object pszOrganization*: LPSTR cNoticeNumbers*: DWORD rgNoticeNumbers*: ptr int32 PCERT_POLICY_QUALIFIER_NOTICE_REFERENCE* = ptr CERT_POLICY_QUALIFIER_NOTICE_REFERENCE CERT_POLICY_QUALIFIER_USER_NOTICE* {.pure.} = object pNoticeReference*: ptr CERT_POLICY_QUALIFIER_NOTICE_REFERENCE pszDisplayText*: LPWSTR PCERT_POLICY_QUALIFIER_USER_NOTICE* = ptr CERT_POLICY_QUALIFIER_USER_NOTICE CPS_URLS* {.pure.} = object pszURL*: LPWSTR pAlgorithm*: ptr CRYPT_ALGORITHM_IDENTIFIER pDigest*: ptr CRYPT_DATA_BLOB PCPS_URLS* = ptr CPS_URLS CERT_POLICY95_QUALIFIER1* {.pure.} = object pszPracticesReference*: LPWSTR pszNoticeIdentifier*: LPSTR pszNSINoticeIdentifier*: LPSTR cCPSURLs*: DWORD rgCPSURLs*: ptr CPS_URLS PCERT_POLICY95_QUALIFIER1* = ptr CERT_POLICY95_QUALIFIER1 CERT_POLICY_MAPPING* {.pure.} = object pszIssuerDomainPolicy*: LPSTR pszSubjectDomainPolicy*: LPSTR PCERT_POLICY_MAPPING* = ptr CERT_POLICY_MAPPING CERT_POLICY_MAPPINGS_INFO* {.pure.} = object cPolicyMapping*: DWORD rgPolicyMapping*: PCERT_POLICY_MAPPING PCERT_POLICY_MAPPINGS_INFO* = ptr CERT_POLICY_MAPPINGS_INFO CERT_POLICY_CONSTRAINTS_INFO* {.pure.} = object fRequireExplicitPolicy*: WINBOOL dwRequireExplicitPolicySkipCerts*: DWORD fInhibitPolicyMapping*: WINBOOL dwInhibitPolicyMappingSkipCerts*: DWORD PCERT_POLICY_CONSTRAINTS_INFO* = ptr CERT_POLICY_CONSTRAINTS_INFO CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY* {.pure.} = object pszObjId*: LPSTR cValue*: DWORD rgValue*: PCRYPT_DER_BLOB PCRYPT_CONTENT_INFO_SEQUENCE_OF_ANY* = ptr CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY CRYPT_CONTENT_INFO* {.pure.} = object pszObjId*: LPSTR Content*: CRYPT_DER_BLOB PCRYPT_CONTENT_INFO* = ptr CRYPT_CONTENT_INFO CRYPT_SEQUENCE_OF_ANY* {.pure.} = object cValue*: DWORD rgValue*: PCRYPT_DER_BLOB PCRYPT_SEQUENCE_OF_ANY* = ptr CRYPT_SEQUENCE_OF_ANY CERT_AUTHORITY_KEY_ID2_INFO* {.pure.} = object KeyId*: CRYPT_DATA_BLOB AuthorityCertIssuer*: CERT_ALT_NAME_INFO AuthorityCertSerialNumber*: CRYPT_INTEGER_BLOB PCERT_AUTHORITY_KEY_ID2_INFO* = ptr CERT_AUTHORITY_KEY_ID2_INFO CERT_ACCESS_DESCRIPTION* {.pure.} = object pszAccessMethod*: LPSTR AccessLocation*: CERT_ALT_NAME_ENTRY PCERT_ACCESS_DESCRIPTION* = ptr CERT_ACCESS_DESCRIPTION CERT_AUTHORITY_INFO_ACCESS* {.pure.} = object cAccDescr*: DWORD rgAccDescr*: PCERT_ACCESS_DESCRIPTION PCERT_AUTHORITY_INFO_ACCESS* = ptr CERT_AUTHORITY_INFO_ACCESS CERT_SUBJECT_INFO_ACCESS* = CERT_AUTHORITY_INFO_ACCESS PCERT_SUBJECT_INFO_ACCESS* = ptr CERT_AUTHORITY_INFO_ACCESS CRL_DIST_POINT_NAME_UNION1* {.pure, union.} = object FullName*: CERT_ALT_NAME_INFO CRL_DIST_POINT_NAME* {.pure.} = object dwDistPointNameChoice*: DWORD union1*: CRL_DIST_POINT_NAME_UNION1 PCRL_DIST_POINT_NAME* = ptr CRL_DIST_POINT_NAME CRL_DIST_POINT* {.pure.} = object DistPointName*: CRL_DIST_POINT_NAME ReasonFlags*: CRYPT_BIT_BLOB CRLIssuer*: CERT_ALT_NAME_INFO PCRL_DIST_POINT* = ptr CRL_DIST_POINT CRL_DIST_POINTS_INFO* {.pure.} = object cDistPoint*: DWORD rgDistPoint*: PCRL_DIST_POINT PCRL_DIST_POINTS_INFO* = ptr CRL_DIST_POINTS_INFO CROSS_CERT_DIST_POINTS_INFO* {.pure.} = object dwSyncDeltaTime*: DWORD cDistPoint*: DWORD rgDistPoint*: PCERT_ALT_NAME_INFO PCROSS_CERT_DIST_POINTS_INFO* = ptr CROSS_CERT_DIST_POINTS_INFO CERT_PAIR* {.pure.} = object Forward*: CERT_BLOB Reverse*: CERT_BLOB PCERT_PAIR* = ptr CERT_PAIR CRL_ISSUING_DIST_POINT* {.pure.} = object DistPointName*: CRL_DIST_POINT_NAME fOnlyContainsUserCerts*: WINBOOL fOnlyContainsCACerts*: WINBOOL OnlySomeReasonFlags*: CRYPT_BIT_BLOB fIndirectCRL*: WINBOOL PCRL_ISSUING_DIST_POINT* = ptr CRL_ISSUING_DIST_POINT CERT_GENERAL_SUBTREE* {.pure.} = object Base*: CERT_ALT_NAME_ENTRY dwMinimum*: DWORD fMaximum*: WINBOOL dwMaximum*: DWORD PCERT_GENERAL_SUBTREE* = ptr CERT_GENERAL_SUBTREE CERT_NAME_CONSTRAINTS_INFO* {.pure.} = object cPermittedSubtree*: DWORD rgPermittedSubtree*: PCERT_GENERAL_SUBTREE cExcludedSubtree*: DWORD rgExcludedSubtree*: PCERT_GENERAL_SUBTREE PCERT_NAME_CONSTRAINTS_INFO* = ptr CERT_NAME_CONSTRAINTS_INFO CERT_DSS_PARAMETERS* {.pure.} = object p*: CRYPT_UINT_BLOB q*: CRYPT_UINT_BLOB g*: CRYPT_UINT_BLOB PCERT_DSS_PARAMETERS* = ptr CERT_DSS_PARAMETERS CERT_DH_PARAMETERS* {.pure.} = object p*: CRYPT_UINT_BLOB g*: CRYPT_UINT_BLOB PCERT_DH_PARAMETERS* = ptr CERT_DH_PARAMETERS CERT_ECC_SIGNATURE* {.pure.} = object r*: CRYPT_UINT_BLOB s*: CRYPT_UINT_BLOB PCERT_ECC_SIGNATURE* = ptr CERT_ECC_SIGNATURE CERT_X942_DH_VALIDATION_PARAMS* {.pure.} = object seed*: CRYPT_BIT_BLOB pgenCounter*: DWORD PCERT_X942_DH_VALIDATION_PARAMS* = ptr CERT_X942_DH_VALIDATION_PARAMS CERT_X942_DH_PARAMETERS* {.pure.} = object p*: CRYPT_UINT_BLOB g*: CRYPT_UINT_BLOB q*: CRYPT_UINT_BLOB j*: CRYPT_UINT_BLOB pValidationParams*: PCERT_X942_DH_VALIDATION_PARAMS PCERT_X942_DH_PARAMETERS* = ptr CERT_X942_DH_PARAMETERS const CRYPT_X942_COUNTER_BYTE_LENGTH* = 4 CRYPT_X942_KEY_LENGTH_BYTE_LENGTH* = 4 type CRYPT_X942_OTHER_INFO* {.pure.} = object pszContentEncryptionObjId*: LPSTR rgbCounter*: array[CRYPT_X942_COUNTER_BYTE_LENGTH, BYTE] rgbKeyLength*: array[CRYPT_X942_KEY_LENGTH_BYTE_LENGTH, BYTE] PubInfo*: CRYPT_DATA_BLOB PCRYPT_X942_OTHER_INFO* = ptr CRYPT_X942_OTHER_INFO const CRYPT_ECC_CMS_SHARED_INFO_SUPPPUBINFO_BYTE_LENGTH* = 4 type CRYPT_ECC_CMS_SHARED_INFO* {.pure.} = object Algorithm*: CRYPT_ALGORITHM_IDENTIFIER EntityUInfo*: CRYPT_DATA_BLOB rgbSuppPubInfo*: array[CRYPT_ECC_CMS_SHARED_INFO_SUPPPUBINFO_BYTE_LENGTH, BYTE] PCRYPT_ECC_CMS_SHARED_INFO* = ptr CRYPT_ECC_CMS_SHARED_INFO CRYPT_RC2_CBC_PARAMETERS* {.pure.} = object dwVersion*: DWORD fIV*: WINBOOL rgbIV*: array[8, BYTE] PCRYPT_RC2_CBC_PARAMETERS* = ptr CRYPT_RC2_CBC_PARAMETERS CRYPT_SMIME_CAPABILITY* {.pure.} = object pszObjId*: LPSTR Parameters*: CRYPT_OBJID_BLOB PCRYPT_SMIME_CAPABILITY* = ptr CRYPT_SMIME_CAPABILITY CRYPT_SMIME_CAPABILITIES* {.pure.} = object cCapability*: DWORD rgCapability*: PCRYPT_SMIME_CAPABILITY PCRYPT_SMIME_CAPABILITIES* = ptr CRYPT_SMIME_CAPABILITIES CERT_QC_STATEMENT* {.pure.} = object pszStatementId*: LPSTR StatementInfo*: CRYPT_OBJID_BLOB PCERT_QC_STATEMENT* = ptr CERT_QC_STATEMENT CERT_QC_STATEMENTS_EXT_INFO* {.pure.} = object cStatement*: DWORD rgStatement*: PCERT_QC_STATEMENT PCERT_QC_STATEMENTS_EXT_INFO* = ptr CERT_QC_STATEMENTS_EXT_INFO CRYPT_MASK_GEN_ALGORITHM* {.pure.} = object pszObjId*: LPSTR HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER PCRYPT_MASK_GEN_ALGORITHM* = ptr CRYPT_MASK_GEN_ALGORITHM CRYPT_RSA_SSA_PSS_PARAMETERS* {.pure.} = object HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER MaskGenAlgorithm*: CRYPT_MASK_GEN_ALGORITHM dwSaltLength*: DWORD dwTrailerField*: DWORD PCRYPT_RSA_SSA_PSS_PARAMETERS* = ptr CRYPT_RSA_SSA_PSS_PARAMETERS CRYPT_PSOURCE_ALGORITHM* {.pure.} = object pszObjId*: LPSTR EncodingParameters*: CRYPT_DATA_BLOB PCRYPT_PSOURCE_ALGORITHM* = ptr CRYPT_PSOURCE_ALGORITHM CRYPT_RSAES_OAEP_PARAMETERS* {.pure.} = object HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER MaskGenAlgorithm*: CRYPT_MASK_GEN_ALGORITHM PSourceAlgorithm*: CRYPT_PSOURCE_ALGORITHM PCRYPT_RSAES_OAEP_PARAMETERS* = ptr CRYPT_RSAES_OAEP_PARAMETERS CMC_TAGGED_ATTRIBUTE* {.pure.} = object dwBodyPartID*: DWORD Attribute*: CRYPT_ATTRIBUTE PCMC_TAGGED_ATTRIBUTE* = ptr CMC_TAGGED_ATTRIBUTE CMC_TAGGED_CERT_REQUEST* {.pure.} = object dwBodyPartID*: DWORD SignedCertRequest*: CRYPT_DER_BLOB PCMC_TAGGED_CERT_REQUEST* = ptr CMC_TAGGED_CERT_REQUEST CMC_TAGGED_REQUEST_UNION1* {.pure, union.} = object pTaggedCertRequest*: PCMC_TAGGED_CERT_REQUEST CMC_TAGGED_REQUEST* {.pure.} = object dwTaggedRequestChoice*: DWORD union1*: CMC_TAGGED_REQUEST_UNION1 PCMC_TAGGED_REQUEST* = ptr CMC_TAGGED_REQUEST CMC_TAGGED_CONTENT_INFO* {.pure.} = object dwBodyPartID*: DWORD EncodedContentInfo*: CRYPT_DER_BLOB PCMC_TAGGED_CONTENT_INFO* = ptr CMC_TAGGED_CONTENT_INFO CMC_TAGGED_OTHER_MSG* {.pure.} = object dwBodyPartID*: DWORD pszObjId*: LPSTR Value*: CRYPT_OBJID_BLOB PCMC_TAGGED_OTHER_MSG* = ptr CMC_TAGGED_OTHER_MSG CMC_DATA_INFO* {.pure.} = object cTaggedAttribute*: DWORD rgTaggedAttribute*: PCMC_TAGGED_ATTRIBUTE cTaggedRequest*: DWORD rgTaggedRequest*: PCMC_TAGGED_REQUEST cTaggedContentInfo*: DWORD rgTaggedContentInfo*: PCMC_TAGGED_CONTENT_INFO cTaggedOtherMsg*: DWORD rgTaggedOtherMsg*: PCMC_TAGGED_OTHER_MSG PCMC_DATA_INFO* = ptr CMC_DATA_INFO CMC_RESPONSE_INFO* {.pure.} = object cTaggedAttribute*: DWORD rgTaggedAttribute*: PCMC_TAGGED_ATTRIBUTE cTaggedContentInfo*: DWORD rgTaggedContentInfo*: PCMC_TAGGED_CONTENT_INFO cTaggedOtherMsg*: DWORD rgTaggedOtherMsg*: PCMC_TAGGED_OTHER_MSG PCMC_RESPONSE_INFO* = ptr CMC_RESPONSE_INFO CMC_PEND_INFO* {.pure.} = object PendToken*: CRYPT_DATA_BLOB PendTime*: FILETIME PCMC_PEND_INFO* = ptr CMC_PEND_INFO CMC_STATUS_INFO_UNION1* {.pure, union.} = object dwFailInfo*: DWORD pPendInfo*: PCMC_PEND_INFO CMC_STATUS_INFO* {.pure.} = object dwStatus*: DWORD cBodyList*: DWORD rgdwBodyList*: ptr DWORD pwszStatusString*: LPWSTR dwOtherInfoChoice*: DWORD union1*: CMC_STATUS_INFO_UNION1 PCMC_STATUS_INFO* = ptr CMC_STATUS_INFO CMC_ADD_EXTENSIONS_INFO* {.pure.} = object dwCmcDataReference*: DWORD cCertReference*: DWORD rgdwCertReference*: ptr DWORD cExtension*: DWORD rgExtension*: PCERT_EXTENSION PCMC_ADD_EXTENSIONS_INFO* = ptr CMC_ADD_EXTENSIONS_INFO CMC_ADD_ATTRIBUTES_INFO* {.pure.} = object dwCmcDataReference*: DWORD cCertReference*: DWORD rgdwCertReference*: ptr DWORD cAttribute*: DWORD rgAttribute*: PCRYPT_ATTRIBUTE PCMC_ADD_ATTRIBUTES_INFO* = ptr CMC_ADD_ATTRIBUTES_INFO CERT_TEMPLATE_EXT* {.pure.} = object pszObjId*: LPSTR dwMajorVersion*: DWORD fMinorVersion*: WINBOOL dwMinorVersion*: DWORD PCERT_TEMPLATE_EXT* = ptr CERT_TEMPLATE_EXT CERT_HASHED_URL* {.pure.} = object HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER Hash*: CRYPT_HASH_BLOB pwszUrl*: LPWSTR PCERT_HASHED_URL* = ptr CERT_HASHED_URL CERT_LOGOTYPE_DETAILS* {.pure.} = object pwszMimeType*: LPWSTR cHashedUrl*: DWORD rgHashedUrl*: PCERT_HASHED_URL PCERT_LOGOTYPE_DETAILS* = ptr CERT_LOGOTYPE_DETAILS CERT_LOGOTYPE_REFERENCE* {.pure.} = object cHashedUrl*: DWORD rgHashedUrl*: PCERT_HASHED_URL PCERT_LOGOTYPE_REFERENCE* = ptr CERT_LOGOTYPE_REFERENCE CERT_LOGOTYPE_IMAGE_INFO_UNION1* {.pure, union.} = object dwNumBits*: DWORD dwTableSize*: DWORD CERT_LOGOTYPE_IMAGE_INFO* {.pure.} = object dwLogotypeImageInfoChoice*: DWORD dwFileSize*: DWORD dwXSize*: DWORD dwYSize*: DWORD dwLogotypeImageResolutionChoice*: DWORD union1*: CERT_LOGOTYPE_IMAGE_INFO_UNION1 pwszLanguage*: LPWSTR PCERT_LOGOTYPE_IMAGE_INFO* = ptr CERT_LOGOTYPE_IMAGE_INFO CERT_LOGOTYPE_IMAGE* {.pure.} = object LogotypeDetails*: CERT_LOGOTYPE_DETAILS pLogotypeImageInfo*: PCERT_LOGOTYPE_IMAGE_INFO PCERT_LOGOTYPE_IMAGE* = ptr CERT_LOGOTYPE_IMAGE CERT_LOGOTYPE_AUDIO_INFO* {.pure.} = object dwFileSize*: DWORD dwPlayTime*: DWORD dwChannels*: DWORD dwSampleRate*: DWORD pwszLanguage*: LPWSTR PCERT_LOGOTYPE_AUDIO_INFO* = ptr CERT_LOGOTYPE_AUDIO_INFO CERT_LOGOTYPE_AUDIO* {.pure.} = object LogotypeDetails*: CERT_LOGOTYPE_DETAILS pLogotypeAudioInfo*: PCERT_LOGOTYPE_AUDIO_INFO PCERT_LOGOTYPE_AUDIO* = ptr CERT_LOGOTYPE_AUDIO CERT_LOGOTYPE_DATA* {.pure.} = object cLogotypeImage*: DWORD rgLogotypeImage*: PCERT_LOGOTYPE_IMAGE cLogotypeAudio*: DWORD rgLogotypeAudio*: PCERT_LOGOTYPE_AUDIO PCERT_LOGOTYPE_DATA* = ptr CERT_LOGOTYPE_DATA CERT_LOGOTYPE_INFO_UNION1* {.pure, union.} = object pLogotypeDirectInfo*: PCERT_LOGOTYPE_DATA pLogotypeIndirectInfo*: PCERT_LOGOTYPE_REFERENCE CERT_LOGOTYPE_INFO* {.pure.} = object dwLogotypeInfoChoice*: DWORD union1*: CERT_LOGOTYPE_INFO_UNION1 PCERT_LOGOTYPE_INFO* = ptr CERT_LOGOTYPE_INFO CERT_OTHER_LOGOTYPE_INFO* {.pure.} = object pszObjId*: LPSTR LogotypeInfo*: CERT_LOGOTYPE_INFO PCERT_OTHER_LOGOTYPE_INFO* = ptr CERT_OTHER_LOGOTYPE_INFO CERT_LOGOTYPE_EXT_INFO* {.pure.} = object cCommunityLogo*: DWORD rgCommunityLogo*: PCERT_LOGOTYPE_INFO pIssuerLogo*: PCERT_LOGOTYPE_INFO pSubjectLogo*: PCERT_LOGOTYPE_INFO cOtherLogo*: DWORD rgOtherLogo*: PCERT_OTHER_LOGOTYPE_INFO PCERT_LOGOTYPE_EXT_INFO* = ptr CERT_LOGOTYPE_EXT_INFO CERT_BIOMETRIC_DATA_UNION1* {.pure, union.} = object dwPredefined*: DWORD pszObjId*: LPSTR CERT_BIOMETRIC_DATA* {.pure.} = object dwTypeOfBiometricDataChoice*: DWORD union1*: CERT_BIOMETRIC_DATA_UNION1 HashedUrl*: CERT_HASHED_URL PCERT_BIOMETRIC_DATA* = ptr CERT_BIOMETRIC_DATA CERT_BIOMETRIC_EXT_INFO* {.pure.} = object cBiometricData*: DWORD rgBiometricData*: PCERT_BIOMETRIC_DATA PCERT_BIOMETRIC_EXT_INFO* = ptr CERT_BIOMETRIC_EXT_INFO OCSP_SIGNATURE_INFO* {.pure.} = object SignatureAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER Signature*: CRYPT_BIT_BLOB cCertEncoded*: DWORD rgCertEncoded*: PCERT_BLOB POCSP_SIGNATURE_INFO* = ptr OCSP_SIGNATURE_INFO OCSP_SIGNED_REQUEST_INFO* {.pure.} = object ToBeSigned*: CRYPT_DER_BLOB pOptionalSignatureInfo*: POCSP_SIGNATURE_INFO POCSP_SIGNED_REQUEST_INFO* = ptr OCSP_SIGNED_REQUEST_INFO OCSP_CERT_ID* {.pure.} = object HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER IssuerNameHash*: CRYPT_HASH_BLOB IssuerKeyHash*: CRYPT_HASH_BLOB SerialNumber*: CRYPT_INTEGER_BLOB POCSP_CERT_ID* = ptr OCSP_CERT_ID OCSP_REQUEST_ENTRY* {.pure.} = object CertId*: OCSP_CERT_ID cExtension*: DWORD rgExtension*: PCERT_EXTENSION POCSP_REQUEST_ENTRY* = ptr OCSP_REQUEST_ENTRY OCSP_REQUEST_INFO* {.pure.} = object dwVersion*: DWORD pRequestorName*: PCERT_ALT_NAME_ENTRY cRequestEntry*: DWORD rgRequestEntry*: POCSP_REQUEST_ENTRY cExtension*: DWORD rgExtension*: PCERT_EXTENSION POCSP_REQUEST_INFO* = ptr OCSP_REQUEST_INFO OCSP_RESPONSE_INFO* {.pure.} = object dwStatus*: DWORD pszObjId*: LPSTR Value*: CRYPT_OBJID_BLOB POCSP_RESPONSE_INFO* = ptr OCSP_RESPONSE_INFO OCSP_BASIC_SIGNED_RESPONSE_INFO* {.pure.} = object ToBeSigned*: CRYPT_DER_BLOB SignatureInfo*: OCSP_SIGNATURE_INFO POCSP_BASIC_SIGNED_RESPONSE_INFO* = ptr OCSP_BASIC_SIGNED_RESPONSE_INFO OCSP_BASIC_REVOKED_INFO* {.pure.} = object RevocationDate*: FILETIME dwCrlReasonCode*: DWORD POCSP_BASIC_REVOKED_INFO* = ptr OCSP_BASIC_REVOKED_INFO OCSP_BASIC_RESPONSE_ENTRY_UNION1* {.pure, union.} = object pRevokedInfo*: POCSP_BASIC_REVOKED_INFO OCSP_BASIC_RESPONSE_ENTRY* {.pure.} = object CertId*: OCSP_CERT_ID dwCertStatus*: DWORD union1*: OCSP_BASIC_RESPONSE_ENTRY_UNION1 ThisUpdate*: FILETIME NextUpdate*: FILETIME cExtension*: DWORD rgExtension*: PCERT_EXTENSION POCSP_BASIC_RESPONSE_ENTRY* = ptr OCSP_BASIC_RESPONSE_ENTRY OCSP_BASIC_RESPONSE_INFO_UNION1* {.pure, union.} = object ByNameResponderId*: CERT_NAME_BLOB ByKeyResponderId*: CRYPT_HASH_BLOB OCSP_BASIC_RESPONSE_INFO* {.pure.} = object dwVersion*: DWORD dwResponderIdChoice*: DWORD union1*: OCSP_BASIC_RESPONSE_INFO_UNION1 ProducedAt*: FILETIME cResponseEntry*: DWORD rgResponseEntry*: POCSP_BASIC_RESPONSE_ENTRY cExtension*: DWORD rgExtension*: PCERT_EXTENSION POCSP_BASIC_RESPONSE_INFO* = ptr OCSP_BASIC_RESPONSE_INFO CRYPT_OID_FUNC_ENTRY* {.pure.} = object pszOID*: LPCSTR pvFuncAddr*: pointer PCRYPT_OID_FUNC_ENTRY* = ptr CRYPT_OID_FUNC_ENTRY CRYPT_OID_INFO_UNION1* {.pure, union.} = object dwValue*: DWORD Algid*: ALG_ID dwLength*: DWORD when winimCpu64: type CRYPT_OID_INFO* {.pure.} = object cbSize*: DWORD pszOID*: LPCSTR pwszName*: LPCWSTR dwGroupId*: DWORD union1*: CRYPT_OID_INFO_UNION1 ExtraInfo*: CRYPT_DATA_BLOB pwszCNGAlgid*: LPCWSTR pwszCNGExtraAlgid*: LPCWSTR when winimCpu32: type CRYPT_OID_INFO* {.pure, packed.} = object cbSize*: DWORD pszOID*: LPCSTR pwszName*: LPCWSTR dwGroupId*: DWORD union1*: CRYPT_OID_INFO_UNION1 ExtraInfo*: CRYPT_DATA_BLOB pwszCNGAlgid*: LPCWSTR pwszCNGExtraAlgid*: LPCWSTR type PCRYPT_OID_INFO* = ptr CRYPT_OID_INFO CCRYPT_OID_INFO* = CRYPT_OID_INFO PCCRYPT_OID_INFO* = ptr CRYPT_OID_INFO CERT_STRONG_SIGN_SERIALIZED_INFO* {.pure.} = object dwFlags*: DWORD pwszCNGSignHashAlgids*: LPWSTR pwszCNGPubKeyMinBitLengths*: LPWSTR PCERT_STRONG_SIGN_SERIALIZED_INFO* = ptr CERT_STRONG_SIGN_SERIALIZED_INFO CERT_STRONG_SIGN_PARA_UNION1* {.pure, union.} = object pvInfo*: pointer pSerializedInfo*: PCERT_STRONG_SIGN_SERIALIZED_INFO pszOID*: LPSTR CERT_STRONG_SIGN_PARA* {.pure.} = object cbSize*: DWORD dwInfoChoice*: DWORD union1*: CERT_STRONG_SIGN_PARA_UNION1 PCERT_STRONG_SIGN_PARA* = ptr CERT_STRONG_SIGN_PARA PCCERT_STRONG_SIGN_PARA* = ptr CERT_STRONG_SIGN_PARA CERT_ISSUER_SERIAL_NUMBER* {.pure.} = object Issuer*: CERT_NAME_BLOB SerialNumber*: CRYPT_INTEGER_BLOB PCERT_ISSUER_SERIAL_NUMBER* = ptr CERT_ISSUER_SERIAL_NUMBER CERT_ID_UNION1* {.pure, union.} = object IssuerSerialNumber*: CERT_ISSUER_SERIAL_NUMBER KeyId*: CRYPT_HASH_BLOB HashId*: CRYPT_HASH_BLOB CERT_ID* {.pure.} = object dwIdChoice*: DWORD union1*: CERT_ID_UNION1 PCERT_ID* = ptr CERT_ID CMSG_SIGNER_ENCODE_INFO_UNION1* {.pure, union.} = object hCryptProv*: HCRYPTPROV hNCryptKey*: NCRYPT_KEY_HANDLE CMSG_SIGNER_ENCODE_INFO* {.pure.} = object cbSize*: DWORD pCertInfo*: PCERT_INFO union1*: CMSG_SIGNER_ENCODE_INFO_UNION1 dwKeySpec*: DWORD HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pvHashAuxInfo*: pointer cAuthAttr*: DWORD rgAuthAttr*: PCRYPT_ATTRIBUTE cUnauthAttr*: DWORD rgUnauthAttr*: PCRYPT_ATTRIBUTE SignerId*: CERT_ID HashEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pvHashEncryptionAuxInfo*: pointer PCMSG_SIGNER_ENCODE_INFO* = ptr CMSG_SIGNER_ENCODE_INFO CMSG_SIGNED_ENCODE_INFO* {.pure.} = object cbSize*: DWORD cSigners*: DWORD rgSigners*: PCMSG_SIGNER_ENCODE_INFO cCertEncoded*: DWORD rgCertEncoded*: PCERT_BLOB cCrlEncoded*: DWORD rgCrlEncoded*: PCRL_BLOB cAttrCertEncoded*: DWORD rgAttrCertEncoded*: PCERT_BLOB PCMSG_SIGNED_ENCODE_INFO* = ptr CMSG_SIGNED_ENCODE_INFO CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO* {.pure.} = object cbSize*: DWORD KeyEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pvKeyEncryptionAuxInfo*: pointer hCryptProv*: HCRYPTPROV_LEGACY RecipientPublicKey*: CRYPT_BIT_BLOB RecipientId*: CERT_ID PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO* = ptr CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO_UNION1* {.pure, union.} = object pEphemeralAlgorithm*: PCRYPT_ALGORITHM_IDENTIFIER pSenderId*: PCERT_ID CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO* {.pure.} = object cbSize*: DWORD RecipientPublicKey*: CRYPT_BIT_BLOB RecipientId*: CERT_ID Date*: FILETIME pOtherAttr*: PCRYPT_ATTRIBUTE_TYPE_VALUE PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO* = ptr CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO* {.pure.} = object cbSize*: DWORD KeyEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pvKeyEncryptionAuxInfo*: pointer KeyWrapAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pvKeyWrapAuxInfo*: pointer hCryptProv*: HCRYPTPROV_LEGACY dwKeySpec*: DWORD dwKeyChoice*: DWORD union1*: CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO_UNION1 UserKeyingMaterial*: CRYPT_DATA_BLOB cRecipientEncryptedKeys*: DWORD rgpRecipientEncryptedKeys*: ptr PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO* = ptr CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO_UNION1* {.pure, union.} = object hKeyEncryptionKey*: HCRYPTKEY pvKeyEncryptionKey*: pointer CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO* {.pure.} = object cbSize*: DWORD KeyEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pvKeyEncryptionAuxInfo*: pointer hCryptProv*: HCRYPTPROV dwKeyChoice*: DWORD union1*: CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO_UNION1 KeyId*: CRYPT_DATA_BLOB Date*: FILETIME pOtherAttr*: PCRYPT_ATTRIBUTE_TYPE_VALUE PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO* = ptr CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO CMSG_RECIPIENT_ENCODE_INFO_UNION1* {.pure, union.} = object pKeyTrans*: PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO pKeyAgree*: PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO pMailList*: PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO CMSG_RECIPIENT_ENCODE_INFO* {.pure.} = object dwRecipientChoice*: DWORD union1*: CMSG_RECIPIENT_ENCODE_INFO_UNION1 PCMSG_RECIPIENT_ENCODE_INFO* = ptr CMSG_RECIPIENT_ENCODE_INFO CMSG_ENVELOPED_ENCODE_INFO* {.pure.} = object cbSize*: DWORD hCryptProv*: HCRYPTPROV_LEGACY ContentEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pvEncryptionAuxInfo*: pointer cRecipients*: DWORD rgpRecipients*: ptr PCERT_INFO rgCmsRecipients*: PCMSG_RECIPIENT_ENCODE_INFO cCertEncoded*: DWORD rgCertEncoded*: PCERT_BLOB cCrlEncoded*: DWORD rgCrlEncoded*: PCRL_BLOB cAttrCertEncoded*: DWORD rgAttrCertEncoded*: PCERT_BLOB cUnprotectedAttr*: DWORD rgUnprotectedAttr*: PCRYPT_ATTRIBUTE PCMSG_ENVELOPED_ENCODE_INFO* = ptr CMSG_ENVELOPED_ENCODE_INFO CMSG_RC2_AUX_INFO* {.pure.} = object cbSize*: DWORD dwBitLen*: DWORD PCMSG_RC2_AUX_INFO* = ptr CMSG_RC2_AUX_INFO CMSG_SP3_COMPATIBLE_AUX_INFO* {.pure.} = object cbSize*: DWORD dwFlags*: DWORD PCMSG_SP3_COMPATIBLE_AUX_INFO* = ptr CMSG_SP3_COMPATIBLE_AUX_INFO CMSG_RC4_AUX_INFO* {.pure.} = object cbSize*: DWORD dwBitLen*: DWORD PCMSG_RC4_AUX_INFO* = ptr CMSG_RC4_AUX_INFO CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO* {.pure.} = object cbSize*: DWORD SignedInfo*: CMSG_SIGNED_ENCODE_INFO EnvelopedInfo*: CMSG_ENVELOPED_ENCODE_INFO PCMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO* = ptr CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO CMSG_HASHED_ENCODE_INFO* {.pure.} = object cbSize*: DWORD hCryptProv*: HCRYPTPROV_LEGACY HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pvHashAuxInfo*: pointer PCMSG_HASHED_ENCODE_INFO* = ptr CMSG_HASHED_ENCODE_INFO CMSG_ENCRYPTED_ENCODE_INFO* {.pure.} = object cbSize*: DWORD ContentEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pvEncryptionAuxInfo*: pointer PCMSG_ENCRYPTED_ENCODE_INFO* = ptr CMSG_ENCRYPTED_ENCODE_INFO PFN_CMSG_STREAM_OUTPUT* = proc (pvArg: pointer, pbData: ptr BYTE, cbData: DWORD, fFinal: WINBOOL): WINBOOL {.stdcall.} CMSG_STREAM_INFO* {.pure.} = object cbContent*: DWORD pfnStreamOutput*: PFN_CMSG_STREAM_OUTPUT pvArg*: pointer PCMSG_STREAM_INFO* = ptr CMSG_STREAM_INFO CMSG_SIGNER_INFO* {.pure.} = object dwVersion*: DWORD Issuer*: CERT_NAME_BLOB SerialNumber*: CRYPT_INTEGER_BLOB HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER HashEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER EncryptedHash*: CRYPT_DATA_BLOB AuthAttrs*: CRYPT_ATTRIBUTES UnauthAttrs*: CRYPT_ATTRIBUTES PCMSG_SIGNER_INFO* = ptr CMSG_SIGNER_INFO CMSG_CMS_SIGNER_INFO* {.pure.} = object dwVersion*: DWORD SignerId*: CERT_ID HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER HashEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER EncryptedHash*: CRYPT_DATA_BLOB AuthAttrs*: CRYPT_ATTRIBUTES UnauthAttrs*: CRYPT_ATTRIBUTES PCMSG_CMS_SIGNER_INFO* = ptr CMSG_CMS_SIGNER_INFO CMSG_ATTR* = CRYPT_ATTRIBUTES PCMSG_ATTR* = ptr CRYPT_ATTRIBUTES CMSG_KEY_TRANS_RECIPIENT_INFO* {.pure.} = object dwVersion*: DWORD RecipientId*: CERT_ID KeyEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER EncryptedKey*: CRYPT_DATA_BLOB PCMSG_KEY_TRANS_RECIPIENT_INFO* = ptr CMSG_KEY_TRANS_RECIPIENT_INFO CMSG_RECIPIENT_ENCRYPTED_KEY_INFO* {.pure.} = object RecipientId*: CERT_ID EncryptedKey*: CRYPT_DATA_BLOB Date*: FILETIME pOtherAttr*: PCRYPT_ATTRIBUTE_TYPE_VALUE PCMSG_RECIPIENT_ENCRYPTED_KEY_INFO* = ptr CMSG_RECIPIENT_ENCRYPTED_KEY_INFO CMSG_KEY_AGREE_RECIPIENT_INFO_UNION1* {.pure, union.} = object OriginatorCertId*: CERT_ID OriginatorPublicKeyInfo*: CERT_PUBLIC_KEY_INFO CMSG_KEY_AGREE_RECIPIENT_INFO* {.pure.} = object dwVersion*: DWORD dwOriginatorChoice*: DWORD union1*: CMSG_KEY_AGREE_RECIPIENT_INFO_UNION1 UserKeyingMaterial*: CRYPT_DATA_BLOB KeyEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER cRecipientEncryptedKeys*: DWORD rgpRecipientEncryptedKeys*: ptr PCMSG_RECIPIENT_ENCRYPTED_KEY_INFO PCMSG_KEY_AGREE_RECIPIENT_INFO* = ptr CMSG_KEY_AGREE_RECIPIENT_INFO CMSG_MAIL_LIST_RECIPIENT_INFO* {.pure.} = object dwVersion*: DWORD KeyId*: CRYPT_DATA_BLOB KeyEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER EncryptedKey*: CRYPT_DATA_BLOB Date*: FILETIME pOtherAttr*: PCRYPT_ATTRIBUTE_TYPE_VALUE PCMSG_MAIL_LIST_RECIPIENT_INFO* = ptr CMSG_MAIL_LIST_RECIPIENT_INFO CMSG_CMS_RECIPIENT_INFO_UNION1* {.pure, union.} = object pKeyTrans*: PCMSG_KEY_TRANS_RECIPIENT_INFO pKeyAgree*: PCMSG_KEY_AGREE_RECIPIENT_INFO pMailList*: PCMSG_MAIL_LIST_RECIPIENT_INFO CMSG_CMS_RECIPIENT_INFO* {.pure.} = object dwRecipientChoice*: DWORD union1*: CMSG_CMS_RECIPIENT_INFO_UNION1 PCMSG_CMS_RECIPIENT_INFO* = ptr CMSG_CMS_RECIPIENT_INFO CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA* {.pure.} = object cbSize*: DWORD hCryptProv*: HCRYPTPROV_LEGACY dwSignerIndex*: DWORD dwSignerType*: DWORD pvSigner*: pointer PCMSG_CTRL_VERIFY_SIGNATURE_EX_PARA* = ptr CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA CMSG_CTRL_DECRYPT_PARA_UNION1* {.pure, union.} = object hCryptProv*: HCRYPTPROV hNCryptKey*: NCRYPT_KEY_HANDLE CMSG_CTRL_DECRYPT_PARA* {.pure.} = object cbSize*: DWORD union1*: CMSG_CTRL_DECRYPT_PARA_UNION1 dwKeySpec*: DWORD dwRecipientIndex*: DWORD PCMSG_CTRL_DECRYPT_PARA* = ptr CMSG_CTRL_DECRYPT_PARA CMSG_CTRL_KEY_TRANS_DECRYPT_PARA_UNION1* {.pure, union.} = object hCryptProv*: HCRYPTPROV hNCryptKey*: NCRYPT_KEY_HANDLE CMSG_CTRL_KEY_TRANS_DECRYPT_PARA* {.pure.} = object cbSize*: DWORD union1*: CMSG_CTRL_KEY_TRANS_DECRYPT_PARA_UNION1 dwKeySpec*: DWORD pKeyTrans*: PCMSG_KEY_TRANS_RECIPIENT_INFO dwRecipientIndex*: DWORD PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA* = ptr CMSG_CTRL_KEY_TRANS_DECRYPT_PARA CMSG_CTRL_KEY_AGREE_DECRYPT_PARA_UNION1* {.pure, union.} = object hCryptProv*: HCRYPTPROV hNCryptKey*: NCRYPT_KEY_HANDLE CMSG_CTRL_KEY_AGREE_DECRYPT_PARA* {.pure.} = object cbSize*: DWORD union1*: CMSG_CTRL_KEY_AGREE_DECRYPT_PARA_UNION1 dwKeySpec*: DWORD pKeyAgree*: PCMSG_KEY_AGREE_RECIPIENT_INFO dwRecipientIndex*: DWORD dwRecipientEncryptedKeyIndex*: DWORD OriginatorPublicKey*: CRYPT_BIT_BLOB PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA* = ptr CMSG_CTRL_KEY_AGREE_DECRYPT_PARA CMSG_CTRL_MAIL_LIST_DECRYPT_PARA_UNION1* {.pure, union.} = object hKeyEncryptionKey*: HCRYPTKEY pvKeyEncryptionKey*: pointer CMSG_CTRL_MAIL_LIST_DECRYPT_PARA* {.pure.} = object cbSize*: DWORD hCryptProv*: HCRYPTPROV pMailList*: PCMSG_MAIL_LIST_RECIPIENT_INFO dwRecipientIndex*: DWORD dwKeyChoice*: DWORD union1*: CMSG_CTRL_MAIL_LIST_DECRYPT_PARA_UNION1 PCMSG_CTRL_MAIL_LIST_DECRYPT_PARA* = ptr CMSG_CTRL_MAIL_LIST_DECRYPT_PARA CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA* {.pure.} = object cbSize*: DWORD dwSignerIndex*: DWORD blob*: CRYPT_DATA_BLOB PCMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA* = ptr CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA* {.pure.} = object cbSize*: DWORD dwSignerIndex*: DWORD dwUnauthAttrIndex*: DWORD PCMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA* = ptr CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA PFN_CMSG_ALLOC* = proc (cb: int): pointer {.stdcall.} PFN_CMSG_FREE* = proc (pv: pointer): void {.stdcall.} CMSG_CONTENT_ENCRYPT_INFO_UNION1* {.pure, union.} = object hContentEncryptKey*: HCRYPTKEY hCNGContentEncryptKey*: BCRYPT_KEY_HANDLE CMSG_CONTENT_ENCRYPT_INFO* {.pure.} = object cbSize*: DWORD hCryptProv*: HCRYPTPROV_LEGACY ContentEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pvEncryptionAuxInfo*: pointer cRecipients*: DWORD rgCmsRecipients*: PCMSG_RECIPIENT_ENCODE_INFO pfnAlloc*: PFN_CMSG_ALLOC pfnFree*: PFN_CMSG_FREE dwEncryptFlags*: DWORD union1*: CMSG_CONTENT_ENCRYPT_INFO_UNION1 dwFlags*: DWORD fCNG*: WINBOOL pbCNGContentEncryptKeyObject*: ptr BYTE pbContentEncryptKey*: ptr BYTE cbContentEncryptKey*: DWORD PCMSG_CONTENT_ENCRYPT_INFO* = ptr CMSG_CONTENT_ENCRYPT_INFO CMSG_KEY_TRANS_ENCRYPT_INFO* {.pure.} = object cbSize*: DWORD dwRecipientIndex*: DWORD KeyEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER EncryptedKey*: CRYPT_DATA_BLOB dwFlags*: DWORD PCMSG_KEY_TRANS_ENCRYPT_INFO* = ptr CMSG_KEY_TRANS_ENCRYPT_INFO CMSG_KEY_AGREE_KEY_ENCRYPT_INFO* {.pure.} = object cbSize*: DWORD EncryptedKey*: CRYPT_DATA_BLOB PCMSG_KEY_AGREE_KEY_ENCRYPT_INFO* = ptr CMSG_KEY_AGREE_KEY_ENCRYPT_INFO CMSG_KEY_AGREE_ENCRYPT_INFO_UNION1* {.pure, union.} = object OriginatorCertId*: CERT_ID OriginatorPublicKeyInfo*: CERT_PUBLIC_KEY_INFO CMSG_KEY_AGREE_ENCRYPT_INFO* {.pure.} = object cbSize*: DWORD dwRecipientIndex*: DWORD KeyEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER UserKeyingMaterial*: CRYPT_DATA_BLOB dwOriginatorChoice*: DWORD union1*: CMSG_KEY_AGREE_ENCRYPT_INFO_UNION1 cKeyAgreeKeyEncryptInfo*: DWORD rgpKeyAgreeKeyEncryptInfo*: ptr PCMSG_KEY_AGREE_KEY_ENCRYPT_INFO dwFlags*: DWORD PCMSG_KEY_AGREE_ENCRYPT_INFO* = ptr CMSG_KEY_AGREE_ENCRYPT_INFO CMSG_MAIL_LIST_ENCRYPT_INFO* {.pure.} = object cbSize*: DWORD dwRecipientIndex*: DWORD KeyEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER EncryptedKey*: CRYPT_DATA_BLOB dwFlags*: DWORD PCMSG_MAIL_LIST_ENCRYPT_INFO* = ptr CMSG_MAIL_LIST_ENCRYPT_INFO CMSG_CNG_CONTENT_DECRYPT_INFO* {.pure.} = object cbSize*: DWORD ContentEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pfnAlloc*: PFN_CMSG_ALLOC pfnFree*: PFN_CMSG_FREE hNCryptKey*: NCRYPT_KEY_HANDLE pbContentEncryptKey*: ptr BYTE cbContentEncryptKey*: DWORD hCNGContentEncryptKey*: BCRYPT_KEY_HANDLE pbCNGContentEncryptKeyObject*: ptr BYTE PCMSG_CNG_CONTENT_DECRYPT_INFO* = ptr CMSG_CNG_CONTENT_DECRYPT_INFO CERT_CONTEXT* {.pure.} = object dwCertEncodingType*: DWORD pbCertEncoded*: ptr BYTE cbCertEncoded*: DWORD pCertInfo*: PCERT_INFO hCertStore*: HCERTSTORE PCERT_CONTEXT* = ptr CERT_CONTEXT PCCERT_CONTEXT* = ptr CERT_CONTEXT CRL_CONTEXT* {.pure.} = object dwCertEncodingType*: DWORD pbCrlEncoded*: ptr BYTE cbCrlEncoded*: DWORD pCrlInfo*: PCRL_INFO hCertStore*: HCERTSTORE PCRL_CONTEXT* = ptr CRL_CONTEXT PCCRL_CONTEXT* = ptr CRL_CONTEXT CTL_CONTEXT* {.pure.} = object dwMsgAndCertEncodingType*: DWORD pbCtlEncoded*: ptr BYTE cbCtlEncoded*: DWORD pCtlInfo*: PCTL_INFO hCertStore*: HCERTSTORE hCryptMsg*: HCRYPTMSG pbCtlContent*: ptr BYTE cbCtlContent*: DWORD PCTL_CONTEXT* = ptr CTL_CONTEXT PCCTL_CONTEXT* = ptr CTL_CONTEXT CRYPT_KEY_PROV_PARAM* {.pure.} = object dwParam*: DWORD pbData*: ptr BYTE cbData*: DWORD dwFlags*: DWORD PCRYPT_KEY_PROV_PARAM* = ptr CRYPT_KEY_PROV_PARAM CRYPT_KEY_PROV_INFO* {.pure.} = object pwszContainerName*: LPWSTR pwszProvName*: LPWSTR dwProvType*: DWORD dwFlags*: DWORD cProvParam*: DWORD rgProvParam*: PCRYPT_KEY_PROV_PARAM dwKeySpec*: DWORD PCRYPT_KEY_PROV_INFO* = ptr CRYPT_KEY_PROV_INFO CERT_KEY_CONTEXT_UNION1* {.pure, union.} = object hCryptProv*: HCRYPTPROV hNCryptKey*: NCRYPT_KEY_HANDLE CERT_KEY_CONTEXT* {.pure.} = object cbSize*: DWORD union1*: CERT_KEY_CONTEXT_UNION1 dwKeySpec*: DWORD PCERT_KEY_CONTEXT* = ptr CERT_KEY_CONTEXT ROOT_INFO_LUID* {.pure.} = object LowPart*: DWORD HighPart*: LONG PROOT_INFO_LUID* = ptr ROOT_INFO_LUID CRYPT_SMART_CARD_ROOT_INFO* {.pure.} = object rgbCardID*: array[16, BYTE] luid*: ROOT_INFO_LUID PCRYPT_SMART_CARD_ROOT_INFO* = ptr CRYPT_SMART_CARD_ROOT_INFO CERT_SYSTEM_STORE_RELOCATE_PARA_UNION1* {.pure, union.} = object hKeyBase*: HKEY pvBase*: pointer CERT_SYSTEM_STORE_RELOCATE_PARA_UNION2* {.pure, union.} = object pvSystemStore*: pointer pszSystemStore*: LPCSTR pwszSystemStore*: LPCWSTR CERT_SYSTEM_STORE_RELOCATE_PARA* {.pure.} = object union1*: CERT_SYSTEM_STORE_RELOCATE_PARA_UNION1 union2*: CERT_SYSTEM_STORE_RELOCATE_PARA_UNION2 PCERT_SYSTEM_STORE_RELOCATE_PARA* = ptr CERT_SYSTEM_STORE_RELOCATE_PARA CERT_REGISTRY_STORE_CLIENT_GPT_PARA* {.pure.} = object hKeyBase*: HKEY pwszRegPath*: LPWSTR PCERT_REGISTRY_STORE_CLIENT_GPT_PARA* = ptr CERT_REGISTRY_STORE_CLIENT_GPT_PARA CERT_REGISTRY_STORE_ROAMING_PARA* {.pure.} = object hKey*: HKEY pwszStoreDirectory*: LPWSTR PCERT_REGISTRY_STORE_ROAMING_PARA* = ptr CERT_REGISTRY_STORE_ROAMING_PARA CERT_LDAP_STORE_OPENED_PARA* {.pure.} = object pvLdapSessionHandle*: pointer pwszLdapUrl*: LPCWSTR PCERT_LDAP_STORE_OPENED_PARA* = ptr CERT_LDAP_STORE_OPENED_PARA CERT_STORE_PROV_INFO* {.pure.} = object cbSize*: DWORD cStoreProvFunc*: DWORD rgpvStoreProvFunc*: ptr pointer hStoreProv*: HCERTSTOREPROV dwStoreProvFlags*: DWORD hStoreProvFuncAddr2*: HCRYPTOIDFUNCADDR PCERT_STORE_PROV_INFO* = ptr CERT_STORE_PROV_INFO CERT_STORE_PROV_FIND_INFO* {.pure.} = object cbSize*: DWORD dwMsgAndCertEncodingType*: DWORD dwFindFlags*: DWORD dwFindType*: DWORD pvFindPara*: pointer PCERT_STORE_PROV_FIND_INFO* = ptr CERT_STORE_PROV_FIND_INFO CCERT_STORE_PROV_FIND_INFO* = CERT_STORE_PROV_FIND_INFO PCCERT_STORE_PROV_FIND_INFO* = ptr CERT_STORE_PROV_FIND_INFO CRL_FIND_ISSUED_FOR_PARA* {.pure.} = object pSubjectCert*: PCCERT_CONTEXT pIssuerCert*: PCCERT_CONTEXT PCRL_FIND_ISSUED_FOR_PARA* = ptr CRL_FIND_ISSUED_FOR_PARA CTL_ANY_SUBJECT_INFO* {.pure.} = object SubjectAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER SubjectIdentifier*: CRYPT_DATA_BLOB PCTL_ANY_SUBJECT_INFO* = ptr CTL_ANY_SUBJECT_INFO CTL_FIND_USAGE_PARA* {.pure.} = object cbSize*: DWORD SubjectUsage*: CTL_USAGE ListIdentifier*: CRYPT_DATA_BLOB pSigner*: PCERT_INFO PCTL_FIND_USAGE_PARA* = ptr CTL_FIND_USAGE_PARA CTL_FIND_SUBJECT_PARA* {.pure.} = object cbSize*: DWORD pUsagePara*: PCTL_FIND_USAGE_PARA dwSubjectType*: DWORD pvSubject*: pointer PCTL_FIND_SUBJECT_PARA* = ptr CTL_FIND_SUBJECT_PARA PFN_CERT_CREATE_CONTEXT_SORT_FUNC* = proc (cbTotalEncoded: DWORD, cbRemainEncoded: DWORD, cEntry: DWORD, pvSort: pointer): WINBOOL {.stdcall.} CERT_CREATE_CONTEXT_PARA* {.pure.} = object cbSize*: DWORD pfnFree*: PFN_CRYPT_FREE pvFree*: pointer pfnSort*: PFN_CERT_CREATE_CONTEXT_SORT_FUNC pvSort*: pointer PCERT_CREATE_CONTEXT_PARA* = ptr CERT_CREATE_CONTEXT_PARA CERT_SYSTEM_STORE_INFO* {.pure.} = object cbSize*: DWORD PCERT_SYSTEM_STORE_INFO* = ptr CERT_SYSTEM_STORE_INFO CERT_PHYSICAL_STORE_INFO* {.pure.} = object cbSize*: DWORD pszOpenStoreProvider*: LPSTR dwOpenEncodingType*: DWORD dwOpenFlags*: DWORD OpenParameters*: CRYPT_DATA_BLOB dwFlags*: DWORD dwPriority*: DWORD PCERT_PHYSICAL_STORE_INFO* = ptr CERT_PHYSICAL_STORE_INFO CTL_VERIFY_USAGE_PARA* {.pure.} = object cbSize*: DWORD ListIdentifier*: CRYPT_DATA_BLOB cCtlStore*: DWORD rghCtlStore*: ptr HCERTSTORE cSignerStore*: DWORD rghSignerStore*: ptr HCERTSTORE PCTL_VERIFY_USAGE_PARA* = ptr CTL_VERIFY_USAGE_PARA CTL_VERIFY_USAGE_STATUS* {.pure.} = object cbSize*: DWORD dwError*: DWORD dwFlags*: DWORD ppCtl*: ptr PCCTL_CONTEXT dwCtlEntryIndex*: DWORD ppSigner*: ptr PCCERT_CONTEXT dwSignerIndex*: DWORD PCTL_VERIFY_USAGE_STATUS* = ptr CTL_VERIFY_USAGE_STATUS CERT_REVOCATION_CRL_INFO* {.pure.} = object cbSize*: DWORD pBaseCrlContext*: PCCRL_CONTEXT pDeltaCrlContext*: PCCRL_CONTEXT pCrlEntry*: PCRL_ENTRY fDeltaCrlEntry*: WINBOOL PCERT_REVOCATION_CRL_INFO* = ptr CERT_REVOCATION_CRL_INFO CERT_REVOCATION_CHAIN_PARA* {.pure.} = object cbSize*: DWORD hChainEngine*: HCERTCHAINENGINE hAdditionalStore*: HCERTSTORE dwChainFlags*: DWORD dwUrlRetrievalTimeout*: DWORD pftCurrentTime*: LPFILETIME pftCacheResync*: LPFILETIME cbMaxUrlRetrievalByteCount*: DWORD PCERT_REVOCATION_CHAIN_PARA* = ptr CERT_REVOCATION_CHAIN_PARA CERT_REVOCATION_PARA* {.pure.} = object cbSize*: DWORD pIssuerCert*: PCCERT_CONTEXT cCertStore*: DWORD rgCertStore*: ptr HCERTSTORE hCrlStore*: HCERTSTORE pftTimeToUse*: LPFILETIME dwUrlRetrievalTimeout*: DWORD fCheckFreshnessTime*: WINBOOL dwFreshnessTime*: DWORD pftCurrentTime*: LPFILETIME pCrlInfo*: PCERT_REVOCATION_CRL_INFO pftCacheResync*: LPFILETIME pChainPara*: PCERT_REVOCATION_CHAIN_PARA PCERT_REVOCATION_PARA* = ptr CERT_REVOCATION_PARA CERT_REVOCATION_STATUS* {.pure.} = object cbSize*: DWORD dwIndex*: DWORD dwError*: DWORD dwReason*: DWORD fHasFreshnessTime*: WINBOOL dwFreshnessTime*: DWORD PCERT_REVOCATION_STATUS* = ptr CERT_REVOCATION_STATUS CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO* {.pure.} = object CertSignHashCNGAlgPropData*: CRYPT_DATA_BLOB CertIssuerPubKeyBitLengthPropData*: CRYPT_DATA_BLOB PCRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO* = ptr CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA* {.pure.} = object cOID*: DWORD rgpszOID*: ptr LPSTR PCRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA* = ptr CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA CRYPT_SIGN_MESSAGE_PARA* {.pure.} = object cbSize*: DWORD dwMsgEncodingType*: DWORD pSigningCert*: PCCERT_CONTEXT HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pvHashAuxInfo*: pointer cMsgCert*: DWORD rgpMsgCert*: ptr PCCERT_CONTEXT cMsgCrl*: DWORD rgpMsgCrl*: ptr PCCRL_CONTEXT cAuthAttr*: DWORD rgAuthAttr*: PCRYPT_ATTRIBUTE cUnauthAttr*: DWORD rgUnauthAttr*: PCRYPT_ATTRIBUTE dwFlags*: DWORD dwInnerContentType*: DWORD HashEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pvHashEncryptionAuxInfo*: pointer PCRYPT_SIGN_MESSAGE_PARA* = ptr CRYPT_SIGN_MESSAGE_PARA PFN_CRYPT_GET_SIGNER_CERTIFICATE* = proc (pvGetArg: pointer, dwCertEncodingType: DWORD, pSignerId: PCERT_INFO, hMsgCertStore: HCERTSTORE): PCCERT_CONTEXT {.stdcall.} CRYPT_VERIFY_MESSAGE_PARA* {.pure.} = object cbSize*: DWORD dwMsgAndCertEncodingType*: DWORD hCryptProv*: HCRYPTPROV_LEGACY pfnGetSignerCertificate*: PFN_CRYPT_GET_SIGNER_CERTIFICATE pvGetArg*: pointer pStrongSignPara*: PCCERT_STRONG_SIGN_PARA PCRYPT_VERIFY_MESSAGE_PARA* = ptr CRYPT_VERIFY_MESSAGE_PARA CRYPT_ENCRYPT_MESSAGE_PARA* {.pure.} = object cbSize*: DWORD dwMsgEncodingType*: DWORD hCryptProv*: HCRYPTPROV_LEGACY ContentEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pvEncryptionAuxInfo*: pointer dwFlags*: DWORD dwInnerContentType*: DWORD PCRYPT_ENCRYPT_MESSAGE_PARA* = ptr CRYPT_ENCRYPT_MESSAGE_PARA CRYPT_DECRYPT_MESSAGE_PARA* {.pure.} = object cbSize*: DWORD dwMsgAndCertEncodingType*: DWORD cCertStore*: DWORD rghCertStore*: ptr HCERTSTORE dwFlags*: DWORD PCRYPT_DECRYPT_MESSAGE_PARA* = ptr CRYPT_DECRYPT_MESSAGE_PARA CRYPT_HASH_MESSAGE_PARA* {.pure.} = object cbSize*: DWORD dwMsgEncodingType*: DWORD hCryptProv*: HCRYPTPROV_LEGACY HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pvHashAuxInfo*: pointer PCRYPT_HASH_MESSAGE_PARA* = ptr CRYPT_HASH_MESSAGE_PARA CRYPT_KEY_SIGN_MESSAGE_PARA_UNION1* {.pure, union.} = object hCryptProv*: HCRYPTPROV hNCryptKey*: NCRYPT_KEY_HANDLE CRYPT_KEY_SIGN_MESSAGE_PARA* {.pure.} = object cbSize*: DWORD dwMsgAndCertEncodingType*: DWORD union1*: CRYPT_KEY_SIGN_MESSAGE_PARA_UNION1 dwKeySpec*: DWORD HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pvHashAuxInfo*: pointer PubKeyAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER PCRYPT_KEY_SIGN_MESSAGE_PARA* = ptr CRYPT_KEY_SIGN_MESSAGE_PARA CRYPT_KEY_VERIFY_MESSAGE_PARA* {.pure.} = object cbSize*: DWORD dwMsgEncodingType*: DWORD hCryptProv*: HCRYPTPROV_LEGACY PCRYPT_KEY_VERIFY_MESSAGE_PARA* = ptr CRYPT_KEY_VERIFY_MESSAGE_PARA CERT_CHAIN* {.pure.} = object cCerts*: DWORD certs*: PCERT_BLOB keyLocatorInfo*: CRYPT_KEY_PROV_INFO PCERT_CHAIN* = ptr CERT_CHAIN CRYPT_BLOB_ARRAY* {.pure.} = object cBlob*: DWORD rgBlob*: PCRYPT_DATA_BLOB PCRYPT_BLOB_ARRAY* = ptr CRYPT_BLOB_ARRAY CRYPT_CREDENTIALS* {.pure.} = object cbSize*: DWORD pszCredentialsOid*: LPCSTR pvCredentials*: LPVOID PCRYPT_CREDENTIALS* = ptr CRYPT_CREDENTIALS CRYPT_PASSWORD_CREDENTIALSA* {.pure.} = object cbSize*: DWORD pszUsername*: LPSTR pszPassword*: LPSTR PCRYPT_PASSWORD_CREDENTIALSA* = ptr CRYPT_PASSWORD_CREDENTIALSA CRYPT_PASSWORD_CREDENTIALSW* {.pure.} = object cbSize*: DWORD pszUsername*: LPWSTR pszPassword*: LPWSTR PCRYPT_PASSWORD_CREDENTIALSW* = ptr CRYPT_PASSWORD_CREDENTIALSW CRYPTNET_URL_CACHE_PRE_FETCH_INFO* {.pure.} = object cbSize*: DWORD dwObjectType*: DWORD dwError*: DWORD dwReserved*: DWORD ThisUpdateTime*: FILETIME NextUpdateTime*: FILETIME PublishTime*: FILETIME PCRYPTNET_URL_CACHE_PRE_FETCH_INFO* = ptr CRYPTNET_URL_CACHE_PRE_FETCH_INFO CRYPTNET_URL_CACHE_FLUSH_INFO* {.pure.} = object cbSize*: DWORD dwExemptSeconds*: DWORD ExpireTime*: FILETIME PCRYPTNET_URL_CACHE_FLUSH_INFO* = ptr CRYPTNET_URL_CACHE_FLUSH_INFO CRYPTNET_URL_CACHE_RESPONSE_INFO* {.pure.} = object cbSize*: DWORD wResponseType*: WORD wResponseFlags*: WORD LastModifiedTime*: FILETIME dwMaxAge*: DWORD pwszETag*: LPCWSTR dwProxyId*: DWORD PCRYPTNET_URL_CACHE_RESPONSE_INFO* = ptr CRYPTNET_URL_CACHE_RESPONSE_INFO CRYPT_RETRIEVE_AUX_INFO* {.pure.} = object cbSize*: DWORD pLastSyncTime*: ptr FILETIME dwMaxUrlRetrievalByteCount*: DWORD pPreFetchInfo*: PCRYPTNET_URL_CACHE_PRE_FETCH_INFO pFlushInfo*: PCRYPTNET_URL_CACHE_FLUSH_INFO ppResponseInfo*: ptr PCRYPTNET_URL_CACHE_RESPONSE_INFO pwszCacheFileNamePrefix*: LPWSTR pftCacheResync*: LPFILETIME fProxyCacheRetrieval*: WINBOOL dwHttpStatusCode*: DWORD PCRYPT_RETRIEVE_AUX_INFO* = ptr CRYPT_RETRIEVE_AUX_INFO PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC* = proc (pvCompletion: LPVOID, dwCompletionCode: DWORD, pszUrl: LPCSTR, pszObjectOid: LPSTR, pvObject: LPVOID): VOID {.stdcall.} CRYPT_ASYNC_RETRIEVAL_COMPLETION* {.pure.} = object pfnCompletion*: PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC pvCompletion*: LPVOID PCRYPT_ASYNC_RETRIEVAL_COMPLETION* = ptr CRYPT_ASYNC_RETRIEVAL_COMPLETION CRYPT_URL_ARRAY* {.pure.} = object cUrl*: DWORD rgwszUrl*: ptr LPWSTR PCRYPT_URL_ARRAY* = ptr CRYPT_URL_ARRAY CRYPT_URL_INFO* {.pure.} = object cbSize*: DWORD dwSyncDeltaTime*: DWORD cGroup*: DWORD rgcGroupEntry*: ptr DWORD PCRYPT_URL_INFO* = ptr CRYPT_URL_INFO CERT_CRL_CONTEXT_PAIR* {.pure.} = object pCertContext*: PCCERT_CONTEXT pCrlContext*: PCCRL_CONTEXT PCERT_CRL_CONTEXT_PAIR* = ptr CERT_CRL_CONTEXT_PAIR PCCERT_CRL_CONTEXT_PAIR* = ptr CERT_CRL_CONTEXT_PAIR CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO* {.pure.} = object cbSize*: DWORD iDeltaCrlIndicator*: int32 pftCacheResync*: LPFILETIME pLastSyncTime*: LPFILETIME pMaxAgeTime*: LPFILETIME pChainPara*: PCERT_REVOCATION_CHAIN_PARA pDeltaCrlIndicator*: PCRYPT_INTEGER_BLOB PCRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO* = ptr CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO CERT_CHAIN_ENGINE_CONFIG* {.pure.} = object cbSize*: DWORD hRestrictedRoot*: HCERTSTORE hRestrictedTrust*: HCERTSTORE hRestrictedOther*: HCERTSTORE cAdditionalStore*: DWORD rghAdditionalStore*: ptr HCERTSTORE dwFlags*: DWORD dwUrlRetrievalTimeout*: DWORD MaximumCachedCertificates*: DWORD CycleDetectionModulus*: DWORD hExclusiveRoot*: HCERTSTORE hExclusiveTrustedPeople*: HCERTSTORE dwExclusiveFlags*: DWORD PCERT_CHAIN_ENGINE_CONFIG* = ptr CERT_CHAIN_ENGINE_CONFIG CERT_TRUST_STATUS* {.pure.} = object dwErrorStatus*: DWORD dwInfoStatus*: DWORD PCERT_TRUST_STATUS* = ptr CERT_TRUST_STATUS CERT_REVOCATION_INFO* {.pure.} = object cbSize*: DWORD dwRevocationResult*: DWORD pszRevocationOid*: LPCSTR pvOidSpecificInfo*: LPVOID fHasFreshnessTime*: WINBOOL dwFreshnessTime*: DWORD pCrlInfo*: PCERT_REVOCATION_CRL_INFO PCERT_REVOCATION_INFO* = ptr CERT_REVOCATION_INFO CERT_TRUST_LIST_INFO* {.pure.} = object cbSize*: DWORD pCtlEntry*: PCTL_ENTRY pCtlContext*: PCCTL_CONTEXT PCERT_TRUST_LIST_INFO* = ptr CERT_TRUST_LIST_INFO CERT_CHAIN_ELEMENT* {.pure.} = object cbSize*: DWORD pCertContext*: PCCERT_CONTEXT TrustStatus*: CERT_TRUST_STATUS pRevocationInfo*: PCERT_REVOCATION_INFO pIssuanceUsage*: PCERT_ENHKEY_USAGE pApplicationUsage*: PCERT_ENHKEY_USAGE pwszExtendedErrorInfo*: LPCWSTR PCERT_CHAIN_ELEMENT* = ptr CERT_CHAIN_ELEMENT PCCERT_CHAIN_ELEMENT* = ptr CERT_CHAIN_ELEMENT CERT_SIMPLE_CHAIN* {.pure.} = object cbSize*: DWORD TrustStatus*: CERT_TRUST_STATUS cElement*: DWORD rgpElement*: ptr PCERT_CHAIN_ELEMENT pTrustListInfo*: PCERT_TRUST_LIST_INFO fHasRevocationFreshnessTime*: WINBOOL dwRevocationFreshnessTime*: DWORD PCERT_SIMPLE_CHAIN* = ptr CERT_SIMPLE_CHAIN PCCERT_SIMPLE_CHAIN* = ptr CERT_SIMPLE_CHAIN PCCERT_CHAIN_CONTEXT* = ptr CERT_CHAIN_CONTEXT CERT_CHAIN_CONTEXT* {.pure.} = object cbSize*: DWORD TrustStatus*: CERT_TRUST_STATUS cChain*: DWORD rgpChain*: ptr PCERT_SIMPLE_CHAIN cLowerQualityChainContext*: DWORD rgpLowerQualityChainContext*: ptr PCCERT_CHAIN_CONTEXT fHasRevocationFreshnessTime*: WINBOOL dwRevocationFreshnessTime*: DWORD dwCreateFlags*: DWORD ChainId*: GUID PCERT_CHAIN_CONTEXT* = ptr CERT_CHAIN_CONTEXT CERT_USAGE_MATCH* {.pure.} = object dwType*: DWORD Usage*: CERT_ENHKEY_USAGE PCERT_USAGE_MATCH* = ptr CERT_USAGE_MATCH CTL_USAGE_MATCH* {.pure.} = object dwType*: DWORD Usage*: CTL_USAGE PCTL_USAGE_MATCH* = ptr CTL_USAGE_MATCH CERT_CHAIN_PARA* {.pure.} = object cbSize*: DWORD RequestedUsage*: CERT_USAGE_MATCH RequestedIssuancePolicy*: CERT_USAGE_MATCH dwUrlRetrievalTimeout*: DWORD fCheckRevocationFreshnessTime*: WINBOOL dwRevocationFreshnessTime*: DWORD pftCacheResync*: LPFILETIME pStrongSignPara*: PCCERT_STRONG_SIGN_PARA dwStrongSignFlags*: DWORD PCERT_CHAIN_PARA* = ptr CERT_CHAIN_PARA CRL_REVOCATION_INFO* {.pure.} = object pCrlEntry*: PCRL_ENTRY pCrlContext*: PCCRL_CONTEXT pCrlIssuerChain*: PCCERT_CHAIN_CONTEXT PCRL_REVOCATION_INFO* = ptr CRL_REVOCATION_INFO PFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK* = proc (pCert: PCCERT_CONTEXT, pvFindArg: pointer): WINBOOL {.stdcall.} CERT_CHAIN_FIND_ISSUER_PARA* {.pure.} = object cbSize*: DWORD pszUsageIdentifier*: LPCSTR dwKeySpec*: DWORD dwAcquirePrivateKeyFlags*: DWORD cIssuer*: DWORD rgIssuer*: ptr CERT_NAME_BLOB pfnFindCallback*: PFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK pvFindArg*: pointer pdwIssuerChainIndex*: ptr DWORD pdwIssuerElementIndex*: ptr DWORD PCERT_CHAIN_FIND_ISSUER_PARA* = ptr CERT_CHAIN_FIND_ISSUER_PARA CERT_CHAIN_FIND_BY_ISSUER_PARA* = CERT_CHAIN_FIND_ISSUER_PARA PCERT_CHAIN_FIND_BY_ISSUER_PARA* = ptr CERT_CHAIN_FIND_ISSUER_PARA CERT_CHAIN_POLICY_PARA* {.pure.} = object cbSize*: DWORD dwFlags*: DWORD pvExtraPolicyPara*: pointer PCERT_CHAIN_POLICY_PARA* = ptr CERT_CHAIN_POLICY_PARA CERT_CHAIN_POLICY_STATUS* {.pure.} = object cbSize*: DWORD dwError*: DWORD lChainIndex*: LONG lElementIndex*: LONG pvExtraPolicyStatus*: pointer PCERT_CHAIN_POLICY_STATUS* = ptr CERT_CHAIN_POLICY_STATUS AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA* {.pure.} = object cbSize*: DWORD dwRegPolicySettings*: DWORD pSignerInfo*: PCMSG_SIGNER_INFO PAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA* = ptr AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS* {.pure.} = object cbSize*: DWORD fCommercial*: WINBOOL PAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS* = ptr AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA* {.pure.} = object cbSize*: DWORD dwRegPolicySettings*: DWORD fCommercial*: WINBOOL PAUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA* = ptr AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA HTTPSPolicyCallbackData_UNION1* {.pure, union.} = object cbStruct*: DWORD cbSize*: DWORD HTTPSPolicyCallbackData* {.pure.} = object union1*: HTTPSPolicyCallbackData_UNION1 dwAuthType*: DWORD fdwChecks*: DWORD pwszServerName*: ptr WCHAR PHTTPSPolicyCallbackData* = ptr HTTPSPolicyCallbackData SSL_EXTRA_CERT_CHAIN_POLICY_PARA* = HTTPSPolicyCallbackData PSSL_EXTRA_CERT_CHAIN_POLICY_PARA* = ptr HTTPSPolicyCallbackData EV_EXTRA_CERT_CHAIN_POLICY_PARA* {.pure.} = object cbSize*: DWORD dwRootProgramQualifierFlags*: DWORD PEV_EXTRA_CERT_CHAIN_POLICY_PARA* = ptr EV_EXTRA_CERT_CHAIN_POLICY_PARA EV_EXTRA_CERT_CHAIN_POLICY_STATUS* {.pure.} = object cbSize*: DWORD dwQualifiers*: DWORD dwIssuanceUsageIndex*: DWORD PEV_EXTRA_CERT_CHAIN_POLICY_STATUS* = ptr EV_EXTRA_CERT_CHAIN_POLICY_STATUS CERT_SERVER_OCSP_RESPONSE_CONTEXT* {.pure.} = object cbSize*: DWORD pbEncodedOcspResponse*: ptr BYTE cbEncodedOcspResponse*: DWORD PCERT_SERVER_OCSP_RESPONSE_CONTEXT* = ptr CERT_SERVER_OCSP_RESPONSE_CONTEXT PCCERT_SERVER_OCSP_RESPONSE_CONTEXT* = ptr CERT_SERVER_OCSP_RESPONSE_CONTEXT CERT_SELECT_CHAIN_PARA* {.pure.} = object hChainEngine*: HCERTCHAINENGINE pTime*: PFILETIME hAdditionalStore*: HCERTSTORE pChainPara*: PCERT_CHAIN_PARA dwFlags*: DWORD PCERT_SELECT_CHAIN_PARA* = ptr CERT_SELECT_CHAIN_PARA PCCERT_SELECT_CHAIN_PARA* = ptr CERT_SELECT_CHAIN_PARA CERT_SELECT_CRITERIA* {.pure.} = object dwType*: DWORD cPara*: DWORD ppPara*: ptr pointer PCERT_SELECT_CRITERIA* = ptr CERT_SELECT_CRITERIA PCCERT_SELECT_CRITERIA* = ptr CERT_SELECT_CRITERIA CRYPT_TIMESTAMP_REQUEST* {.pure.} = object dwVersion*: DWORD HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER HashedMessage*: CRYPT_DER_BLOB pszTSAPolicyId*: LPSTR Nonce*: CRYPT_INTEGER_BLOB fCertReq*: WINBOOL cExtension*: DWORD rgExtension*: PCERT_EXTENSION PCRYPT_TIMESTAMP_REQUEST* = ptr CRYPT_TIMESTAMP_REQUEST CRYPT_TIMESTAMP_RESPONSE* {.pure.} = object dwStatus*: DWORD cFreeText*: DWORD rgFreeText*: ptr LPWSTR FailureInfo*: CRYPT_BIT_BLOB ContentInfo*: CRYPT_DER_BLOB PCRYPT_TIMESTAMP_RESPONSE* = ptr CRYPT_TIMESTAMP_RESPONSE CRYPT_TIMESTAMP_ACCURACY* {.pure.} = object dwSeconds*: DWORD dwMillis*: DWORD dwMicros*: DWORD PCRYPT_TIMESTAMP_ACCURACY* = ptr CRYPT_TIMESTAMP_ACCURACY CRYPT_TIMESTAMP_INFO* {.pure.} = object dwVersion*: DWORD pszTSAPolicyId*: LPSTR HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER HashedMessage*: CRYPT_DER_BLOB SerialNumber*: CRYPT_INTEGER_BLOB ftTime*: FILETIME pvAccuracy*: PCRYPT_TIMESTAMP_ACCURACY fOrdering*: WINBOOL Nonce*: CRYPT_DER_BLOB Tsa*: CRYPT_DER_BLOB cExtension*: DWORD rgExtension*: PCERT_EXTENSION PCRYPT_TIMESTAMP_INFO* = ptr CRYPT_TIMESTAMP_INFO CRYPT_TIMESTAMP_CONTEXT* {.pure.} = object cbEncoded*: DWORD pbEncoded*: ptr BYTE pTimeStamp*: PCRYPT_TIMESTAMP_INFO PCRYPT_TIMESTAMP_CONTEXT* = ptr CRYPT_TIMESTAMP_CONTEXT CRYPT_TIMESTAMP_PARA* {.pure.} = object pszTSAPolicyId*: LPCSTR fRequestCerts*: WINBOOL Nonce*: CRYPT_INTEGER_BLOB cExtension*: DWORD rgExtension*: PCERT_EXTENSION PCRYPT_TIMESTAMP_PARA* = ptr CRYPT_TIMESTAMP_PARA PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET* = proc (pPluginContext: LPVOID, pIdentifier: PCRYPT_DATA_BLOB, dwNameType: DWORD, pNameBlob: PCERT_NAME_BLOB, ppbContent: ptr PBYTE, pcbContent: ptr DWORD, ppwszPassword: ptr PCWSTR, ppIdentifier: ptr PCRYPT_DATA_BLOB): WINBOOL {.stdcall.} PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE* = proc (dwReason: DWORD, pPluginContext: LPVOID): void {.stdcall.} PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD* = proc (pPluginContext: LPVOID, pwszPassword: PCWSTR): void {.stdcall.} PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE* = proc (pPluginContext: LPVOID, pbData: PBYTE): void {.stdcall.} PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER* = proc (pPluginContext: LPVOID, pIdentifier: PCRYPT_DATA_BLOB): void {.stdcall.} CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE* {.pure.} = object cbSize*: DWORD pfnGet*: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET pfnRelease*: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE pfnFreePassword*: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD pfnFree*: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE pfnFreeIdentifier*: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER PCRYPT_OBJECT_LOCATOR_PROVIDER_TABLE* = ptr CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE CRYPTPROTECT_PROMPTSTRUCT* {.pure.} = object cbSize*: DWORD dwPromptFlags*: DWORD hwndApp*: HWND szPrompt*: LPCWSTR PCRYPTPROTECT_PROMPTSTRUCT* = ptr CRYPTPROTECT_PROMPTSTRUCT const ALG_CLASS_ANY* = 0 ALG_CLASS_SIGNATURE* = 1 shl 13 ALG_CLASS_MSG_ENCRYPT* = 2 shl 13 ALG_CLASS_DATA_ENCRYPT* = 3 shl 13 ALG_CLASS_HASH* = 4 shl 13 ALG_CLASS_KEY_EXCHANGE* = 5 shl 13 ALG_CLASS_ALL* = 7 shl 13 ALG_TYPE_ANY* = 0 ALG_TYPE_DSS* = 1 shl 9 ALG_TYPE_RSA* = 2 shl 9 ALG_TYPE_BLOCK* = 3 shl 9 ALG_TYPE_STREAM* = 4 shl 9 ALG_TYPE_DH* = 5 shl 9 ALG_TYPE_SECURECHANNEL* = 6 shl 9 ALG_SID_ANY* = 0 ALG_SID_RSA_ANY* = 0 ALG_SID_RSA_PKCS* = 1 ALG_SID_RSA_MSATWORK* = 2 ALG_SID_RSA_ENTRUST* = 3 ALG_SID_RSA_PGP* = 4 ALG_SID_DSS_ANY* = 0 ALG_SID_DSS_PKCS* = 1 ALG_SID_DSS_DMS* = 2 ALG_SID_ECDSA* = 3 ALG_SID_DES* = 1 ALG_SID_3DES* = 3 ALG_SID_DESX* = 4 ALG_SID_IDEA* = 5 ALG_SID_CAST* = 6 ALG_SID_SAFERSK64* = 7 ALG_SID_SAFERSK128* = 8 ALG_SID_3DES_112* = 9 ALG_SID_SKIPJACK* = 10 ALG_SID_TEK* = 11 ALG_SID_CYLINK_MEK* = 12 ALG_SID_RC5* = 13 ALG_SID_AES_128* = 14 ALG_SID_AES_192* = 15 ALG_SID_AES_256* = 16 ALG_SID_AES* = 17 CRYPT_MODE_CBCI* = 6 CRYPT_MODE_CFBP* = 7 CRYPT_MODE_OFBP* = 8 CRYPT_MODE_CBCOFM* = 9 CRYPT_MODE_CBCOFMI* = 10 ALG_SID_RC2* = 2 ALG_SID_RC4* = 1 ALG_SID_SEAL* = 2 ALG_SID_DH_SANDF* = 1 ALG_SID_DH_EPHEM* = 2 ALG_SID_AGREED_KEY_ANY* = 3 ALG_SID_KEA* = 4 ALG_SID_ECDH* = 5 ALG_SID_MD2* = 1 ALG_SID_MD4* = 2 ALG_SID_MD5* = 3 ALG_SID_SHA* = 4 ALG_SID_SHA1* = 4 ALG_SID_MAC* = 5 ALG_SID_RIPEMD* = 6 ALG_SID_RIPEMD160* = 7 ALG_SID_SSL3SHAMD5* = 8 ALG_SID_HMAC* = 9 ALG_SID_TLS1PRF* = 10 ALG_SID_HASH_REPLACE_OWF* = 11 ALG_SID_SHA_256* = 12 ALG_SID_SHA_384* = 13 ALG_SID_SHA_512* = 14 ALG_SID_SSL3_MASTER* = 1 ALG_SID_SCHANNEL_MASTER_HASH* = 2 ALG_SID_SCHANNEL_MAC_KEY* = 3 ALG_SID_PCT1_MASTER* = 4 ALG_SID_SSL2_MASTER* = 5 ALG_SID_TLS1_MASTER* = 6 ALG_SID_SCHANNEL_ENC_KEY* = 7 ALG_SID_ECMQV* = 1 ALG_SID_EXAMPLE* = 80 CALG_MD2* = ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_MD2 CALG_MD4* = ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_MD4 CALG_MD5* = ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_MD5 CALG_SHA* = ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_SHA CALG_SHA1* = ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_SHA1 CALG_MAC* = ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_MAC CALG_RSA_SIGN* = ALG_CLASS_SIGNATURE or ALG_TYPE_RSA or ALG_SID_RSA_ANY CALG_DSS_SIGN* = ALG_CLASS_SIGNATURE or ALG_TYPE_DSS or ALG_SID_DSS_ANY CALG_NO_SIGN* = ALG_CLASS_SIGNATURE or ALG_TYPE_ANY or ALG_SID_ANY CALG_RSA_KEYX* = ALG_CLASS_KEY_EXCHANGE or ALG_TYPE_RSA or ALG_SID_RSA_ANY CALG_DES* = ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_DES CALG_3DES_112* = ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_3DES_112 CALG_3DES* = ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_3DES CALG_DESX* = ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_DESX CALG_RC2* = ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_RC2 CALG_RC4* = ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_STREAM or ALG_SID_RC4 CALG_SEAL* = ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_STREAM or ALG_SID_SEAL CALG_DH_SF* = ALG_CLASS_KEY_EXCHANGE or ALG_TYPE_DH or ALG_SID_DH_SANDF CALG_DH_EPHEM* = ALG_CLASS_KEY_EXCHANGE or ALG_TYPE_DH or ALG_SID_DH_EPHEM CALG_AGREEDKEY_ANY* = ALG_CLASS_KEY_EXCHANGE or ALG_TYPE_DH or ALG_SID_AGREED_KEY_ANY CALG_KEA_KEYX* = ALG_CLASS_KEY_EXCHANGE or ALG_TYPE_DH or ALG_SID_KEA CALG_HUGHES_MD5* = ALG_CLASS_KEY_EXCHANGE or ALG_TYPE_ANY or ALG_SID_MD5 CALG_SKIPJACK* = ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_SKIPJACK CALG_TEK* = ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_TEK CALG_CYLINK_MEK* = ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_CYLINK_MEK CALG_SSL3_SHAMD5* = ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_SSL3SHAMD5 CALG_SSL3_MASTER* = ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNEL or ALG_SID_SSL3_MASTER CALG_SCHANNEL_MASTER_HASH* = ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNEL or ALG_SID_SCHANNEL_MASTER_HASH CALG_SCHANNEL_MAC_KEY* = ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNEL or ALG_SID_SCHANNEL_MAC_KEY CALG_SCHANNEL_ENC_KEY* = ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNEL or ALG_SID_SCHANNEL_ENC_KEY CALG_PCT1_MASTER* = ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNEL or ALG_SID_PCT1_MASTER CALG_SSL2_MASTER* = ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNEL or ALG_SID_SSL2_MASTER CALG_TLS1_MASTER* = ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNEL or ALG_SID_TLS1_MASTER CALG_RC5* = ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_RC5 CALG_HMAC* = ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_HMAC CALG_TLS1PRF* = ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_TLS1PRF CALG_HASH_REPLACE_OWF* = ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_HASH_REPLACE_OWF CALG_AES_128* = ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_AES_128 CALG_AES_192* = ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_AES_192 CALG_AES_256* = ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_AES_256 CALG_AES* = ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_AES CALG_SHA_256* = ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_SHA_256 CALG_SHA_384* = ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_SHA_384 CALG_SHA_512* = ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_SHA_512 CALG_ECDH* = ALG_CLASS_KEY_EXCHANGE or ALG_TYPE_DH or ALG_SID_ECDH CALG_ECMQV* = ALG_CLASS_KEY_EXCHANGE or ALG_TYPE_ANY or ALG_SID_ECMQV CALG_ECDSA* = ALG_CLASS_SIGNATURE or ALG_TYPE_DSS or ALG_SID_ECDSA CRYPT_VERIFYCONTEXT* = 0xf0000000'i32 CRYPT_NEWKEYSET* = 0x8 CRYPT_DELETEKEYSET* = 0x10 CRYPT_MACHINE_KEYSET* = 0x20 CRYPT_SILENT* = 0x40 CRYPT_DEFAULT_CONTAINER_OPTIONAL* = 0x80 CRYPT_EXPORTABLE* = 0x1 CRYPT_USER_PROTECTED* = 0x2 CRYPT_CREATE_SALT* = 0x4 CRYPT_UPDATE_KEY* = 0x8 CRYPT_NO_SALT* = 0x10 CRYPT_PREGEN* = 0x40 CRYPT_RECIPIENT* = 0x10 CRYPT_INITIATOR* = 0x40 CRYPT_ONLINE* = 0x80 CRYPT_SF* = 0x100 CRYPT_CREATE_IV* = 0x200 CRYPT_KEK* = 0x400 CRYPT_DATA_KEY* = 0x800 CRYPT_VOLATILE* = 0x1000 CRYPT_SGCKEY* = 0x2000 CRYPT_ARCHIVABLE* = 0x4000 CRYPT_FORCE_KEY_PROTECTION_HIGH* = 0x8000 CRYPT_USER_PROTECTED_STRONG* = 0x100000 RSA1024BIT_KEY* = 0x4000000 CRYPT_SERVER* = 0x400 KEY_LENGTH_MASK* = 0xffff0000'i32 CRYPT_Y_ONLY* = 0x1 CRYPT_SSL2_FALLBACK* = 0x2 crypt_destroykey* = 0x4 CRYPT_DECRYPT_RSA_NO_PADDING_CHECK* = 0x20 CRYPT_OAEP* = 0x40 CRYPT_BLOB_VER3* = 0x80 CRYPT_IPSEC_HMAC_KEY* = 0x100 CRYPT_SECRETDIGEST* = 0x1 CRYPT_OWF_REPL_LM_HASH* = 0x1 CRYPT_LITTLE_ENDIAN* = 0x1 CRYPT_NOHASHOID* = 0x1 CRYPT_TYPE2_FORMAT* = 0x2 CRYPT_X931_FORMAT* = 0x4 CRYPT_MACHINE_DEFAULT* = 0x1 CRYPT_USER_DEFAULT* = 0x2 CRYPT_DELETE_DEFAULT* = 0x4 SIMPLEBLOB* = 0x1 PUBLICKEYBLOB* = 0x6 PRIVATEKEYBLOB* = 0x7 PLAINTEXTKEYBLOB* = 0x8 OPAQUEKEYBLOB* = 0x9 PUBLICKEYBLOBEX* = 0xa SYMMETRICWRAPKEYBLOB* = 0xb KEYSTATEBLOB* = 0xc AT_KEYEXCHANGE* = 1 AT_SIGNATURE* = 2 CRYPT_USERDATA* = 1 KP_IV* = 1 KP_SALT* = 2 KP_PADDING* = 3 KP_MODE* = 4 KP_MODE_BITS* = 5 KP_PERMISSIONS* = 6 KP_ALGID* = 7 KP_BLOCKLEN* = 8 KP_KEYLEN* = 9 KP_SALT_EX* = 10 KP_P* = 11 KP_G* = 12 KP_Q* = 13 KP_X* = 14 KP_Y* = 15 KP_RA* = 16 KP_RB* = 17 KP_INFO* = 18 KP_EFFECTIVE_KEYLEN* = 19 KP_SCHANNEL_ALG* = 20 KP_CLIENT_RANDOM* = 21 KP_SERVER_RANDOM* = 22 KP_RP* = 23 KP_PRECOMP_MD5* = 24 KP_PRECOMP_SHA* = 25 KP_CERTIFICATE* = 26 KP_CLEAR_KEY* = 27 KP_PUB_EX_LEN* = 28 KP_PUB_EX_VAL* = 29 KP_KEYVAL* = 30 KP_ADMIN_PIN* = 31 KP_KEYEXCHANGE_PIN* = 32 KP_SIGNATURE_PIN* = 33 KP_PREHASH* = 34 KP_ROUNDS* = 35 KP_OAEP_PARAMS* = 36 KP_CMS_KEY_INFO* = 37 KP_CMS_DH_KEY_INFO* = 38 KP_PUB_PARAMS* = 39 KP_VERIFY_PARAMS* = 40 KP_HIGHEST_VERSION* = 41 KP_GET_USE_COUNT* = 42 KP_PIN_ID* = 43 KP_PIN_INFO* = 44 PKCS5_PADDING* = 1 RANDOM_PADDING* = 2 ZERO_PADDING* = 3 CRYPT_MODE_CBC* = 1 CRYPT_MODE_ECB* = 2 CRYPT_MODE_OFB* = 3 CRYPT_MODE_CFB* = 4 CRYPT_MODE_CTS* = 5 crypt_encrypt* = 0x1 crypt_decrypt* = 0x2 CRYPT_EXPORT* = 0x4 CRYPT_READ* = 0x8 CRYPT_WRITE* = 0x10 CRYPT_MAC* = 0x20 crypt_export_key* = 0x40 crypt_import_key* = 0x80 CRYPT_ARCHIVE* = 0x100 HP_ALGID* = 0x1 HP_HASHVAL* = 0x2 HP_HASHSIZE* = 0x4 HP_HMAC_INFO* = 0x5 HP_TLS1PRF_LABEL* = 0x6 HP_TLS1PRF_SEED* = 0x7 CRYPT_FAILED* = FALSE CRYPT_SUCCEED* = TRUE PP_ENUMALGS* = 1 PP_ENUMCONTAINERS* = 2 PP_IMPTYPE* = 3 PP_NAME* = 4 PP_VERSION* = 5 PP_CONTAINER* = 6 PP_CHANGE_PASSWORD* = 7 PP_KEYSET_SEC_DESCR* = 8 PP_CERTCHAIN* = 9 PP_KEY_TYPE_SUBTYPE* = 10 PP_PROVTYPE* = 16 PP_KEYSTORAGE* = 17 PP_APPLI_CERT* = 18 PP_SYM_KEYSIZE* = 19 PP_SESSION_KEYSIZE* = 20 PP_UI_PROMPT* = 21 PP_ENUMALGS_EX* = 22 PP_ENUMMANDROOTS* = 25 PP_ENUMELECTROOTS* = 26 PP_KEYSET_TYPE* = 27 PP_ADMIN_PIN* = 31 PP_KEYEXCHANGE_PIN* = 32 PP_SIGNATURE_PIN* = 33 PP_SIG_KEYSIZE_INC* = 34 PP_KEYX_KEYSIZE_INC* = 35 PP_UNIQUE_CONTAINER* = 36 PP_SGC_INFO* = 37 PP_USE_HARDWARE_RNG* = 38 PP_KEYSPEC* = 39 PP_ENUMEX_SIGNING_PROT* = 40 PP_CRYPT_COUNT_KEY_USE* = 41 PP_USER_CERTSTORE* = 42 PP_SMARTCARD_READER* = 43 PP_SMARTCARD_GUID* = 45 PP_ROOT_CERTSTORE* = 46 PP_SMARTCARD_READER_ICON* = 47 CRYPT_FIRST* = 1 CRYPT_NEXT* = 2 CRYPT_SGC_ENUM* = 4 CRYPT_IMPL_HARDWARE* = 1 CRYPT_IMPL_SOFTWARE* = 2 CRYPT_IMPL_MIXED* = 3 CRYPT_IMPL_UNKNOWN* = 4 CRYPT_IMPL_REMOVABLE* = 8 CRYPT_SEC_DESCR* = 0x1 CRYPT_PSTORE* = 0x2 CRYPT_UI_PROMPT* = 0x4 CRYPT_FLAG_PCT1* = 0x1 CRYPT_FLAG_SSL2* = 0x2 CRYPT_FLAG_SSL3* = 0x4 CRYPT_FLAG_TLS1* = 0x8 CRYPT_FLAG_IPSEC* = 0x10 CRYPT_FLAG_SIGNING* = 0x20 CRYPT_SGC* = 0x1 CRYPT_FASTSGC* = 0x2 PP_CLIENT_HWND* = 1 PP_CONTEXT_INFO* = 11 PP_KEYEXCHANGE_KEYSIZE* = 12 PP_SIGNATURE_KEYSIZE* = 13 PP_KEYEXCHANGE_ALG* = 14 PP_SIGNATURE_ALG* = 15 PP_DELETEKEY* = 24 PP_PIN_PROMPT_STRING* = 44 PP_SECURE_KEYEXCHANGE_PIN* = 47 PP_SECURE_SIGNATURE_PIN* = 48 PROV_RSA_FULL* = 1 PROV_RSA_SIG* = 2 PROV_DSS* = 3 PROV_FORTEZZA* = 4 PROV_MS_EXCHANGE* = 5 PROV_SSL* = 6 PROV_STT_MER* = 7 PROV_STT_ACQ* = 8 PROV_STT_BRND* = 9 PROV_STT_ROOT* = 10 PROV_STT_ISS* = 11 PROV_RSA_SCHANNEL* = 12 PROV_DSS_DH* = 13 PROV_EC_ECDSA_SIG* = 14 PROV_EC_ECNRA_SIG* = 15 PROV_EC_ECDSA_FULL* = 16 PROV_EC_ECNRA_FULL* = 17 PROV_DH_SCHANNEL* = 18 PROV_SPYRUS_LYNKS* = 20 PROV_RNG* = 21 PROV_INTEL_SEC* = 22 PROV_REPLACE_OWF* = 23 PROV_RSA_AES* = 24 MS_DEF_PROV_A* = "Microsoft Base Cryptographic Provider v1.0" MS_DEF_PROV_W* = "Microsoft Base Cryptographic Provider v1.0" MS_ENHANCED_PROV_A* = "Microsoft Enhanced Cryptographic Provider v1.0" MS_ENHANCED_PROV_W* = "Microsoft Enhanced Cryptographic Provider v1.0" MS_STRONG_PROV_A* = "Microsoft Strong Cryptographic Provider" MS_STRONG_PROV_W* = "Microsoft Strong Cryptographic Provider" MS_DEF_RSA_SIG_PROV_A* = "Microsoft RSA Signature Cryptographic Provider" MS_DEF_RSA_SIG_PROV_W* = "Microsoft RSA Signature Cryptographic Provider" MS_DEF_RSA_SCHANNEL_PROV_A* = "Microsoft RSA SChannel Cryptographic Provider" MS_DEF_RSA_SCHANNEL_PROV_W* = "Microsoft RSA SChannel Cryptographic Provider" MS_DEF_DSS_PROV_A* = "Microsoft Base DSS Cryptographic Provider" MS_DEF_DSS_PROV_W* = "Microsoft Base DSS Cryptographic Provider" MS_DEF_DSS_DH_PROV_A* = "Microsoft Base DSS and Diffie-Hellman Cryptographic Provider" MS_DEF_DSS_DH_PROV_W* = "Microsoft Base DSS and Diffie-Hellman Cryptographic Provider" MS_ENH_DSS_DH_PROV_A* = "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider" MS_ENH_DSS_DH_PROV_W* = "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider" MS_DEF_DH_SCHANNEL_PROV_A* = "Microsoft DH SChannel Cryptographic Provider" MS_DEF_DH_SCHANNEL_PROV_W* = "Microsoft DH SChannel Cryptographic Provider" MS_SCARD_PROV_A* = "Microsoft Base Smart Card Crypto Provider" MS_SCARD_PROV_W* = "Microsoft Base Smart Card Crypto Provider" MS_ENH_RSA_AES_PROV_A* = "Microsoft Enhanced RSA and AES Cryptographic Provider" MS_ENH_RSA_AES_PROV_W* = "Microsoft Enhanced RSA and AES Cryptographic Provider" MAXUIDLEN* = 64 EXPO_OFFLOAD_REG_VALUE* = "ExpoOffload" EXPO_OFFLOAD_FUNC_NAME* = "OffloadModExpo" szKEY_CRYPTOAPI_PRIVATE_KEY_OPTIONS* = "Software\\Policies\\Microsoft\\Cryptography" szKEY_CACHE_ENABLED* = "CachePrivateKeys" szKEY_CACHE_SECONDS* = "PrivateKeyLifetimeSeconds" szPRIV_KEY_CACHE_MAX_ITEMS* = "PrivKeyCacheMaxItems" cPRIV_KEY_CACHE_MAX_ITEMS_DEFAULT* = 20 szPRIV_KEY_CACHE_PURGE_INTERVAL_SECONDS* = "PrivKeyCachePurgeIntervalSeconds" cPRIV_KEY_CACHE_PURGE_INTERVAL_SECONDS_DEFAULT* = 86400 CUR_BLOB_VERSION* = 2 SCHANNEL_MAC_KEY* = 0x0 SCHANNEL_ENC_KEY* = 0x1 INTERNATIONAL_USAGE* = 0x1 BCRYPT_OBJECT_ALIGNMENT* = 16 BCRYPT_KDF_HASH* = "HASH" BCRYPT_KDF_HMAC* = "HMAC" BCRYPT_KDF_TLS_PRF* = "TLS_PRF" BCRYPT_KDF_SP80056A_CONCAT* = "SP800_56A_CONCAT" KDF_HASH_ALGORITHM* = 0x0 KDF_SECRET_PREPEND* = 0x1 KDF_SECRET_APPEND* = 0x2 KDF_HMAC_KEY* = 0x3 KDF_TLS_PRF_LABEL* = 0x4 KDF_TLS_PRF_SEED* = 0x5 KDF_SECRET_HANDLE* = 0x6 KDF_TLS_PRF_PROTOCOL* = 0x7 KDF_ALGORITHMID* = 0x8 KDF_PARTYUINFO* = 0x9 KDF_PARTYVINFO* = 0xa KDF_SUPPPUBINFO* = 0xb KDF_SUPPPRIVINFO* = 0xc KDF_LABEL* = 0xd KDF_CONTEXT* = 0xe KDF_SALT* = 0xf KDF_ITERATION_COUNT* = 0x10 KDF_GENERIC_PARAMETER* = 0x11 KDF_KEYBITLENGTH* = 0x12 KDF_USE_SECRET_AS_HMAC_KEY_FLAG* = 1 BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO_VERSION* = 1 BCRYPT_AUTH_MODE_CHAIN_CALLS_FLAG* = 0x00000001 BCRYPT_AUTH_MODE_IN_PROGRESS_FLAG* = 0x00000002 BCRYPT_OPAQUE_KEY_BLOB* = "OpaqueKeyBlob" BCRYPT_KEY_DATA_BLOB* = "KeyDataBlob" BCRYPT_AES_WRAP_KEY_BLOB* = "Rfc3565KeyWrapBlob" BCRYPT_ALGORITHM_NAME* = "AlgorithmName" BCRYPT_AUTH_TAG_LENGTH* = "AuthTagLength" BCRYPT_BLOCK_LENGTH* = "BlockLength" BCRYPT_BLOCK_SIZE_LIST* = "BlockSizeList" BCRYPT_CHAINING_MODE* = "ChainingMode" BCRYPT_CHAIN_MODE_CBC* = "ChainingModeCBC" BCRYPT_CHAIN_MODE_CCM* = "ChainingModeCCM" BCRYPT_CHAIN_MODE_CFB* = "ChainingModeCFB" BCRYPT_CHAIN_MODE_ECB* = "ChainingModeECB" BCRYPT_CHAIN_MODE_GCM* = "ChainingModeGCM" BCRYPT_CHAIN_MODE_NA* = "ChainingModeN/A" BCRYPT_EFFECTIVE_KEY_LENGTH* = "EffectiveKeyLength" BCRYPT_HASH_BLOCK_LENGTH* = "HashBlockLength" BCRYPT_HASH_LENGTH* = "HashDigestLength" BCRYPT_HASH_OID_LIST* = "HashOIDList" BCRYPT_INITIALIZATION_VECTOR* = "IV" BCRYPT_IS_KEYED_HASH* = "IsKeyedHash" BCRYPT_IS_REUSABLE_HASH* = "IsReusableHash" BCRYPT_KEY_LENGTH* = "KeyLength" BCRYPT_KEY_LENGTHS* = "KeyLengths" BCRYPT_KEY_OBJECT_LENGTH* = "KeyObjectLength" BCRYPT_KEY_STRENGTH* = "KeyStrength" BCRYPT_MESSAGE_BLOCK_LENGTH* = "MessageBlockLength" BCRYPT_OBJECT_LENGTH* = "ObjectLength" BCRYPT_PADDING_SCHEMES* = "PaddingSchemes" BCRYPT_PCP_PLATFORM_TYPE_PROPERTY* = "PCP_PLATFORM_TYPE" BCRYPT_PCP_PROVIDER_VERSION_PROPERTY* = "PCP_PROVIDER_VERSION" BCRYPT_PRIMITIVE_TYPE* = "PrimitiveType" BCRYPT_PROVIDER_HANDLE* = "ProviderHandle" BCRYPT_SIGNATURE_LENGTH* = "SignatureLength" BCRYPT_SUPPORTED_PAD_ROUTER* = 0x00000001 BCRYPT_SUPPORTED_PAD_PKCS1_ENC* = 0x00000002 BCRYPT_SUPPORTED_PAD_PKCS1_SIG* = 0x00000004 BCRYPT_SUPPORTED_PAD_OAEP* = 0x00000008 BCRYPT_SUPPORTED_PAD_PSS* = 0x00000010 BCRYPT_PROV_DISPATCH* = 0x00000001 BCRYPT_BLOCK_PADDING* = 0x00000001 BCRYPT_PAD_NONE* = 0x00000001 BCRYPT_PAD_PKCS1* = 0x00000002 BCRYPT_PAD_OAEP* = 0x00000004 BCRYPT_PAD_PSS* = 0x00000008 BCRYPTBUFFER_VERSION* = 0 BCRYPT_PUBLIC_KEY_BLOB* = "PUBLICBLOB" BCRYPT_PRIVATE_KEY_BLOB* = "PRIVATEBLOB" BCRYPT_RSAPUBLIC_BLOB* = "RSAPUBLICBLOB" BCRYPT_RSAPRIVATE_BLOB* = "RSAPRIVATEBLOB" LEGACY_RSAPUBLIC_BLOB* = "CAPIPUBLICBLOB" LEGACY_RSAPRIVATE_BLOB* = "CAPIPRIVATEBLOB" BCRYPT_RSAPUBLIC_MAGIC* = 0x31415352 BCRYPT_RSAPRIVATE_MAGIC* = 0x32415352 BCRYPT_RSAFULLPRIVATE_BLOB* = "RSAFULLPRIVATEBLOB" BCRYPT_RSAFULLPRIVATE_MAGIC* = 0x33415352 BCRYPT_GLOBAL_PARAMETERS* = "SecretAgreementParam" BCRYPT_PRIVATE_KEY* = "PrivKeyVal" BCRYPT_ECCPUBLIC_BLOB* = "ECCPUBLICBLOB" BCRYPT_ECCPRIVATE_BLOB* = "ECCPRIVATEBLOB" BCRYPT_ECDH_PUBLIC_P256_MAGIC* = 0x314b4345 BCRYPT_ECDH_PRIVATE_P256_MAGIC* = 0x324b4345 BCRYPT_ECDH_PUBLIC_P384_MAGIC* = 0x334b4345 BCRYPT_ECDH_PRIVATE_P384_MAGIC* = 0x344b4345 BCRYPT_ECDH_PUBLIC_P521_MAGIC* = 0x354b4345 BCRYPT_ECDH_PRIVATE_P521_MAGIC* = 0x364b4345 BCRYPT_ECDSA_PUBLIC_P256_MAGIC* = 0x31534345 BCRYPT_ECDSA_PRIVATE_P256_MAGIC* = 0x32534345 BCRYPT_ECDSA_PUBLIC_P384_MAGIC* = 0x33534345 BCRYPT_ECDSA_PRIVATE_P384_MAGIC* = 0x34534345 BCRYPT_ECDSA_PUBLIC_P521_MAGIC* = 0x35534345 BCRYPT_ECDSA_PRIVATE_P521_MAGIC* = 0x36534345 BCRYPT_DH_PUBLIC_BLOB* = "DHPUBLICBLOB" BCRYPT_DH_PRIVATE_BLOB* = "DHPRIVATEBLOB" LEGACY_DH_PUBLIC_BLOB* = "CAPIDHPUBLICBLOB" LEGACY_DH_PRIVATE_BLOB* = "CAPIDHPRIVATEBLOB" BCRYPT_DH_PUBLIC_MAGIC* = 0x42504844 BCRYPT_DH_PRIVATE_MAGIC* = 0x56504844 BCRYPT_DH_PARAMETERS* = "DHParameters" BCRYPT_DH_PARAMETERS_MAGIC* = 0x4d504844 BCRYPT_DSA_PUBLIC_BLOB* = "DSAPUBLICBLOB" BCRYPT_DSA_PRIVATE_BLOB* = "DSAPRIVATEBLOB" LEGACY_DSA_PUBLIC_BLOB* = "CAPIDSAPUBLICBLOB" LEGACY_DSA_PRIVATE_BLOB* = "CAPIDSAPRIVATEBLOB" LEGACY_DSA_V2_PUBLIC_BLOB* = "V2CAPIDSAPUBLICBLOB" LEGACY_DSA_V2_PRIVATE_BLOB* = "V2CAPIDSAPRIVATEBLOB" BCRYPT_DSA_PUBLIC_MAGIC* = 0x42505344 BCRYPT_DSA_PRIVATE_MAGIC* = 0x56505344 BCRYPT_DSA_PUBLIC_MAGIC_V2* = 0x32425044 BCRYPT_DSA_PRIVATE_MAGIC_V2* = 0x32565044 BCRYPT_KEY_DATA_BLOB_MAGIC* = 0x4d42444b BCRYPT_KEY_DATA_BLOB_VERSION1* = 0x1 BCRYPT_DSA_PARAMETERS* = "DSAParameters" BCRYPT_DSA_PARAMETERS_MAGIC* = 0x4d505344 BCRYPT_DSA_PARAMETERS_MAGIC_V2* = 0x324d5044 MS_PRIMITIVE_PROVIDER* = "Microsoft Primitive Provider" MS_PLATFORM_CRYPTO_PROVIDER* = "Microsoft Platform Crypto Provider" BCRYPT_RSA_ALGORITHM* = "RSA" BCRYPT_RSA_SIGN_ALGORITHM* = "RSA_SIGN" BCRYPT_DH_ALGORITHM* = "DH" BCRYPT_DSA_ALGORITHM* = "DSA" BCRYPT_RC2_ALGORITHM* = "RC2" BCRYPT_RC4_ALGORITHM* = "RC4" BCRYPT_AES_ALGORITHM* = "AES" BCRYPT_DES_ALGORITHM* = "DES" BCRYPT_DESX_ALGORITHM* = "DESX" BCRYPT_3DES_ALGORITHM* = "3DES" BCRYPT_3DES_112_ALGORITHM* = "3DES_112" BCRYPT_MD2_ALGORITHM* = "MD2" BCRYPT_MD4_ALGORITHM* = "MD4" BCRYPT_MD5_ALGORITHM* = "MD5" BCRYPT_SHA1_ALGORITHM* = "SHA1" BCRYPT_SHA256_ALGORITHM* = "SHA256" BCRYPT_SHA384_ALGORITHM* = "SHA384" BCRYPT_SHA512_ALGORITHM* = "SHA512" BCRYPT_AES_GMAC_ALGORITHM* = "AES-GMAC" BCRYPT_AES_CMAC_ALGORITHM* = "AES-CMAC" BCRYPT_ECDSA_P256_ALGORITHM* = "ECDSA_P256" BCRYPT_ECDSA_P384_ALGORITHM* = "ECDSA_P384" BCRYPT_ECDSA_P521_ALGORITHM* = "ECDSA_P521" BCRYPT_ECDH_P256_ALGORITHM* = "ECDH_P256" BCRYPT_ECDH_P384_ALGORITHM* = "ECDH_P384" BCRYPT_ECDH_P521_ALGORITHM* = "ECDH_P521" BCRYPT_RNG_ALGORITHM* = "RNG" BCRYPT_RNG_FIPS186_DSA_ALGORITHM* = "FIPS186DSARNG" BCRYPT_RNG_DUAL_EC_ALGORITHM* = "DUALECRNG" BCRYPT_SP800108_CTR_HMAC_ALGORITHM* = "SP800_108_CTR_HMAC" BCRYPT_SP80056A_CONCAT_ALGORITHM* = "SP800_56A_CONCAT" BCRYPT_PBKDF2_ALGORITHM* = "PBKDF2" BCRYPT_CAPI_KDF_ALGORITHM* = "CAPI_KDF" BCRYPT_CIPHER_INTERFACE* = 0x00000001 BCRYPT_HASH_INTERFACE* = 0x00000002 BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE* = 0x00000003 BCRYPT_SECRET_AGREEMENT_INTERFACE* = 0x00000004 BCRYPT_SIGNATURE_INTERFACE* = 0x00000005 BCRYPT_RNG_INTERFACE* = 0x00000006 BCRYPT_KEY_DERIVATION_INTERFACE* = 0x00000007 BCRYPT_ALG_HANDLE_HMAC_FLAG* = 0x00000008 BCRYPT_CAPI_AES_FLAG* = 0x00000010 BCRYPT_HASH_REUSABLE_FLAG* = 0x00000020 BCRYPT_BUFFERS_LOCKED_FLAG* = 0x00000040 BCRYPT_CIPHER_OPERATION* = 0x00000001 BCRYPT_HASH_OPERATION* = 0x00000002 BCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION* = 0x00000004 BCRYPT_SECRET_AGREEMENT_OPERATION* = 0x00000008 BCRYPT_SIGNATURE_OPERATION* = 0x00000010 BCRYPT_RNG_OPERATION* = 0x00000020 BCRYPT_KEY_DERIVATION_OPERATION* = 0x00000040 BCRYPT_PUBLIC_KEY_FLAG* = 0x00000001 BCRYPT_PRIVATE_KEY_FLAG* = 0x00000002 BCRYPT_NO_KEY_VALIDATION* = 0x00000008 BCRYPT_RNG_USE_ENTROPY_IN_BUFFER* = 0x00000001 BCRYPT_USE_SYSTEM_PREFERRED_RNG* = 0x00000002 CRYPT_MIN_DEPENDENCIES* = 0x00000001 CRYPT_PROCESS_ISOLATE* = 0x00010000 CRYPT_UM* = 0x00000001 CRYPT_KM* = 0x00000002 CRYPT_MM* = 0x00000003 CRYPT_ANY* = 0x00000004 CRYPT_OVERWRITE* = 0x00000001 CRYPT_LOCAL* = 0x00000001 CRYPT_DOMAIN* = 0x00000002 CRYPT_EXCLUSIVE* = 0x00000001 CRYPT_OVERRIDE* = 0x00010000 CRYPT_ALL_FUNCTIONS* = 0x00000001 CRYPT_ALL_PROVIDERS* = 0x00000002 CRYPT_PRIORITY_TOP* = 0x00000000 CRYPT_PRIORITY_BOTTOM* = 0xffffffff'i32 CRYPT_DEFAULT_CONTEXT* = "Default" DSA_HASH_ALGORITHM_SHA1* = 0 DSA_HASH_ALGORITHM_SHA256* = 1 DSA_HASH_ALGORITHM_SHA512* = 2 DSA_FIPS186_2* = 0 DSA_FIPS186_3* = 1 NCRYPT_MAX_KEY_NAME_LENGTH* = 512 NCRYPT_MAX_ALG_ID_LENGTH* = 512 MS_KEY_STORAGE_PROVIDER* = "Microsoft Software Key Storage Provider" MS_SMART_CARD_KEY_STORAGE_PROVIDER* = "Microsoft Smart Card Key Storage Provider" MS_PLATFORM_KEY_STORAGE_PROVIDER* = "Microsoft Platform Crypto Provider" NCRYPT_RSA_ALGORITHM* = BCRYPT_RSA_ALGORITHM NCRYPT_RSA_SIGN_ALGORITHM* = BCRYPT_RSA_SIGN_ALGORITHM NCRYPT_DH_ALGORITHM* = BCRYPT_DH_ALGORITHM NCRYPT_DSA_ALGORITHM* = BCRYPT_DSA_ALGORITHM NCRYPT_MD2_ALGORITHM* = BCRYPT_MD2_ALGORITHM NCRYPT_MD4_ALGORITHM* = BCRYPT_MD4_ALGORITHM NCRYPT_MD5_ALGORITHM* = BCRYPT_MD5_ALGORITHM NCRYPT_SHA1_ALGORITHM* = BCRYPT_SHA1_ALGORITHM NCRYPT_SHA256_ALGORITHM* = BCRYPT_SHA256_ALGORITHM NCRYPT_SHA384_ALGORITHM* = BCRYPT_SHA384_ALGORITHM NCRYPT_SHA512_ALGORITHM* = BCRYPT_SHA512_ALGORITHM NCRYPT_ECDSA_P256_ALGORITHM* = BCRYPT_ECDSA_P256_ALGORITHM NCRYPT_ECDSA_P384_ALGORITHM* = BCRYPT_ECDSA_P384_ALGORITHM NCRYPT_ECDSA_P521_ALGORITHM* = BCRYPT_ECDSA_P521_ALGORITHM NCRYPT_ECDH_P256_ALGORITHM* = BCRYPT_ECDH_P256_ALGORITHM NCRYPT_ECDH_P384_ALGORITHM* = BCRYPT_ECDH_P384_ALGORITHM NCRYPT_ECDH_P521_ALGORITHM* = BCRYPT_ECDH_P521_ALGORITHM NCRYPT_AES_ALGORITHM* = BCRYPT_AES_ALGORITHM NCRYPT_RC2_ALGORITHM* = BCRYPT_RC2_ALGORITHM NCRYPT_3DES_ALGORITHM* = BCRYPT_3DES_ALGORITHM NCRYPT_DES_ALGORITHM* = BCRYPT_DES_ALGORITHM NCRYPT_DESX_ALGORITHM* = BCRYPT_DESX_ALGORITHM NCRYPT_3DES_112_ALGORITHM* = BCRYPT_3DES_112_ALGORITHM NCRYPT_SP800108_CTR_HMAC_ALGORITHM* = BCRYPT_SP800108_CTR_HMAC_ALGORITHM NCRYPT_SP80056A_CONCAT_ALGORITHM* = BCRYPT_SP80056A_CONCAT_ALGORITHM NCRYPT_PBKDF2_ALGORITHM* = BCRYPT_PBKDF2_ALGORITHM NCRYPT_CAPI_KDF_ALGORITHM* = BCRYPT_CAPI_KDF_ALGORITHM NCRYPT_KEY_STORAGE_ALGORITHM* = "KEY_STORAGE" NCRYPT_CIPHER_INTERFACE* = BCRYPT_CIPHER_INTERFACE NCRYPT_HASH_INTERFACE* = BCRYPT_HASH_INTERFACE NCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE* = BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE NCRYPT_SECRET_AGREEMENT_INTERFACE* = BCRYPT_SECRET_AGREEMENT_INTERFACE NCRYPT_SIGNATURE_INTERFACE* = BCRYPT_SIGNATURE_INTERFACE NCRYPT_KEY_DERIVATION_INTERFACE* = BCRYPT_KEY_DERIVATION_INTERFACE NCRYPT_KEY_STORAGE_INTERFACE* = 0x00010001 NCRYPT_SCHANNEL_INTERFACE* = 0x00010002 NCRYPT_SCHANNEL_SIGNATURE_INTERFACE* = 0x00010003 NCRYPT_KEY_PROTECTION_INTERFACE* = 0x00010004 NCRYPT_RSA_ALGORITHM_GROUP* = NCRYPT_RSA_ALGORITHM NCRYPT_DH_ALGORITHM_GROUP* = NCRYPT_DH_ALGORITHM NCRYPT_DSA_ALGORITHM_GROUP* = NCRYPT_DSA_ALGORITHM NCRYPT_ECDSA_ALGORITHM_GROUP* = "ECDSA" NCRYPT_ECDH_ALGORITHM_GROUP* = "ECDH" NCRYPT_AES_ALGORITHM_GROUP* = NCRYPT_AES_ALGORITHM NCRYPT_RC2_ALGORITHM_GROUP* = NCRYPT_RC2_ALGORITHM NCRYPT_DES_ALGORITHM_GROUP* = "DES" NCRYPT_KEY_DERIVATION_GROUP* = "KEY_DERIVATION" NCRYPTBUFFER_VERSION* = 0 NCRYPTBUFFER_EMPTY* = 0 NCRYPTBUFFER_DATA* = 1 NCRYPTBUFFER_PROTECTION_DESCRIPTOR_STRING* = 3 NCRYPTBUFFER_PROTECTION_FLAGS* = 4 NCRYPTBUFFER_SSL_CLIENT_RANDOM* = 20 NCRYPTBUFFER_SSL_SERVER_RANDOM* = 21 NCRYPTBUFFER_SSL_HIGHEST_VERSION* = 22 NCRYPTBUFFER_SSL_CLEAR_KEY* = 23 NCRYPTBUFFER_SSL_KEY_ARG_DATA* = 24 NCRYPTBUFFER_PKCS_OID* = 40 NCRYPTBUFFER_PKCS_ALG_OID* = 41 NCRYPTBUFFER_PKCS_ALG_PARAM* = 42 NCRYPTBUFFER_PKCS_ALG_ID* = 43 NCRYPTBUFFER_PKCS_ATTRS* = 44 NCRYPTBUFFER_PKCS_KEY_NAME* = 45 NCRYPTBUFFER_PKCS_SECRET* = 46 NCRYPTBUFFER_CERT_BLOB* = 47 NCRYPT_NO_PADDING_FLAG* = 0x1 NCRYPT_PAD_PKCS1_FLAG* = 0x2 NCRYPT_PAD_OAEP_FLAG* = 0x4 NCRYPT_PAD_PSS_FLAG* = 0x8 NCRYPT_PAD_CIPHER_FLAG* = 0x10 NCRYPT_CIPHER_NO_PADDING_FLAG* = 0x0 NCRYPT_CIPHER_BLOCK_PADDING_FLAG* = 0x1 NCRYPT_CIPHER_OTHER_PADDING_FLAG* = 0x2 NCRYPT_NO_KEY_VALIDATION* = BCRYPT_NO_KEY_VALIDATION NCRYPT_MACHINE_KEY_FLAG* = 0x20 NCRYPT_SILENT_FLAG* = 0x40 NCRYPT_OVERWRITE_KEY_FLAG* = 0x80 NCRYPT_WRITE_KEY_TO_LEGACY_STORE_FLAG* = 0x200 NCRYPT_DO_NOT_FINALIZE_FLAG* = 0x400 NCRYPT_PERSIST_ONLY_FLAG* = 0x40000000 NCRYPT_PERSIST_FLAG* = 0x80000000'i32 NCRYPT_REGISTER_NOTIFY_FLAG* = 0x1 NCRYPT_UNREGISTER_NOTIFY_FLAG* = 0x2 NCRYPT_CIPHER_OPERATION* = BCRYPT_CIPHER_OPERATION NCRYPT_HASH_OPERATION* = BCRYPT_HASH_OPERATION NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION* = BCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION NCRYPT_SECRET_AGREEMENT_OPERATION* = BCRYPT_SECRET_AGREEMENT_OPERATION NCRYPT_SIGNATURE_OPERATION* = BCRYPT_SIGNATURE_OPERATION NCRYPT_RNG_OPERATION* = BCRYPT_RNG_OPERATION NCRYPT_KEY_DERIVATION_OPERATION* = BCRYPT_KEY_DERIVATION_OPERATION NCRYPT_NAME_PROPERTY* = "Name" NCRYPT_UNIQUE_NAME_PROPERTY* = "Unique Name" NCRYPT_ALGORITHM_PROPERTY* = "Algorithm Name" NCRYPT_LENGTH_PROPERTY* = "Length" NCRYPT_LENGTHS_PROPERTY* = "Lengths" NCRYPT_BLOCK_LENGTH_PROPERTY* = "Block Length" NCRYPT_CHAINING_MODE_PROPERTY* = "Chaining Mode" NCRYPT_AUTH_TAG_LENGTH* = "AuthTagLength" NCRYPT_UI_POLICY_PROPERTY* = "UI Policy" NCRYPT_EXPORT_POLICY_PROPERTY* = "Export Policy" NCRYPT_WINDOW_HANDLE_PROPERTY* = "HWND Handle" NCRYPT_USE_CONTEXT_PROPERTY* = "Use Context" NCRYPT_IMPL_TYPE_PROPERTY* = "Impl Type" NCRYPT_KEY_USAGE_PROPERTY* = "Key Usage" NCRYPT_KEY_TYPE_PROPERTY* = "Key Type" NCRYPT_VERSION_PROPERTY* = "Version" NCRYPT_SECURITY_DESCR_SUPPORT_PROPERTY* = "Security Descr Support" NCRYPT_SECURITY_DESCR_PROPERTY* = "Security Descr" NCRYPT_USE_COUNT_ENABLED_PROPERTY* = "Enabled Use Count" NCRYPT_USE_COUNT_PROPERTY* = "Use Count" NCRYPT_LAST_MODIFIED_PROPERTY* = "Modified" NCRYPT_MAX_NAME_LENGTH_PROPERTY* = "Max Name Length" NCRYPT_ALGORITHM_GROUP_PROPERTY* = "Algorithm Group" NCRYPT_DH_PARAMETERS_PROPERTY* = BCRYPT_DH_PARAMETERS NCRYPT_PROVIDER_HANDLE_PROPERTY* = "Provider Handle" NCRYPT_PIN_PROPERTY* = "SmartCardPin" NCRYPT_READER_PROPERTY* = "SmartCardReader" NCRYPT_SMARTCARD_GUID_PROPERTY* = "SmartCardGuid" NCRYPT_CERTIFICATE_PROPERTY* = "SmartCardKeyCertificate" NCRYPT_PIN_PROMPT_PROPERTY* = "SmartCardPinPrompt" NCRYPT_USER_CERTSTORE_PROPERTY* = "SmartCardUserCertStore" NCRYPT_ROOT_CERTSTORE_PROPERTY* = "SmartcardRootCertStore" NCRYPT_SECURE_PIN_PROPERTY* = "SmartCardSecurePin" NCRYPT_ASSOCIATED_ECDH_KEY* = "SmartCardAssociatedECDHKey" NCRYPT_SCARD_PIN_ID* = "SmartCardPinId" NCRYPT_SCARD_PIN_INFO* = "SmartCardPinInfo" NCRYPT_READER_ICON_PROPERTY* = "SmartCardReaderIcon" NCRYPT_KDF_SECRET_VALUE* = "KDFKeySecret" NCRYPT_PCP_PLATFORM_TYPE_PROPERTY* = "PCP_PLATFORM_TYPE" NCRYPT_PCP_PROVIDER_VERSION_PROPERTY* = "PCP_PROVIDER_VERSION" NCRYPT_PCP_EKPUB_PROPERTY* = "PCP_EKPUB" NCRYPT_PCP_EKCERT_PROPERTY* = "PCP_EKCERT" NCRYPT_PCP_EKNVCERT_PROPERTY* = "PCP_EKNVCERT" NCRYPT_PCP_SRKPUB_PROPERTY* = "PCP_SRKPUB" NCRYPT_PCP_PCRTABLE_PROPERTY* = "PCP_PCRTABLE" NCRYPT_PCP_CHANGEPASSWORD_PROPERTY* = "PCP_CHANGEPASSWORD" NCRYPT_PCP_PASSWORD_REQUIRED_PROPERTY* = "PCP_PASSWORD_REQUIRED" NCRYPT_PCP_USAGEAUTH_PROPERTY* = "PCP_USAGEAUTH" NCRYPT_PCP_MIGRATIONPASSWORD_PROPERTY* = "PCP_MIGRATIONPASSWORD" NCRYPT_PCP_EXPORT_ALLOWED_PROPERTY* = "PCP_EXPORT_ALLOWED" NCRYPT_PCP_STORAGEPARENT_PROPERTY* = "PCP_STORAGEPARENT" NCRYPT_PCP_PROVIDERHANDLE_PROPERTY* = "PCP_PROVIDERMHANDLE" NCRYPT_PCP_PLATFORMHANDLE_PROPERTY* = "PCP_PLATFORMHANDLE" NCRYPT_PCP_PLATFORM_BINDING_PCRMASK_PROPERTY* = "PCP_PLATFORM_BINDING_PCRMASK" NCRYPT_PCP_PLATFORM_BINDING_PCRDIGESTLIST_PROPERTY* = "PCP_PLATFORM_BINDING_PCRDIGESTLIST" NCRYPT_PCP_PLATFORM_BINDING_PCRDIGEST_PROPERTY* = "PCP_PLATFORM_BINDING_PCRDIGEST" NCRYPT_PCP_KEY_USAGE_POLICY_PROPERTY* = "PCP_KEY_USAGE_POLICY" NCRYPT_PCP_TPM12_IDBINDING_PROPERTY* = "PCP_TPM12_IDBINDING" NCRYPT_PCP_TPM12_IDACTIVATION_PROPERTY* = "PCP_TPM12_IDACTIVATION" NCRYPT_PCP_KEYATTESTATION_PROPERTY* = "PCP_TPM12_KEYATTESTATION" NCRYPT_PCP_ALTERNATE_KEY_STORAGE_LOCATION_PROPERTY* = "PCP_ALTERNATE_KEY_STORAGE_LOCATION" NCRYPT_TPM12_PROVIDER* = 0x00010000 NCRYPT_PCP_SIGNATURE_KEY* = 0x1 NCRYPT_PCP_ENCRYPTION_KEY* = 0x2 NCRYPT_PCP_GENERIC_KEY* = NCRYPT_PCP_SIGNATURE_KEY or NCRYPT_PCP_ENCRYPTION_KEY NCRYPT_PCP_STORAGE_KEY* = 0x00000004 NCRYPT_PCP_IDENTITY_KEY* = 0x00000008 NCRYPT_INITIALIZATION_VECTOR* = BCRYPT_INITIALIZATION_VECTOR NCRYPT_MAX_PROPERTY_NAME* = 64 NCRYPT_MAX_PROPERTY_DATA* = 0x100000 NCRYPT_ALLOW_EXPORT_FLAG* = 0x1 NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG* = 0x2 NCRYPT_ALLOW_ARCHIVING_FLAG* = 0x00000004 NCRYPT_ALLOW_PLAINTEXT_ARCHIVING_FLAG* = 0x00000008 NCRYPT_IMPL_HARDWARE_FLAG* = 0x1 NCRYPT_IMPL_SOFTWARE_FLAG* = 0x2 NCRYPT_IMPL_REMOVABLE_FLAG* = 0x00000008 NCRYPT_IMPL_HARDWARE_RNG_FLAG* = 0x00000010 NCRYPT_ALLOW_DECRYPT_FLAG* = 0x1 NCRYPT_ALLOW_SIGNING_FLAG* = 0x2 NCRYPT_ALLOW_KEY_AGREEMENT_FLAG* = 0x00000004 NCRYPT_ALLOW_ALL_USAGES* = 0x00ffffff NCRYPT_UI_PROTECT_KEY_FLAG* = 0x1 NCRYPT_UI_FORCE_HIGH_PROTECTION_FLAG* = 0x2 NCRYPT_CIPHER_KEY_BLOB_MAGIC* = 0x52485043 NCRYPT_PROTECTED_KEY_BLOB_MAGIC* = 0x4b545250 NCRYPT_CIPHER_KEY_BLOB* = "CipherKeyBlob" NCRYPT_PROTECTED_KEY_BLOB* = "ProtectedKeyBlob" NCRYPT_PKCS7_ENVELOPE_BLOB* = "PKCS7_ENVELOPE" NCRYPT_PKCS8_PRIVATE_KEY_BLOB* = "PKCS8_PRIVATEKEY" NCRYPT_OPAQUETRANSPORT_BLOB* = "OpaqueTransport" NCRYPT_EXPORT_LEGACY_FLAG* = 0x00000800 szOID_RSA* = "1.2.840.113549" szOID_PKCS* = "1.2.840.113549.1" szOID_RSA_HASH* = "1.2.840.113549.2" szOID_RSA_ENCRYPT* = "1.2.840.113549.3" szOID_PKCS_1* = "1.2.840.113549.1.1" szOID_PKCS_2* = "1.2.840.113549.1.2" szOID_PKCS_3* = "1.2.840.113549.1.3" szOID_PKCS_4* = "1.2.840.113549.1.4" szOID_PKCS_5* = "1.2.840.113549.1.5" szOID_PKCS_6* = "1.2.840.113549.1.6" szOID_PKCS_7* = "1.2.840.113549.1.7" szOID_PKCS_8* = "1.2.840.113549.1.8" szOID_PKCS_9* = "1.2.840.113549.1.9" szOID_PKCS_10* = "1.2.840.113549.1.10" szOID_PKCS_12* = "1.2.840.113549.1.12" szOID_RSA_RSA* = "1.2.840.113549.1.1.1" szOID_RSA_MD2RSA* = "1.2.840.113549.1.1.2" szOID_RSA_MD4RSA* = "1.2.840.113549.1.1.3" szOID_RSA_MD5RSA* = "1.2.840.113549.1.1.4" szOID_RSA_SHA1RSA* = "1.2.840.113549.1.1.5" szOID_RSA_SETOAEP_RSA* = "1.2.840.113549.1.1.6" szOID_RSAES_OAEP* = "1.2.840.113549.1.1.7" szOID_RSA_MGF1* = "1.2.840.113549.1.1.8" szOID_RSA_PSPECIFIED* = "1.2.840.113549.1.1.9" szOID_RSA_SSA_PSS* = "1.2.840.113549.1.1.10" szOID_RSA_SHA256RSA* = "1.2.840.113549.1.1.11" szOID_RSA_SHA384RSA* = "1.2.840.113549.1.1.12" szOID_RSA_SHA512RSA* = "1.2.840.113549.1.1.13" szOID_RSA_DH* = "1.2.840.113549.1.3.1" szOID_RSA_data* = "1.2.840.113549.1.7.1" szOID_RSA_signedData* = "1.2.840.113549.1.7.2" szOID_RSA_envelopedData* = "1.2.840.113549.1.7.3" szOID_RSA_signEnvData* = "1.2.840.113549.1.7.4" szOID_RSA_digestedData* = "1.2.840.113549.1.7.5" szOID_RSA_hashedData* = "1.2.840.113549.1.7.5" szOID_RSA_encryptedData* = "1.2.840.113549.1.7.6" szOID_RSA_emailAddr* = "1.2.840.113549.1.9.1" szOID_RSA_unstructName* = "1.2.840.113549.1.9.2" szOID_RSA_contentType* = "1.2.840.113549.1.9.3" szOID_RSA_messageDigest* = "1.2.840.113549.1.9.4" szOID_RSA_signingTime* = "1.2.840.113549.1.9.5" szOID_RSA_counterSign* = "1.2.840.113549.1.9.6" szOID_RSA_challengePwd* = "1.2.840.113549.1.9.7" szOID_RSA_unstructAddr* = "1.2.840.113549.1.9.8" szOID_RSA_extCertAttrs* = "1.2.840.113549.1.9.9" szOID_RSA_certExtensions* = "1.2.840.113549.1.9.14" szOID_RSA_SMIMECapabilities* = "1.2.840.113549.1.9.15" szOID_RSA_preferSignedData* = "1.2.840.113549.1.9.15.1" szOID_TIMESTAMP_TOKEN* = "1.2.840.113549.1.9.16.1.4" szOID_RFC3161_counterSign* = "1.3.6.1.4.1.311.3.3.1" szOID_RSA_SMIMEalg* = "1.2.840.113549.1.9.16.3" szOID_RSA_SMIMEalgESDH* = "1.2.840.113549.1.9.16.3.5" szOID_RSA_SMIMEalgCMS3DESwrap* = "1.2.840.113549.1.9.16.3.6" szOID_RSA_SMIMEalgCMSRC2wrap* = "1.2.840.113549.1.9.16.3.7" szOID_RSA_MD2* = "1.2.840.113549.2.2" szOID_RSA_MD4* = "1.2.840.113549.2.4" szOID_RSA_MD5* = "1.2.840.113549.2.5" szOID_RSA_RC2CBC* = "1.2.840.113549.3.2" szOID_RSA_RC4* = "1.2.840.113549.3.4" szOID_RSA_DES_EDE3_CBC* = "1.2.840.113549.3.7" szOID_RSA_RC5_CBCPad* = "1.2.840.113549.3.9" szOID_ANSI_X942* = "1.2.840.10046" szOID_ANSI_X942_DH* = "1.2.840.10046.2.1" szOID_X957* = "1.2.840.10040" szOID_X957_DSA* = "1.2.840.10040.4.1" szOID_X957_SHA1DSA* = "1.2.840.10040.4.3" szOID_ECC_PUBLIC_KEY* = "1.2.840.10045.2.1" szOID_ECC_CURVE_P256* = "1.2.840.10045.3.1.7" szOID_ECC_CURVE_P384* = "1.3.132.0.34" szOID_ECC_CURVE_P521* = "1.3.132.0.35" szOID_ECDSA_SHA1* = "1.2.840.10045.4.1" szOID_ECDSA_SPECIFIED* = "1.2.840.10045.4.3" szOID_ECDSA_SHA256* = "1.2.840.10045.4.3.2" szOID_ECDSA_SHA384* = "1.2.840.10045.4.3.3" szOID_ECDSA_SHA512* = "1.2.840.10045.4.3.4" szOID_NIST_AES128_CBC* = "2.16.840.1.101.3.4.1.2" szOID_NIST_AES192_CBC* = "2.16.840.1.101.3.4.1.22" szOID_NIST_AES256_CBC* = "2.16.840.1.101.3.4.1.42" szOID_NIST_AES128_WRAP* = "2.16.840.1.101.3.4.1.5" szOID_NIST_AES192_WRAP* = "2.16.840.1.101.3.4.1.25" szOID_NIST_AES256_WRAP* = "2.16.840.1.101.3.4.1.45" szOID_DH_SINGLE_PASS_STDDH_SHA1_KDF* = "1.3.133.16.840.63.0.2" szOID_DH_SINGLE_PASS_STDDH_SHA256_KDF* = "1.3.132.1.11.1" szOID_DH_SINGLE_PASS_STDDH_SHA384_KDF* = "1.3.132.1.11.2" szOID_DS* = "2.5" szOID_DSALG* = "2.5.8" szOID_DSALG_CRPT* = "2.5.8.1" szOID_DSALG_HASH* = "2.5.8.2" szOID_DSALG_SIGN* = "2.5.8.3" szOID_DSALG_RSA* = "2.5.8.1.1" szOID_OIW* = "1.3.14" szOID_OIWSEC* = "1.3.14.3.2" szOID_OIWSEC_md4RSA* = "1.3.14.3.2.2" szOID_OIWSEC_md5RSA* = "1.3.14.3.2.3" szOID_OIWSEC_md4RSA2* = "1.3.14.3.2.4" szOID_OIWSEC_desECB* = "1.3.14.3.2.6" szOID_OIWSEC_desCBC* = "1.3.14.3.2.7" szOID_OIWSEC_desOFB* = "1.3.14.3.2.8" szOID_OIWSEC_desCFB* = "1.3.14.3.2.9" szOID_OIWSEC_desMAC* = "1.3.14.3.2.10" szOID_OIWSEC_rsaSign* = "1.3.14.3.2.11" szOID_OIWSEC_dsa* = "1.3.14.3.2.12" szOID_OIWSEC_shaDSA* = "1.3.14.3.2.13" szOID_OIWSEC_mdc2RSA* = "1.3.14.3.2.14" szOID_OIWSEC_shaRSA* = "1.3.14.3.2.15" szOID_OIWSEC_dhCommMod* = "1.3.14.3.2.16" szOID_OIWSEC_desEDE* = "1.3.14.3.2.17" szOID_OIWSEC_sha* = "1.3.14.3.2.18" szOID_OIWSEC_mdc2* = "1.3.14.3.2.19" szOID_OIWSEC_dsaComm* = "1.3.14.3.2.20" szOID_OIWSEC_dsaCommSHA* = "1.3.14.3.2.21" szOID_OIWSEC_rsaXchg* = "1.3.14.3.2.22" szOID_OIWSEC_keyHashSeal* = "1.3.14.3.2.23" szOID_OIWSEC_md2RSASign* = "1.3.14.3.2.24" szOID_OIWSEC_md5RSASign* = "1.3.14.3.2.25" szOID_OIWSEC_sha1* = "1.3.14.3.2.26" szOID_OIWSEC_dsaSHA1* = "1.3.14.3.2.27" szOID_OIWSEC_dsaCommSHA1* = "1.3.14.3.2.28" szOID_OIWSEC_sha1RSASign* = "1.3.14.3.2.29" szOID_OIWDIR* = "1.3.14.7.2" szOID_OIWDIR_CRPT* = "1.3.14.7.2.1" szOID_OIWDIR_HASH* = "1.3.14.7.2.2" szOID_OIWDIR_SIGN* = "1.3.14.7.2.3" szOID_OIWDIR_md2* = "1.3.14.7.2.2.1" szOID_OIWDIR_md2RSA* = "1.3.14.7.2.3.1" szOID_INFOSEC* = "2.16.840.1.101.2.1" szOID_INFOSEC_sdnsSignature* = "2.16.840.1.101.2.1.1.1" szOID_INFOSEC_mosaicSignature* = "2.16.840.1.101.2.1.1.2" szOID_INFOSEC_sdnsConfidentiality* = "2.16.840.1.101.2.1.1.3" szOID_INFOSEC_mosaicConfidentiality* = "2.16.840.1.101.2.1.1.4" szOID_INFOSEC_sdnsIntegrity* = "2.16.840.1.101.2.1.1.5" szOID_INFOSEC_mosaicIntegrity* = "2.16.840.1.101.2.1.1.6" szOID_INFOSEC_sdnsTokenProtection* = "2.16.840.1.101.2.1.1.7" szOID_INFOSEC_mosaicTokenProtection* = "2.16.840.1.101.2.1.1.8" szOID_INFOSEC_sdnsKeyManagement* = "2.16.840.1.101.2.1.1.9" szOID_INFOSEC_mosaicKeyManagement* = "2.16.840.1.101.2.1.1.10" szOID_INFOSEC_sdnsKMandSig* = "2.16.840.1.101.2.1.1.11" szOID_INFOSEC_mosaicKMandSig* = "2.16.840.1.101.2.1.1.12" szOID_INFOSEC_SuiteASignature* = "2.16.840.1.101.2.1.1.13" szOID_INFOSEC_SuiteAConfidentiality* = "2.16.840.1.101.2.1.1.14" szOID_INFOSEC_SuiteAIntegrity* = "2.16.840.1.101.2.1.1.15" szOID_INFOSEC_SuiteATokenProtection* = "2.16.840.1.101.2.1.1.16" szOID_INFOSEC_SuiteAKeyManagement* = "2.16.840.1.101.2.1.1.17" szOID_INFOSEC_SuiteAKMandSig* = "2.16.840.1.101.2.1.1.18" szOID_INFOSEC_mosaicUpdatedSig* = "2.16.840.1.101.2.1.1.19" szOID_INFOSEC_mosaicKMandUpdSig* = "2.16.840.1.101.2.1.1.20" szOID_INFOSEC_mosaicUpdatedInteg* = "2.16.840.1.101.2.1.1.21" szOID_NIST_sha256* = "2.16.840.1.101.3.4.2.1" szOID_NIST_sha384* = "2.16.840.1.101.3.4.2.2" szOID_NIST_sha512* = "2.16.840.1.101.3.4.2.3" szOID_COMMON_NAME* = "2.5.4.3" szOID_SUR_NAME* = "2.5.4.4" szOID_DEVICE_SERIAL_NUMBER* = "2.5.4.5" szOID_COUNTRY_NAME* = "2.5.4.6" szOID_LOCALITY_NAME* = "2.5.4.7" szOID_STATE_OR_PROVINCE_NAME* = "2.5.4.8" szOID_STREET_ADDRESS* = "2.5.4.9" szOID_ORGANIZATION_NAME* = "2.5.4.10" szOID_ORGANIZATIONAL_UNIT_NAME* = "2.5.4.11" szOID_TITLE* = "2.5.4.12" szOID_DESCRIPTION* = "2.5.4.13" szOID_SEARCH_GUIDE* = "2.5.4.14" szOID_BUSINESS_CATEGORY* = "2.5.4.15" szOID_POSTAL_ADDRESS* = "2.5.4.16" szOID_POSTAL_CODE* = "2.5.4.17" szOID_POST_OFFICE_BOX* = "2.5.4.18" szOID_PHYSICAL_DELIVERY_OFFICE_NAME* = "2.5.4.19" szOID_TELEPHONE_NUMBER* = "2.5.4.20" szOID_TELEX_NUMBER* = "2.5.4.21" szOID_TELETEXT_TERMINAL_IDENTIFIER* = "2.5.4.22" szOID_FACSIMILE_TELEPHONE_NUMBER* = "2.5.4.23" szOID_X21_ADDRESS* = "2.5.4.24" szOID_INTERNATIONAL_ISDN_NUMBER* = "2.5.4.25" szOID_REGISTERED_ADDRESS* = "2.5.4.26" szOID_DESTINATION_INDICATOR* = "2.5.4.27" szOID_PREFERRED_DELIVERY_METHOD* = "2.5.4.28" szOID_PRESENTATION_ADDRESS* = "2.5.4.29" szOID_SUPPORTED_APPLICATION_CONTEXT* = "2.5.4.30" szOID_MEMBER* = "2.5.4.31" szOID_OWNER* = "2.5.4.32" szOID_ROLE_OCCUPANT* = "2.5.4.33" szOID_SEE_ALSO* = "2.5.4.34" szOID_USER_PASSWORD* = "2.5.4.35" szOID_USER_CERTIFICATE* = "2.5.4.36" szOID_CA_CERTIFICATE* = "2.5.4.37" szOID_AUTHORITY_REVOCATION_LIST* = "2.5.4.38" szOID_CERTIFICATE_REVOCATION_LIST* = "2.5.4.39" szOID_CROSS_CERTIFICATE_PAIR* = "2.5.4.40" szOID_GIVEN_NAME* = "2.5.4.42" szOID_INITIALS* = "2.5.4.43" szOID_DN_QUALIFIER* = "2.5.4.46" szOID_DOMAIN_COMPONENT* = "0.9.2342.19200300.100.1.25" szOID_PKCS_12_FRIENDLY_NAME_ATTR* = "1.2.840.113549.1.9.20" szOID_PKCS_12_LOCAL_KEY_ID* = "1.2.840.113549.1.9.21" szOID_PKCS_12_KEY_PROVIDER_NAME_ATTR* = "1.3.6.1.4.1.311.17.1" szOID_LOCAL_MACHINE_KEYSET* = "1.3.6.1.4.1.311.17.2" szOID_PKCS_12_EXTENDED_ATTRIBUTES* = "1.3.6.1.4.1.311.17.3" szOID_PKCS_12_PROTECTED_PASSWORD_SECRET_BAG_TYPE_ID* = "1.3.6.1.4.1.311.17.4" szOID_KEYID_RDN* = "1.3.6.1.4.1.311.10.7.1" szOID_EV_RDN_LOCALE* = "1.3.6.1.4.1.311.60.2.1.1" szOID_EV_RDN_STATE_OR_PROVINCE* = "1.3.6.1.4.1.311.60.2.1.2" szOID_EV_RDN_COUNTRY* = "1.3.6.1.4.1.311.60.2.1.3" CERT_RDN_ANY_TYPE* = 0 CERT_RDN_ENCODED_BLOB* = 1 CERT_RDN_OCTET_STRING* = 2 CERT_RDN_NUMERIC_STRING* = 3 CERT_RDN_PRINTABLE_STRING* = 4 CERT_RDN_TELETEX_STRING* = 5 CERT_RDN_T61_STRING* = 5 CERT_RDN_VIDEOTEX_STRING* = 6 CERT_RDN_IA5_STRING* = 7 CERT_RDN_GRAPHIC_STRING* = 8 CERT_RDN_VISIBLE_STRING* = 9 CERT_RDN_ISO646_STRING* = 9 CERT_RDN_GENERAL_STRING* = 10 CERT_RDN_UNIVERSAL_STRING* = 11 CERT_RDN_INT4_STRING* = 11 CERT_RDN_BMP_STRING* = 12 CERT_RDN_UNICODE_STRING* = 12 CERT_RDN_UTF8_STRING* = 13 CERT_RDN_TYPE_MASK* = 0x000000ff CERT_RDN_FLAGS_MASK* = 0xff000000'i32 CERT_RDN_ENABLE_T61_UNICODE_FLAG* = 0x80000000'i32 CERT_RDN_ENABLE_UTF8_UNICODE_FLAG* = 0x20000000 CERT_RDN_FORCE_UTF8_UNICODE_FLAG* = 0x10000000 CERT_RDN_DISABLE_CHECK_TYPE_FLAG* = 0x40000000 CERT_RDN_DISABLE_IE4_UTF8_FLAG* = 0x1000000 CERT_RDN_ENABLE_PUNYCODE_FLAG* = 0x2000000 CERT_RSA_PUBLIC_KEY_OBJID* = szOID_RSA_RSA CERT_DEFAULT_OID_PUBLIC_KEY_SIGN* = szOID_RSA_RSA CERT_DEFAULT_OID_PUBLIC_KEY_XCHG* = szOID_RSA_RSA CRYPT_ECC_PRIVATE_KEY_INFO_v1* = 1 CERT_V1* = 0 CERT_V2* = 1 CERT_V3* = 2 CERT_INFO_VERSION_FLAG* = 1 CERT_INFO_SERIAL_NUMBER_FLAG* = 2 CERT_INFO_SIGNATURE_ALGORITHM_FLAG* = 3 CERT_INFO_ISSUER_FLAG* = 4 CERT_INFO_NOT_BEFORE_FLAG* = 5 CERT_INFO_NOT_AFTER_FLAG* = 6 CERT_INFO_SUBJECT_FLAG* = 7 CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG* = 8 CERT_INFO_ISSUER_UNIQUE_ID_FLAG* = 9 CERT_INFO_SUBJECT_UNIQUE_ID_FLAG* = 10 CERT_INFO_EXTENSION_FLAG* = 11 CRL_V1* = 0 CRL_V2* = 1 CERT_BUNDLE_CERTIFICATE* = 0 CERT_BUNDLE_CRL* = 1 CERT_REQUEST_V1* = 0 CERT_KEYGEN_REQUEST_V1* = 0 CTL_V1* = 0 CERT_ENCODING_TYPE_MASK* = 0x0000ffff CMSG_ENCODING_TYPE_MASK* = 0xffff0000'i32 CRYPT_ASN_ENCODING* = 0x1 CRYPT_NDR_ENCODING* = 0x2 X509_ASN_ENCODING* = 0x1 X509_NDR_ENCODING* = 0x2 PKCS_7_ASN_ENCODING* = 0x10000 PKCS_7_NDR_ENCODING* = 0x20000 CRYPT_FORMAT_STR_MULTI_LINE* = 0x1 CRYPT_FORMAT_STR_NO_HEX* = 0x10 CRYPT_FORMAT_SIMPLE* = 0x1 CRYPT_FORMAT_X509* = 0x2 CRYPT_FORMAT_OID* = 0x4 CRYPT_FORMAT_RDN_SEMICOLON* = 0x100 CRYPT_FORMAT_RDN_CRLF* = 0x200 CRYPT_FORMAT_RDN_UNQUOTE* = 0x400 CRYPT_FORMAT_RDN_REVERSE* = 0x800 CRYPT_FORMAT_COMMA* = 0x1000 CRYPT_FORMAT_SEMICOLON* = CRYPT_FORMAT_RDN_SEMICOLON CRYPT_FORMAT_CRLF* = CRYPT_FORMAT_RDN_CRLF CRYPT_ENCODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG* = 0x8 CRYPT_ENCODE_ALLOC_FLAG* = 0x8000 CRYPT_UNICODE_NAME_ENCODE_ENABLE_T61_UNICODE_FLAG* = CERT_RDN_ENABLE_T61_UNICODE_FLAG CRYPT_UNICODE_NAME_ENCODE_ENABLE_UTF8_UNICODE_FLAG* = CERT_RDN_ENABLE_UTF8_UNICODE_FLAG CRYPT_UNICODE_NAME_ENCODE_FORCE_UTF8_UNICODE_FLAG* = CERT_RDN_FORCE_UTF8_UNICODE_FLAG CRYPT_UNICODE_NAME_ENCODE_DISABLE_CHECK_TYPE_FLAG* = CERT_RDN_DISABLE_CHECK_TYPE_FLAG CRYPT_SORTED_CTL_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG* = 0x10000 CRYPT_ENCODE_ENABLE_PUNYCODE_FLAG* = 0x20000 CRYPT_ENCODE_ENABLE_UTF8PERCENT_FLAG* = 0x40000 CRYPT_ENCODE_ENABLE_IA5CONVERSION_FLAG* = CRYPT_ENCODE_ENABLE_PUNYCODE_FLAG or CRYPT_ENCODE_ENABLE_UTF8PERCENT_FLAG CRYPT_DECODE_NOCOPY_FLAG* = 0x1 CRYPT_DECODE_TO_BE_SIGNED_FLAG* = 0x2 CRYPT_DECODE_SHARE_OID_STRING_FLAG* = 0x4 CRYPT_DECODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG* = 0x8 CRYPT_DECODE_ALLOC_FLAG* = 0x8000 CRYPT_UNICODE_NAME_DECODE_DISABLE_IE4_UTF8_FLAG* = CERT_RDN_DISABLE_IE4_UTF8_FLAG CRYPT_DECODE_ENABLE_PUNYCODE_FLAG* = 0x2000000 CRYPT_DECODE_ENABLE_UTF8PERCENT_FLAG* = 0x4000000 CRYPT_DECODE_ENABLE_IA5CONVERSION_FLAG* = CRYPT_DECODE_ENABLE_PUNYCODE_FLAG or CRYPT_DECODE_ENABLE_UTF8PERCENT_FLAG CRYPT_ENCODE_DECODE_NONE* = 0 X509_CERT* = cast[LPCSTR](1) X509_CERT_TO_BE_SIGNED* = cast[LPCSTR](2) X509_CERT_CRL_TO_BE_SIGNED* = cast[LPCSTR](3) X509_CERT_REQUEST_TO_BE_SIGNED* = cast[LPCSTR](4) X509_EXTENSIONS* = cast[LPCSTR](5) X509_NAME_VALUE* = cast[LPCSTR](6) X509_NAME* = cast[LPCSTR](7) X509_PUBLIC_KEY_INFO* = cast[LPCSTR](8) X509_AUTHORITY_KEY_ID* = cast[LPCSTR](9) X509_KEY_ATTRIBUTES* = cast[LPCSTR](10) X509_KEY_USAGE_RESTRICTION* = cast[LPCSTR](11) X509_ALTERNATE_NAME* = cast[LPCSTR](12) X509_BASIC_CONSTRAINTS* = cast[LPCSTR](13) X509_KEY_USAGE* = cast[LPCSTR](14) X509_BASIC_CONSTRAINTS2* = cast[LPCSTR](15) X509_CERT_POLICIES* = cast[LPCSTR](16) PKCS_UTC_TIME* = cast[LPCSTR](17) PKCS_TIME_REQUEST* = cast[LPCSTR](18) RSA_CSP_PUBLICKEYBLOB* = cast[LPCSTR](19) X509_UNICODE_NAME* = cast[LPCSTR](20) X509_KEYGEN_REQUEST_TO_BE_SIGNED* = cast[LPCSTR](21) PKCS_ATTRIBUTE* = cast[LPCSTR](22) PKCS_CONTENT_INFO_SEQUENCE_OF_ANY* = cast[LPCSTR](23) X509_UNICODE_NAME_VALUE* = cast[LPCSTR](24) X509_ANY_STRING* = X509_NAME_VALUE X509_UNICODE_ANY_STRING* = X509_UNICODE_NAME_VALUE X509_OCTET_STRING* = cast[LPCSTR](25) X509_BITS* = cast[LPCSTR](26) X509_INTEGER* = cast[LPCSTR](27) X509_MULTI_BYTE_INTEGER* = cast[LPCSTR](28) X509_ENUMERATED* = cast[LPCSTR](29) X509_CHOICE_OF_TIME* = cast[LPCSTR](30) X509_AUTHORITY_KEY_ID2* = cast[LPCSTR](31) X509_AUTHORITY_INFO_ACCESS* = cast[LPCSTR](32) X509_SUBJECT_INFO_ACCESS* = X509_AUTHORITY_INFO_ACCESS X509_CRL_REASON_CODE* = X509_ENUMERATED PKCS_CONTENT_INFO* = cast[LPCSTR](33) X509_SEQUENCE_OF_ANY* = cast[LPCSTR](34) X509_CRL_DIST_POINTS* = cast[LPCSTR](35) X509_ENHANCED_KEY_USAGE* = cast[LPCSTR](36) PKCS_CTL* = cast[LPCSTR](37) X509_MULTI_BYTE_UINT* = cast[LPCSTR](38) X509_DSS_PUBLICKEY* = X509_MULTI_BYTE_UINT X509_DSS_PARAMETERS* = cast[LPCSTR](39) X509_DSS_SIGNATURE* = cast[LPCSTR](40) PKCS_RC2_CBC_PARAMETERS* = cast[LPCSTR](41) PKCS_SMIME_CAPABILITIES* = cast[LPCSTR](42) X509_QC_STATEMENTS_EXT* = cast[LPCSTR](42) PKCS_RSA_PRIVATE_KEY* = cast[LPCSTR](43) PKCS_PRIVATE_KEY_INFO* = cast[LPCSTR](44) PKCS_ENCRYPTED_PRIVATE_KEY_INFO* = cast[LPCSTR](45) X509_PKIX_POLICY_QUALIFIER_USERNOTICE* = cast[LPCSTR](46) X509_DH_PUBLICKEY* = X509_MULTI_BYTE_UINT X509_DH_PARAMETERS* = cast[LPCSTR](47) X509_ECC_SIGNATURE* = cast[LPCSTR](47) PKCS_ATTRIBUTES* = cast[LPCSTR](48) PKCS_SORTED_CTL* = cast[LPCSTR](49) X942_DH_PARAMETERS* = cast[LPCSTR](50) X509_BITS_WITHOUT_TRAILING_ZEROES* = cast[LPCSTR](51) X942_OTHER_INFO* = cast[LPCSTR](52) X509_CERT_PAIR* = cast[LPCSTR](53) X509_ISSUING_DIST_POINT* = cast[LPCSTR](54) X509_NAME_CONSTRAINTS* = cast[LPCSTR](55) X509_POLICY_MAPPINGS* = cast[LPCSTR](56) X509_POLICY_CONSTRAINTS* = cast[LPCSTR](57) X509_CROSS_CERT_DIST_POINTS* = cast[LPCSTR](58) CMC_DATA* = cast[LPCSTR](59) CMC_RESPONSE* = cast[LPCSTR](60) CMC_STATUS* = cast[LPCSTR](61) CMC_ADD_EXTENSIONS* = cast[LPCSTR](62) CMC_ADD_ATTRIBUTES* = cast[LPCSTR](63) X509_CERTIFICATE_TEMPLATE* = cast[LPCSTR](64) OCSP_SIGNED_REQUEST* = cast[LPCSTR](65) OCSP_REQUEST* = cast[LPCSTR](66) OCSP_RESPONSE* = cast[LPCSTR](67) OCSP_BASIC_SIGNED_RESPONSE* = cast[LPCSTR](68) OCSP_BASIC_RESPONSE* = cast[LPCSTR](69) X509_LOGOTYPE_EXT* = cast[LPCSTR](70) X509_BIOMETRIC_EXT* = cast[LPCSTR](71) CNG_RSA_PUBLIC_KEY_BLOB* = cast[LPCSTR](72) X509_OBJECT_IDENTIFIER* = cast[LPCSTR](73) X509_ALGORITHM_IDENTIFIER* = cast[LPCSTR](74) PKCS_RSA_SSA_PSS_PARAMETERS* = cast[LPCSTR](75) PKCS_RSAES_OAEP_PARAMETERS* = cast[LPCSTR](76) ECC_CMS_SHARED_INFO* = cast[LPCSTR](77) TIMESTAMP_REQUEST* = cast[LPCSTR](78) TIMESTAMP_RESPONSE* = cast[LPCSTR](79) TIMESTAMP_INFO* = cast[LPCSTR](80) X509_CERT_BUNDLE* = cast[LPCSTR](81) X509_ECC_PRIVATE_KEY* = cast[LPCSTR](82) CNG_RSA_PRIVATE_KEY_BLOB* = cast[LPCSTR](83) PKCS7_SIGNER_INFO* = cast[LPCSTR](500) CMS_SIGNER_INFO* = cast[LPCSTR](501) szOID_AUTHORITY_KEY_IDENTIFIER* = "2.5.29.1" szOID_KEY_ATTRIBUTES* = "2.5.29.2" szOID_CERT_POLICIES_95* = "2.5.29.3" szOID_KEY_USAGE_RESTRICTION* = "2.5.29.4" szOID_SUBJECT_ALT_NAME* = "2.5.29.7" szOID_ISSUER_ALT_NAME* = "2.5.29.8" szOID_BASIC_CONSTRAINTS* = "2.5.29.10" szOID_KEY_USAGE* = "2.5.29.15" szOID_PRIVATEKEY_USAGE_PERIOD* = "2.5.29.16" szOID_BASIC_CONSTRAINTS2* = "2.5.29.19" szOID_CERT_POLICIES* = "2.5.29.32" szOID_ANY_CERT_POLICY* = "2.5.29.32.0" szOID_INHIBIT_ANY_POLICY* = "2.5.29.54" szOID_AUTHORITY_KEY_IDENTIFIER2* = "2.5.29.35" szOID_SUBJECT_KEY_IDENTIFIER* = "2.5.29.14" szOID_SUBJECT_ALT_NAME2* = "2.5.29.17" szOID_ISSUER_ALT_NAME2* = "2.5.29.18" szOID_CRL_REASON_CODE* = "2.5.29.21" szOID_REASON_CODE_HOLD* = "2.5.29.23" szOID_CRL_DIST_POINTS* = "2.5.29.31" szOID_ENHANCED_KEY_USAGE* = "2.5.29.37" szOID_ANY_ENHANCED_KEY_USAGE* = "2.5.29.37.0" szOID_CRL_NUMBER* = "2.5.29.20" szOID_DELTA_CRL_INDICATOR* = "2.5.29.27" szOID_ISSUING_DIST_POINT* = "2.5.29.28" szOID_FRESHEST_CRL* = "2.5.29.46" szOID_NAME_CONSTRAINTS* = "2.5.29.30" szOID_POLICY_MAPPINGS* = "2.5.29.33" szOID_LEGACY_POLICY_MAPPINGS* = "2.5.29.5" szOID_POLICY_CONSTRAINTS* = "2.5.29.36" szOID_RENEWAL_CERTIFICATE* = "1.3.6.1.4.1.311.13.1" szOID_ENROLLMENT_NAME_VALUE_PAIR* = "1.3.6.1.4.1.311.13.2.1" szOID_ENROLLMENT_CSP_PROVIDER* = "1.3.6.1.4.1.311.13.2.2" szOID_OS_VERSION* = "1.3.6.1.4.1.311.13.2.3" szOID_ENROLLMENT_AGENT* = "1.3.6.1.4.1.311.20.2.1" szOID_PKIX* = "1.3.6.1.5.5.7" szOID_PKIX_PE* = "1.3.6.1.5.5.7.1" szOID_AUTHORITY_INFO_ACCESS* = "1.3.6.1.5.5.7.1.1" szOID_SUBJECT_INFO_ACCESS* = "1.3.6.1.5.5.7.1.11" szOID_BIOMETRIC_EXT* = "1.3.6.1.5.5.7.1.2" szOID_QC_STATEMENTS_EXT* = "1.3.6.1.5.5.7.1.3" szOID_LOGOTYPE_EXT* = "1.3.6.1.5.5.7.1.12" szOID_CERT_EXTENSIONS* = "1.3.6.1.4.1.311.2.1.14" szOID_NEXT_UPDATE_LOCATION* = "1.3.6.1.4.1.311.10.2" szOID_REMOVE_CERTIFICATE* = "1.3.6.1.4.1.311.10.8.1" szOID_CROSS_CERT_DIST_POINTS* = "1.3.6.1.4.1.311.10.9.1" szOID_CTL* = "1.3.6.1.4.1.311.10.1" szOID_SORTED_CTL* = "1.3.6.1.4.1.311.10.1.1" szOID_SERIALIZED* = "1.3.6.1.4.1.311.10.3.3.1" szOID_NT_PRINCIPAL_NAME* = "1.3.6.1.4.1.311.20.2.3" szOID_INTERNATIONALIZED_EMAIL_ADDRESS* = "1.3.6.1.4.1.311.20.2.4" szOID_PRODUCT_UPDATE* = "1.3.6.1.4.1.311.31.1" szOID_ANY_APPLICATION_POLICY* = "1.3.6.1.4.1.311.10.12.1" szOID_AUTO_ENROLL_CTL_USAGE* = "1.3.6.1.4.1.311.20.1" szOID_ENROLL_CERTTYPE_EXTENSION* = "1.3.6.1.4.1.311.20.2" szOID_CERT_MANIFOLD* = "1.3.6.1.4.1.311.20.3" szOID_CERTSRV_CA_VERSION* = "1.3.6.1.4.1.311.21.1" szOID_CERTSRV_PREVIOUS_CERT_HASH* = "1.3.6.1.4.1.311.21.2" szOID_CRL_VIRTUAL_BASE* = "1.3.6.1.4.1.311.21.3" szOID_CRL_NEXT_PUBLISH* = "1.3.6.1.4.1.311.21.4" szOID_KP_CA_EXCHANGE* = "1.3.6.1.4.1.311.21.5" szOID_KP_KEY_RECOVERY_AGENT* = "1.3.6.1.4.1.311.21.6" szOID_CERTIFICATE_TEMPLATE* = "1.3.6.1.4.1.311.21.7" szOID_ENTERPRISE_OID_ROOT* = "1.3.6.1.4.1.311.21.8" szOID_RDN_DUMMY_SIGNER* = "1.3.6.1.4.1.311.21.9" szOID_APPLICATION_CERT_POLICIES* = "1.3.6.1.4.1.311.21.10" szOID_APPLICATION_POLICY_MAPPINGS* = "1.3.6.1.4.1.311.21.11" szOID_APPLICATION_POLICY_CONSTRAINTS* = "1.3.6.1.4.1.311.21.12" szOID_ARCHIVED_KEY_ATTR* = "1.3.6.1.4.1.311.21.13" szOID_CRL_SELF_CDP* = "1.3.6.1.4.1.311.21.14" szOID_REQUIRE_CERT_CHAIN_POLICY* = "1.3.6.1.4.1.311.21.15" szOID_ARCHIVED_KEY_CERT_HASH* = "1.3.6.1.4.1.311.21.16" szOID_ISSUED_CERT_HASH* = "1.3.6.1.4.1.311.21.17" szOID_DS_EMAIL_REPLICATION* = "1.3.6.1.4.1.311.21.19" szOID_REQUEST_CLIENT_INFO* = "1.3.6.1.4.1.311.21.20" szOID_ENCRYPTED_KEY_HASH* = "1.3.6.1.4.1.311.21.21" szOID_CERTSRV_CROSSCA_VERSION* = "1.3.6.1.4.1.311.21.22" szOID_NTDS_REPLICATION* = "1.3.6.1.4.1.311.25.1" szOID_SUBJECT_DIR_ATTRS* = "2.5.29.9" szOID_PKIX_KP* = "1.3.6.1.5.5.7.3" szOID_PKIX_KP_SERVER_AUTH* = "1.3.6.1.5.5.7.3.1" szOID_PKIX_KP_CLIENT_AUTH* = "1.3.6.1.5.5.7.3.2" szOID_PKIX_KP_CODE_SIGNING* = "1.3.6.1.5.5.7.3.3" szOID_PKIX_KP_EMAIL_PROTECTION* = "1.3.6.1.5.5.7.3.4" szOID_PKIX_KP_IPSEC_END_SYSTEM* = "1.3.6.1.5.5.7.3.5" szOID_PKIX_KP_IPSEC_TUNNEL* = "1.3.6.1.5.5.7.3.6" szOID_PKIX_KP_IPSEC_USER* = "1.3.6.1.5.5.7.3.7" szOID_PKIX_KP_TIMESTAMP_SIGNING* = "1.3.6.1.5.5.7.3.8" szOID_PKIX_KP_OCSP_SIGNING* = "1.3.6.1.5.5.7.3.9" szOID_PKIX_OCSP_NONCE* = "1.3.6.1.5.5.7.48.1.2" szOID_PKIX_OCSP_NOCHECK* = "1.3.6.1.5.5.7.48.1.5" szOID_IPSEC_KP_IKE_INTERMEDIATE* = "1.3.6.1.5.5.8.2.2" szOID_PKINIT_KP_KDC* = "1.3.6.1.5.2.3.5" szOID_KP_CTL_USAGE_SIGNING* = "1.3.6.1.4.1.311.10.3.1" szOID_KP_TIME_STAMP_SIGNING* = "1.3.6.1.4.1.311.10.3.2" szOID_SERVER_GATED_CRYPTO* = "1.3.6.1.4.1.311.10.3.3" szOID_SGC_NETSCAPE* = "2.16.840.1.113730.4.1" szOID_KP_EFS* = "1.3.6.1.4.1.311.10.3.4" szOID_EFS_RECOVERY* = "1.3.6.1.4.1.311.10.3.4.1" szOID_WHQL_CRYPTO* = "1.3.6.1.4.1.311.10.3.5" szOID_NT5_CRYPTO* = "1.3.6.1.4.1.311.10.3.6" szOID_OEM_WHQL_CRYPTO* = "1.3.6.1.4.1.311.10.3.7" szOID_EMBEDDED_NT_CRYPTO* = "1.3.6.1.4.1.311.10.3.8" szOID_ROOT_LIST_SIGNER* = "1.3.6.1.4.1.311.10.3.9" szOID_KP_QUALIFIED_SUBORDINATION* = "1.3.6.1.4.1.311.10.3.10" szOID_KP_KEY_RECOVERY* = "1.3.6.1.4.1.311.10.3.11" szOID_KP_DOCUMENT_SIGNING* = "1.3.6.1.4.1.311.10.3.12" szOID_KP_LIFETIME_SIGNING* = "1.3.6.1.4.1.311.10.3.13" szOID_KP_MOBILE_DEVICE_SOFTWARE* = "1.3.6.1.4.1.311.10.3.14" szOID_KP_SMART_DISPLAY* = "1.3.6.1.4.1.311.10.3.15" szOID_KP_CSP_SIGNATURE* = "1.3.6.1.4.1.311.10.3.16" szOID_DRM* = "1.3.6.1.4.1.311.10.5.1" szOID_DRM_INDIVIDUALIZATION* = "1.3.6.1.4.1.311.10.5.2" szOID_LICENSES* = "1.3.6.1.4.1.311.10.6.1" szOID_LICENSE_SERVER* = "1.3.6.1.4.1.311.10.6.2" szOID_KP_SMARTCARD_LOGON* = "1.3.6.1.4.1.311.20.2.2" szOID_KP_KERNEL_MODE_CODE_SIGNING* = "1.3.6.1.4.1.311.61.1.1" szOID_KP_KERNEL_MODE_TRUSTED_BOOT_SIGNING* = "1.3.6.1.4.1.311.61.4.1" szOID_REVOKED_LIST_SIGNER* = "1.3.6.1.4.1.311.10.3.19" szOID_DISALLOWED_LIST* = "1.3.6.1.4.1.311.10.3.30" szOID_KP_KERNEL_MODE_HAL_EXTENSION_SIGNING* = "1.3.6.1.4.1.311.61.5.1" szOID_YESNO_TRUST_ATTR* = "1.3.6.1.4.1.311.10.4.1" szOID_PKIX_POLICY_QUALIFIER_CPS* = "1.3.6.1.5.5.7.2.1" szOID_PKIX_POLICY_QUALIFIER_USERNOTICE* = "1.3.6.1.5.5.7.2.2" szOID_ROOT_PROGRAM_FLAGS* = "1.3.6.1.4.1.311.60.1.1" CERT_ROOT_PROGRAM_FLAG_ORG* = 0x80 CERT_ROOT_PROGRAM_FLAG_LSC* = 0x40 CERT_ROOT_PROGRAM_FLAG_SUBJECT_LOGO* = 0x20 CERT_ROOT_PROGRAM_FLAG_OU* = 0x10 CERT_ROOT_PROGRAM_FLAG_ADDRESS* = 0x08 szOID_CERT_POLICIES_95_QUALIFIER1* = "2.16.840.1.113733.1.7.1.1" CERT_UNICODE_RDN_ERR_INDEX_MASK* = 0x3ff CERT_UNICODE_RDN_ERR_INDEX_SHIFT* = 22 CERT_UNICODE_ATTR_ERR_INDEX_MASK* = 0x3f CERT_UNICODE_ATTR_ERR_INDEX_SHIFT* = 16 CERT_UNICODE_VALUE_ERR_INDEX_MASK* = 0xffff CERT_UNICODE_VALUE_ERR_INDEX_SHIFT* = 0 CERT_ENCIPHER_ONLY_KEY_USAGE* = 0x01 CERT_OFFLINE_CRL_SIGN_KEY_USAGE* = 0x02 CERT_KEY_CERT_SIGN_KEY_USAGE* = 0x04 CERT_KEY_AGREEMENT_KEY_USAGE* = 0x08 CERT_DATA_ENCIPHERMENT_KEY_USAGE* = 0x10 CERT_KEY_ENCIPHERMENT_KEY_USAGE* = 0x20 CERT_NON_REPUDIATION_KEY_USAGE* = 0x40 CERT_DIGITAL_SIGNATURE_KEY_USAGE* = 0x80 CERT_DECIPHER_ONLY_KEY_USAGE* = 0x80 CERT_ALT_NAME_OTHER_NAME* = 1 CERT_ALT_NAME_RFC822_NAME* = 2 CERT_ALT_NAME_DNS_NAME* = 3 CERT_ALT_NAME_X400_ADDRESS* = 4 CERT_ALT_NAME_DIRECTORY_NAME* = 5 CERT_ALT_NAME_EDI_PARTY_NAME* = 6 CERT_ALT_NAME_URL* = 7 CERT_ALT_NAME_IP_ADDRESS* = 8 CERT_ALT_NAME_REGISTERED_ID* = 9 CERT_ALT_NAME_ENTRY_ERR_INDEX_MASK* = 0xff CERT_ALT_NAME_ENTRY_ERR_INDEX_SHIFT* = 16 CERT_ALT_NAME_VALUE_ERR_INDEX_MASK* = 0x0000ffff CERT_ALT_NAME_VALUE_ERR_INDEX_SHIFT* = 0 CERT_CA_SUBJECT_FLAG* = 0x80 CERT_END_ENTITY_SUBJECT_FLAG* = 0x40 szOID_PKIX_ACC_DESCR* = "1.3.6.1.5.5.7.48" szOID_PKIX_OCSP* = "1.3.6.1.5.5.7.48.1" szOID_PKIX_CA_ISSUERS* = "1.3.6.1.5.5.7.48.2" szOID_PKIX_TIME_STAMPING* = "1.3.6.1.5.5.7.48.3" szOID_PKIX_CA_REPOSITORY* = "1.3.6.1.5.5.7.48.5" CRL_REASON_UNSPECIFIED* = 0 CRL_REASON_KEY_COMPROMISE* = 1 CRL_REASON_CA_COMPROMISE* = 2 CRL_REASON_AFFILIATION_CHANGED* = 3 CRL_REASON_SUPERSEDED* = 4 CRL_REASON_CESSATION_OF_OPERATION* = 5 CRL_REASON_CERTIFICATE_HOLD* = 6 CRL_REASON_REMOVE_FROM_CRL* = 8 CRL_DIST_POINT_NO_NAME* = 0 CRL_DIST_POINT_FULL_NAME* = 1 CRL_DIST_POINT_ISSUER_RDN_NAME* = 2 CRL_REASON_UNUSED_FLAG* = 0x80 CRL_REASON_KEY_COMPROMISE_FLAG* = 0x40 CRL_REASON_CA_COMPROMISE_FLAG* = 0x20 CRL_REASON_AFFILIATION_CHANGED_FLAG* = 0x10 CRL_REASON_SUPERSEDED_FLAG* = 0x08 CRL_REASON_CESSATION_OF_OPERATION_FLAG* = 0x04 CRL_REASON_CERTIFICATE_HOLD_FLAG* = 0x02 CRL_DIST_POINT_ERR_INDEX_MASK* = 0x7f CRL_DIST_POINT_ERR_INDEX_SHIFT* = 24 CRL_DIST_POINT_ERR_CRL_ISSUER_BIT* = 0x80000000'i32 CROSS_CERT_DIST_POINT_ERR_INDEX_MASK* = 0xff CROSS_CERT_DIST_POINT_ERR_INDEX_SHIFT* = 24 CERT_EXCLUDED_SUBTREE_BIT* = 0x80000000'i32 SORTED_CTL_EXT_FLAGS_OFFSET* = 0 SORTED_CTL_EXT_COUNT_OFFSET* = 4 SORTED_CTL_EXT_MAX_COLLISION_OFFSET* = 8 SORTED_CTL_EXT_HASH_BUCKET_OFFSET* = 12 SORTED_CTL_EXT_HASHED_SUBJECT_IDENTIFIER_FLAG* = 0x1 CERT_DSS_R_LEN* = 20 CERT_DSS_S_LEN* = 20 CERT_DSS_SIGNATURE_LEN* = CERT_DSS_R_LEN+CERT_DSS_S_LEN CERT_MAX_ASN_ENCODED_DSS_SIGNATURE_LEN* = 48 CRYPT_X942_PUB_INFO_BYTE_LENGTH* = 512/8 CRYPT_RC2_40BIT_VERSION* = 160 CRYPT_RC2_56BIT_VERSION* = 52 CRYPT_RC2_64BIT_VERSION* = 120 CRYPT_RC2_128BIT_VERSION* = 58 szOID_QC_EU_COMPLIANCE* = "0.4.0.1862.1.1" szOID_QC_SSCD* = "0.4.0.1862.1.4" PKCS_RSA_SSA_PSS_TRAILER_FIELD_BC* = 1 szOID_VERISIGN_PRIVATE_6_9* = "2.16.840.1.113733.1.6.9" szOID_VERISIGN_ONSITE_JURISDICTION_HASH* = "2.16.840.1.113733.1.6.11" szOID_VERISIGN_BITSTRING_6_13* = "2.16.840.1.113733.1.6.13" szOID_VERISIGN_ISS_STRONG_CRYPTO* = "2.16.840.1.113733.1.8.1" szOID_NETSCAPE* = "2.16.840.1.113730" szOID_NETSCAPE_CERT_EXTENSION* = "2.16.840.1.113730.1" szOID_NETSCAPE_CERT_TYPE* = "2.16.840.1.113730.1.1" szOID_NETSCAPE_BASE_URL* = "2.16.840.1.113730.1.2" szOID_NETSCAPE_REVOCATION_URL* = "2.16.840.1.113730.1.3" szOID_NETSCAPE_CA_REVOCATION_URL* = "2.16.840.1.113730.1.4" szOID_NETSCAPE_CERT_RENEWAL_URL* = "2.16.840.1.113730.1.7" szOID_NETSCAPE_CA_POLICY_URL* = "2.16.840.1.113730.1.8" szOID_NETSCAPE_SSL_SERVER_NAME* = "2.16.840.1.113730.1.12" szOID_NETSCAPE_COMMENT* = "2.16.840.1.113730.1.13" szOID_NETSCAPE_DATA_TYPE* = "2.16.840.1.113730.2" szOID_NETSCAPE_CERT_SEQUENCE* = "2.16.840.1.113730.2.5" NETSCAPE_SIGN_CA_CERT_TYPE* = 0x01 NETSCAPE_SMIME_CA_CERT_TYPE* = 0x02 NETSCAPE_SSL_CA_CERT_TYPE* = 0x04 NETSCAPE_SIGN_CERT_TYPE* = 0x10 NETSCAPE_SMIME_CERT_TYPE* = 0x20 NETSCAPE_SSL_SERVER_AUTH_CERT_TYPE* = 0x40 NETSCAPE_SSL_CLIENT_AUTH_CERT_TYPE* = 0x80 szOID_CT_PKI_DATA* = "1.3.6.1.5.5.7.12.2" szOID_CT_PKI_RESPONSE* = "1.3.6.1.5.5.7.12.3" szOID_PKIX_NO_SIGNATURE* = "1.3.6.1.5.5.7.6.2" szOID_CMC* = "1.3.6.1.5.5.7.7" szOID_CMC_STATUS_INFO* = "1.3.6.1.5.5.7.7.1" szOID_CMC_IDENTIFICATION* = "1.3.6.1.5.5.7.7.2" szOID_CMC_IDENTITY_PROOF* = "1.3.6.1.5.5.7.7.3" szOID_CMC_DATA_RETURN* = "1.3.6.1.5.5.7.7.4" szOID_CMC_TRANSACTION_ID* = "1.3.6.1.5.5.7.7.5" szOID_CMC_SENDER_NONCE* = "1.3.6.1.5.5.7.7.6" szOID_CMC_RECIPIENT_NONCE* = "1.3.6.1.5.5.7.7.7" szOID_CMC_ADD_EXTENSIONS* = "1.3.6.1.5.5.7.7.8" szOID_CMC_ENCRYPTED_POP* = "1.3.6.1.5.5.7.7.9" szOID_CMC_DECRYPTED_POP* = "1.3.6.1.5.5.7.7.10" szOID_CMC_LRA_POP_WITNESS* = "1.3.6.1.5.5.7.7.11" szOID_CMC_GET_CERT* = "1.3.6.1.5.5.7.7.15" szOID_CMC_GET_CRL* = "1.3.6.1.5.5.7.7.16" szOID_CMC_REVOKE_REQUEST* = "1.3.6.1.5.5.7.7.17" szOID_CMC_REG_INFO* = "1.3.6.1.5.5.7.7.18" szOID_CMC_RESPONSE_INFO* = "1.3.6.1.5.5.7.7.19" szOID_CMC_QUERY_PENDING* = "1.3.6.1.5.5.7.7.21" szOID_CMC_ID_POP_LINK_RANDOM* = "1.3.6.1.5.5.7.7.22" szOID_CMC_ID_POP_LINK_WITNESS* = "1.3.6.1.5.5.7.7.23" szOID_CMC_ID_CONFIRM_CERT_ACCEPTANCE* = "1.3.6.1.5.5.7.7.24" szOID_CMC_ADD_ATTRIBUTES* = "1.3.6.1.4.1.311.10.10.1" CMC_TAGGED_CERT_REQUEST_CHOICE* = 1 CMC_OTHER_INFO_NO_CHOICE* = 0 CMC_OTHER_INFO_FAIL_CHOICE* = 1 CMC_OTHER_INFO_PEND_CHOICE* = 2 CMC_STATUS_SUCCESS* = 0 CMC_STATUS_FAILED* = 2 CMC_STATUS_PENDING* = 3 CMC_STATUS_NO_SUPPORT* = 4 CMC_STATUS_CONFIRM_REQUIRED* = 5 CMC_FAIL_BAD_ALG* = 0 CMC_FAIL_BAD_MESSAGE_CHECK* = 1 CMC_FAIL_BAD_REQUEST* = 2 CMC_FAIL_BAD_TIME* = 3 CMC_FAIL_BAD_CERT_ID* = 4 CMC_FAIL_UNSUPORTED_EXT* = 5 CMC_FAIL_MUST_ARCHIVE_KEYS* = 6 CMC_FAIL_BAD_IDENTITY* = 7 CMC_FAIL_POP_REQUIRED* = 8 CMC_FAIL_POP_FAILED* = 9 CMC_FAIL_NO_KEY_REUSE* = 10 CMC_FAIL_INTERNAL_CA_ERROR* = 11 CMC_FAIL_TRY_LATER* = 12 CERT_LOGOTYPE_GRAY_SCALE_IMAGE_INFO_CHOICE* = 1 CERT_LOGOTYPE_COLOR_IMAGE_INFO_CHOICE* = 2 CERT_LOGOTYPE_NO_IMAGE_RESOLUTION_CHOICE* = 0 CERT_LOGOTYPE_BITS_IMAGE_RESOLUTION_CHOICE* = 1 CERT_LOGOTYPE_TABLE_SIZE_IMAGE_RESOLUTION_CHOICE* = 2 CERT_LOGOTYPE_DIRECT_INFO_CHOICE* = 1 CERT_LOGOTYPE_INDIRECT_INFO_CHOICE* = 2 szOID_LOYALTY_OTHER_LOGOTYPE* = "1.3.6.1.5.5.7.20.1" szOID_BACKGROUND_OTHER_LOGOTYPE* = "1.3.6.1.5.5.7.20.2" CERT_BIOMETRIC_PREDEFINED_DATA_CHOICE* = 1 CERT_BIOMETRIC_OID_DATA_CHOICE* = 2 CERT_BIOMETRIC_PICTURE_TYPE* = 0 CERT_BIOMETRIC_SIGNATURE_TYPE* = 1 OCSP_REQUEST_V1* = 0 OCSP_SUCCESSFUL_RESPONSE* = 0 OCSP_MALFORMED_REQUEST_RESPONSE* = 1 OCSP_INTERNAL_ERROR_RESPONSE* = 2 OCSP_TRY_LATER_RESPONSE* = 3 OCSP_SIG_REQUIRED_RESPONSE* = 5 OCSP_UNAUTHORIZED_RESPONSE* = 6 szOID_PKIX_OCSP_BASIC_SIGNED_RESPONSE* = "1.3.6.1.5.5.7.48.1.1" OCSP_BASIC_GOOD_CERT_STATUS* = 0 OCSP_BASIC_REVOKED_CERT_STATUS* = 1 OCSP_BASIC_UNKNOWN_CERT_STATUS* = 2 OCSP_BASIC_RESPONSE_V1* = 0 OCSP_BASIC_BY_NAME_RESPONDER_ID* = 1 OCSP_BASIC_BY_KEY_RESPONDER_ID* = 2 CRYPT_OID_ENCODE_OBJECT_FUNC* = "CryptDllEncodeObject" CRYPT_OID_DECODE_OBJECT_FUNC* = "CryptDllDecodeObject" CRYPT_OID_ENCODE_OBJECT_EX_FUNC* = "CryptDllEncodeObjectEx" CRYPT_OID_DECODE_OBJECT_EX_FUNC* = "CryptDllDecodeObjectEx" CRYPT_OID_CREATE_COM_OBJECT_FUNC* = "CryptDllCreateCOMObject" CRYPT_OID_VERIFY_REVOCATION_FUNC* = "CertDllVerifyRevocation" CRYPT_OID_VERIFY_CTL_USAGE_FUNC* = "CertDllVerifyCTLUsage" CRYPT_OID_FORMAT_OBJECT_FUNC* = "CryptDllFormatObject" CRYPT_OID_FIND_OID_INFO_FUNC* = "CryptDllFindOIDInfo" CRYPT_OID_FIND_LOCALIZED_NAME_FUNC* = "CryptDllFindLocalizedName" CRYPT_OID_REGPATH* = "Software\\Microsoft\\Cryptography\\OID" CRYPT_OID_REG_ENCODING_TYPE_PREFIX* = "EncodingType " CRYPT_OID_REG_DLL_VALUE_NAME* = "Dll" CRYPT_OID_REG_FUNC_NAME_VALUE_NAME* = "FuncName" CRYPT_OID_REG_FUNC_NAME_VALUE_NAME_A* = "FuncName" CRYPT_OID_REG_FLAGS_VALUE_NAME* = "CryptFlags" CRYPT_DEFAULT_OID* = "DEFAULT" CRYPT_INSTALL_OID_FUNC_BEFORE_FLAG* = 1 CRYPT_GET_INSTALLED_OID_FUNC_FLAG* = 0x1 CRYPT_REGISTER_FIRST_INDEX* = 0 CRYPT_REGISTER_LAST_INDEX* = 0xffffffff'i32 CRYPT_MATCH_ANY_ENCODING_TYPE* = 0xffffffff'i32 CALG_OID_INFO_CNG_ONLY* = 0xffffffff'i32 CALG_OID_INFO_PARAMETERS* = 0xfffffffe'i32 CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM* = "CryptOIDInfoHashParameters" CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM* = "CryptOIDInfoECCParameters" CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM* = "CryptOIDInfoMgf1Parameters" CRYPT_OID_INFO_NO_SIGN_ALGORITHM* = "CryptOIDInfoNoSign" CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM* = "CryptOIDInfoOAEPParameters" CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM* = "CryptOIDInfoECCWrapParameters" CRYPT_OID_INFO_NO_PARAMETERS_ALGORITHM* = "CryptOIDInfoNoParameters" CRYPT_HASH_ALG_OID_GROUP_ID* = 1 CRYPT_ENCRYPT_ALG_OID_GROUP_ID* = 2 CRYPT_PUBKEY_ALG_OID_GROUP_ID* = 3 CRYPT_SIGN_ALG_OID_GROUP_ID* = 4 CRYPT_RDN_ATTR_OID_GROUP_ID* = 5 CRYPT_EXT_OR_ATTR_OID_GROUP_ID* = 6 CRYPT_ENHKEY_USAGE_OID_GROUP_ID* = 7 CRYPT_POLICY_OID_GROUP_ID* = 8 CRYPT_TEMPLATE_OID_GROUP_ID* = 9 CRYPT_KDF_OID_GROUP_ID* = 10 CRYPT_LAST_OID_GROUP_ID* = 10 CRYPT_FIRST_ALG_OID_GROUP_ID* = CRYPT_HASH_ALG_OID_GROUP_ID CRYPT_LAST_ALG_OID_GROUP_ID* = CRYPT_SIGN_ALG_OID_GROUP_ID CRYPT_OID_INHIBIT_SIGNATURE_FORMAT_FLAG* = 0x1 CRYPT_OID_USE_PUBKEY_PARA_FOR_PKCS7_FLAG* = 0x2 CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG* = 0x4 CRYPT_OID_PUBKEY_ENCRYPT_ONLY_FLAG* = 0x40000000 CRYPT_OID_PUBKEY_SIGN_ONLY_FLAG* = 0x80000000'i32 CRYPT_OID_INFO_OID_KEY* = 1 CRYPT_OID_INFO_NAME_KEY* = 2 CRYPT_OID_INFO_ALGID_KEY* = 3 CRYPT_OID_INFO_SIGN_KEY* = 4 CRYPT_OID_INFO_CNG_ALGID_KEY* = 5 CRYPT_OID_INFO_CNG_SIGN_KEY* = 6 CRYPT_OID_INFO_OID_KEY_FLAGS_MASK* = 0xffff0000'i32 CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG* = 0x80000000'i32 CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG* = 0x40000000 CRYPT_OID_DISABLE_SEARCH_DS_FLAG* = 0x80000000'i32 CRYPT_OID_PREFER_CNG_ALGID_FLAG* = 0x40000000 CRYPT_OID_INFO_OID_GROUP_BIT_LEN_MASK* = 0x0fff0000 CRYPT_OID_INFO_OID_GROUP_BIT_LEN_SHIFT* = 16 CRYPT_INSTALL_OID_INFO_BEFORE_FLAG* = 1 CRYPT_LOCALIZED_NAME_ENCODING_TYPE* = 0 CRYPT_LOCALIZED_NAME_OID* = "LocalizedNames" CERT_STRONG_SIGN_ECDSA_ALGORITHM* = "ECDSA" CERT_STRONG_SIGN_SERIALIZED_INFO_CHOICE* = 1 CERT_STRONG_SIGN_OID_INFO_CHOICE* = 2 CERT_STRONG_SIGN_ENABLE_CRL_CHECK* = 0x1 CERT_STRONG_SIGN_ENABLE_OCSP_CHECK* = 0x2 szOID_CERT_STRONG_SIGN_OS_PREFIX* = "1.3.6.1.4.1.311.72.1." szOID_CERT_STRONG_SIGN_OS_1* = "1.3.6.1.4.1.311.72.1.1" szOID_CERT_STRONG_SIGN_OS_CURRENT* = szOID_CERT_STRONG_SIGN_OS_1 szOID_CERT_STRONG_KEY_OS_PREFIX* = "1.3.6.1.4.1.311.72.2." szOID_CERT_STRONG_KEY_OS_1* = "1.3.6.1.4.1.311.72.2.1" szOID_CERT_STRONG_KEY_OS_CURRENT* = szOID_CERT_STRONG_KEY_OS_1 szOID_PKCS_7_DATA* = "1.2.840.113549.1.7.1" szOID_PKCS_7_SIGNED* = "1.2.840.113549.1.7.2" szOID_PKCS_7_ENVELOPED* = "1.2.840.113549.1.7.3" szOID_PKCS_7_SIGNEDANDENVELOPED* = "1.2.840.113549.1.7.4" szOID_PKCS_7_DIGESTED* = "1.2.840.113549.1.7.5" szOID_PKCS_7_ENCRYPTED* = "1.2.840.113549.1.7.6" szOID_PKCS_9_CONTENT_TYPE* = "1.2.840.113549.1.9.3" szOID_PKCS_9_MESSAGE_DIGEST* = "1.2.840.113549.1.9.4" CMSG_DATA* = 1 CMSG_SIGNED* = 2 CMSG_ENVELOPED* = 3 CMSG_SIGNED_AND_ENVELOPED* = 4 CMSG_HASHED* = 5 CMSG_ENCRYPTED* = 6 CMSG_ALL_FLAGS* = not 0 CMSG_DATA_FLAG* = 1 shl CMSG_DATA CMSG_SIGNED_FLAG* = 1 shl CMSG_SIGNED CMSG_ENVELOPED_FLAG* = 1 shl CMSG_ENVELOPED CMSG_SIGNED_AND_ENVELOPED_FLAG* = 1 shl CMSG_SIGNED_AND_ENVELOPED CMSG_HASHED_FLAG* = 1 shl CMSG_HASHED CMSG_ENCRYPTED_FLAG* = 1 shl CMSG_ENCRYPTED CERT_ID_ISSUER_SERIAL_NUMBER* = 1 CERT_ID_KEY_IDENTIFIER* = 2 CERT_ID_SHA1_HASH* = 3 CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE* = 1 CMSG_KEY_AGREE_STATIC_KEY_CHOICE* = 2 CMSG_MAIL_LIST_HANDLE_KEY_CHOICE* = 1 CMSG_KEY_TRANS_RECIPIENT* = 1 CMSG_KEY_AGREE_RECIPIENT* = 2 CMSG_MAIL_LIST_RECIPIENT* = 3 CMSG_RC4_NO_SALT_FLAG* = 0x40000000 CMSG_SP3_COMPATIBLE_ENCRYPT_FLAG* = 0x80000000'i32 CMSG_INDEFINITE_LENGTH* = 0xffffffff'i32 CMSG_BARE_CONTENT_FLAG* = 0x1 CMSG_LENGTH_ONLY_FLAG* = 0x2 CMSG_DETACHED_FLAG* = 0x4 CMSG_AUTHENTICATED_ATTRIBUTES_FLAG* = 0x8 CMSG_CONTENTS_OCTETS_FLAG* = 0x10 CMSG_MAX_LENGTH_FLAG* = 0x20 CMSG_CMS_ENCAPSULATED_CONTENT_FLAG* = 0x40 CMSG_CRYPT_RELEASE_CONTEXT_FLAG* = 0x8000 CMSG_TYPE_PARAM* = 1 CMSG_CONTENT_PARAM* = 2 CMSG_BARE_CONTENT_PARAM* = 3 CMSG_INNER_CONTENT_TYPE_PARAM* = 4 CMSG_SIGNER_COUNT_PARAM* = 5 CMSG_SIGNER_INFO_PARAM* = 6 CMSG_SIGNER_CERT_INFO_PARAM* = 7 CMSG_SIGNER_HASH_ALGORITHM_PARAM* = 8 CMSG_SIGNER_AUTH_ATTR_PARAM* = 9 CMSG_SIGNER_UNAUTH_ATTR_PARAM* = 10 CMSG_CERT_COUNT_PARAM* = 11 CMSG_CERT_PARAM* = 12 CMSG_CRL_COUNT_PARAM* = 13 CMSG_CRL_PARAM* = 14 CMSG_ENVELOPE_ALGORITHM_PARAM* = 15 CMSG_RECIPIENT_COUNT_PARAM* = 17 CMSG_RECIPIENT_INDEX_PARAM* = 18 CMSG_RECIPIENT_INFO_PARAM* = 19 CMSG_HASH_ALGORITHM_PARAM* = 20 CMSG_HASH_DATA_PARAM* = 21 CMSG_COMPUTED_HASH_PARAM* = 22 CMSG_ENCRYPT_PARAM* = 26 CMSG_ENCRYPTED_DIGEST* = 27 CMSG_ENCODED_SIGNER* = 28 CMSG_ENCODED_MESSAGE* = 29 CMSG_VERSION_PARAM* = 30 CMSG_ATTR_CERT_COUNT_PARAM* = 31 CMSG_ATTR_CERT_PARAM* = 32 CMSG_CMS_RECIPIENT_COUNT_PARAM* = 33 CMSG_CMS_RECIPIENT_INDEX_PARAM* = 34 CMSG_CMS_RECIPIENT_ENCRYPTED_KEY_INDEX_PARAM* = 35 CMSG_CMS_RECIPIENT_INFO_PARAM* = 36 CMSG_UNPROTECTED_ATTR_PARAM* = 37 CMSG_SIGNER_CERT_ID_PARAM* = 38 CMSG_CMS_SIGNER_INFO_PARAM* = 39 CMSG_SIGNED_DATA_V1* = 1 CMSG_SIGNED_DATA_V3* = 3 CMSG_SIGNED_DATA_PKCS_1_5_VERSION* = CMSG_SIGNED_DATA_V1 CMSG_SIGNED_DATA_CMS_VERSION* = CMSG_SIGNED_DATA_V3 CMSG_SIGNER_INFO_V1* = 1 CMSG_SIGNER_INFO_V3* = 3 CMSG_SIGNER_INFO_PKCS_1_5_VERSION* = CMSG_SIGNER_INFO_V1 CMSG_SIGNER_INFO_CMS_VERSION* = CMSG_SIGNER_INFO_V3 CMSG_HASHED_DATA_V0* = 0 CMSG_HASHED_DATA_V2* = 2 CMSG_HASHED_DATA_PKCS_1_5_VERSION* = CMSG_HASHED_DATA_V0 CMSG_HASHED_DATA_CMS_VERSION* = CMSG_HASHED_DATA_V2 CMSG_ENVELOPED_DATA_V0* = 0 CMSG_ENVELOPED_DATA_V2* = 2 CMSG_ENVELOPED_DATA_PKCS_1_5_VERSION* = CMSG_ENVELOPED_DATA_V0 CMSG_ENVELOPED_DATA_CMS_VERSION* = CMSG_ENVELOPED_DATA_V2 CMSG_KEY_AGREE_ORIGINATOR_CERT* = 1 CMSG_KEY_AGREE_ORIGINATOR_PUBLIC_KEY* = 2 CMSG_ENVELOPED_RECIPIENT_V0* = 0 CMSG_ENVELOPED_RECIPIENT_V2* = 2 CMSG_ENVELOPED_RECIPIENT_V3* = 3 CMSG_ENVELOPED_RECIPIENT_V4* = 4 CMSG_KEY_TRANS_PKCS_1_5_VERSION* = CMSG_ENVELOPED_RECIPIENT_V0 CMSG_KEY_TRANS_CMS_VERSION* = CMSG_ENVELOPED_RECIPIENT_V2 CMSG_KEY_AGREE_VERSION* = CMSG_ENVELOPED_RECIPIENT_V3 CMSG_MAIL_LIST_VERSION* = CMSG_ENVELOPED_RECIPIENT_V4 CMSG_CTRL_VERIFY_SIGNATURE* = 1 CMSG_CTRL_DECRYPT* = 2 CMSG_CTRL_VERIFY_HASH* = 5 CMSG_CTRL_ADD_SIGNER* = 6 CMSG_CTRL_DEL_SIGNER* = 7 CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR* = 8 CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR* = 9 CMSG_CTRL_ADD_CERT* = 10 CMSG_CTRL_DEL_CERT* = 11 CMSG_CTRL_ADD_CRL* = 12 CMSG_CTRL_DEL_CRL* = 13 CMSG_CTRL_ADD_ATTR_CERT* = 14 CMSG_CTRL_DEL_ATTR_CERT* = 15 CMSG_CTRL_KEY_TRANS_DECRYPT* = 16 CMSG_CTRL_KEY_AGREE_DECRYPT* = 17 CMSG_CTRL_MAIL_LIST_DECRYPT* = 18 CMSG_CTRL_VERIFY_SIGNATURE_EX* = 19 CMSG_CTRL_ADD_CMS_SIGNER_INFO* = 20 CMSG_CTRL_ENABLE_STRONG_SIGNATURE* = 21 CMSG_VERIFY_SIGNER_PUBKEY* = 1 CMSG_VERIFY_SIGNER_CERT* = 2 CMSG_VERIFY_SIGNER_CHAIN* = 3 CMSG_VERIFY_SIGNER_NULL* = 4 CMSG_VERIFY_COUNTER_SIGN_ENABLE_STRONG_FLAG* = 0x1 CMSG_OID_GEN_ENCRYPT_KEY_FUNC* = "CryptMsgDllGenEncryptKey" CMSG_OID_EXPORT_ENCRYPT_KEY_FUNC* = "CryptMsgDllExportEncryptKey" CMSG_OID_IMPORT_ENCRYPT_KEY_FUNC* = "CryptMsgDllImportEncryptKey" CMSG_DEFAULT_INSTALLABLE_FUNC_OID* = cast[LPCSTR](1) CMSG_CONTENT_ENCRYPT_PAD_ENCODED_LEN_FLAG* = 0x1 CMSG_CONTENT_ENCRYPT_FREE_PARA_FLAG* = 0x1 CMSG_CONTENT_ENCRYPT_FREE_OBJID_FLAG* = 0x2 CMSG_CONTENT_ENCRYPT_RELEASE_CONTEXT_FLAG* = 0x8000 CMSG_OID_GEN_CONTENT_ENCRYPT_KEY_FUNC* = "CryptMsgDllGenContentEncryptKey" CMSG_OID_CAPI1_GEN_CONTENT_ENCRYPT_KEY_FUNC* = CMSG_OID_GEN_CONTENT_ENCRYPT_KEY_FUNC CMSG_OID_CNG_GEN_CONTENT_ENCRYPT_KEY_FUNC* = "CryptMsgDllCNGGenContentEncryptKey" CMSG_KEY_TRANS_ENCRYPT_FREE_PARA_FLAG* = 0x1 CMSG_KEY_TRANS_ENCRYPT_FREE_OBJID_FLAG* = 0x2 CMSG_OID_EXPORT_KEY_TRANS_FUNC* = "CryptMsgDllExportKeyTrans" CMSG_OID_CAPI1_EXPORT_KEY_TRANS_FUNC* = CMSG_OID_EXPORT_KEY_TRANS_FUNC CMSG_OID_CNG_EXPORT_KEY_TRANS_FUNC* = "CryptMsgDllCNGExportKeyTrans" CMSG_KEY_AGREE_ENCRYPT_FREE_PARA_FLAG* = 0x1 CMSG_KEY_AGREE_ENCRYPT_FREE_MATERIAL_FLAG* = 0x2 CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_ALG_FLAG* = 0x4 CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_PARA_FLAG* = 0x8 CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_BITS_FLAG* = 0x10 CMSG_KEY_AGREE_ENCRYPT_FREE_OBJID_FLAG* = 0x20 CMSG_OID_EXPORT_KEY_AGREE_FUNC* = "CryptMsgDllExportKeyAgree" CMSG_OID_CAPI1_EXPORT_KEY_AGREE_FUNC* = CMSG_OID_EXPORT_KEY_AGREE_FUNC CMSG_OID_CNG_EXPORT_KEY_AGREE_FUNC* = "CryptMsgDllCNGExportKeyAgree" CMSG_MAIL_LIST_ENCRYPT_FREE_PARA_FLAG* = 0x1 CMSG_MAIL_LIST_ENCRYPT_FREE_OBJID_FLAG* = 0x2 CMSG_OID_EXPORT_MAIL_LIST_FUNC* = "CryptMsgDllExportMailList" CMSG_OID_CAPI1_EXPORT_MAIL_LIST_FUNC* = CMSG_OID_EXPORT_MAIL_LIST_FUNC CMSG_OID_IMPORT_KEY_TRANS_FUNC* = "CryptMsgDllImportKeyTrans" CMSG_OID_CAPI1_IMPORT_KEY_TRANS_FUNC* = CMSG_OID_IMPORT_KEY_TRANS_FUNC CMSG_OID_IMPORT_KEY_AGREE_FUNC* = "CryptMsgDllImportKeyAgree" CMSG_OID_CAPI1_IMPORT_KEY_AGREE_FUNC* = CMSG_OID_IMPORT_KEY_AGREE_FUNC CMSG_OID_IMPORT_MAIL_LIST_FUNC* = "CryptMsgDllImportMailList" CMSG_OID_CAPI1_IMPORT_MAIL_LIST_FUNC* = CMSG_OID_IMPORT_MAIL_LIST_FUNC CMSG_OID_CNG_IMPORT_KEY_TRANS_FUNC* = "CryptMsgDllCNGImportKeyTrans" CMSG_OID_CNG_IMPORT_KEY_AGREE_FUNC* = "CryptMsgDllCNGImportKeyAgree" CMSG_OID_CNG_IMPORT_CONTENT_ENCRYPT_KEY_FUNC* = "CryptMsgDllCNGImportContentEncryptKey" CERT_KEY_PROV_HANDLE_PROP_ID* = 1 CERT_KEY_PROV_INFO_PROP_ID* = 2 CERT_SHA1_HASH_PROP_ID* = 3 CERT_MD5_HASH_PROP_ID* = 4 CERT_HASH_PROP_ID* = CERT_SHA1_HASH_PROP_ID CERT_KEY_CONTEXT_PROP_ID* = 5 CERT_KEY_SPEC_PROP_ID* = 6 CERT_IE30_RESERVED_PROP_ID* = 7 CERT_PUBKEY_HASH_RESERVED_PROP_ID* = 8 CERT_ENHKEY_USAGE_PROP_ID* = 9 CERT_CTL_USAGE_PROP_ID* = CERT_ENHKEY_USAGE_PROP_ID CERT_NEXT_UPDATE_LOCATION_PROP_ID* = 10 CERT_FRIENDLY_NAME_PROP_ID* = 11 CERT_PVK_FILE_PROP_ID* = 12 CERT_DESCRIPTION_PROP_ID* = 13 CERT_ACCESS_STATE_PROP_ID* = 14 CERT_SIGNATURE_HASH_PROP_ID* = 15 CERT_SMART_CARD_DATA_PROP_ID* = 16 CERT_EFS_PROP_ID* = 17 CERT_FORTEZZA_DATA_PROP_ID* = 18 CERT_ARCHIVED_PROP_ID* = 19 CERT_KEY_IDENTIFIER_PROP_ID* = 20 CERT_AUTO_ENROLL_PROP_ID* = 21 CERT_PUBKEY_ALG_PARA_PROP_ID* = 22 CERT_CROSS_CERT_DIST_POINTS_PROP_ID* = 23 CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID* = 24 CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID* = 25 CERT_ENROLLMENT_PROP_ID* = 26 CERT_DATE_STAMP_PROP_ID* = 27 CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID* = 28 CERT_SUBJECT_NAME_MD5_HASH_PROP_ID* = 29 CERT_EXTENDED_ERROR_INFO_PROP_ID* = 30 CERT_RENEWAL_PROP_ID* = 64 CERT_ARCHIVED_KEY_HASH_PROP_ID* = 65 CERT_AUTO_ENROLL_RETRY_PROP_ID* = 66 CERT_AIA_URL_RETRIEVED_PROP_ID* = 67 CERT_AUTHORITY_INFO_ACCESS_PROP_ID* = 68 CERT_BACKED_UP_PROP_ID* = 69 CERT_OCSP_RESPONSE_PROP_ID* = 70 CERT_REQUEST_ORIGINATOR_PROP_ID* = 71 CERT_SOURCE_LOCATION_PROP_ID* = 72 CERT_SOURCE_URL_PROP_ID* = 73 CERT_NEW_KEY_PROP_ID* = 74 CERT_OCSP_CACHE_PREFIX_PROP_ID* = 75 CERT_SMART_CARD_ROOT_INFO_PROP_ID* = 76 CERT_NO_AUTO_EXPIRE_CHECK_PROP_ID* = 77 CERT_NCRYPT_KEY_HANDLE_PROP_ID* = 78 CERT_HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_PROP_ID* = 79 CERT_SUBJECT_INFO_ACCESS_PROP_ID* = 80 CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID* = 81 CERT_CA_DISABLE_CRL_PROP_ID* = 82 CERT_ROOT_PROGRAM_CERT_POLICIES_PROP_ID* = 83 CERT_ROOT_PROGRAM_NAME_CONSTRAINTS_PROP_ID* = 84 CERT_SUBJECT_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID* = 85 CERT_SUBJECT_DISABLE_CRL_PROP_ID* = 86 CERT_CEP_PROP_ID* = 87 CERT_SIGN_HASH_CNG_ALG_PROP_ID* = 89 CERT_SCARD_PIN_ID_PROP_ID* = 90 CERT_SCARD_PIN_INFO_PROP_ID* = 91 CERT_SUBJECT_PUB_KEY_BIT_LENGTH_PROP_ID* = 92 CERT_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID* = 93 CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID* = 94 CERT_ISSUER_CHAIN_SIGN_HASH_CNG_ALG_PROP_ID* = 95 CERT_ISSUER_CHAIN_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID* = 96 CERT_NO_EXPIRE_NOTIFICATION_PROP_ID* = 97 CERT_AUTH_ROOT_SHA256_HASH_PROP_ID* = 98 CERT_NCRYPT_KEY_HANDLE_TRANSFER_PROP_ID* = 99 CERT_HCRYPTPROV_TRANSFER_PROP_ID* = 100 CERT_SMART_CARD_READER_PROP_ID* = 101 CERT_SEND_AS_TRUSTED_ISSUER_PROP_ID* = 102 CERT_KEY_REPAIR_ATTEMPTED_PROP_ID* = 103 CERT_DISALLOWED_FILETIME_PROP_ID* = 104 CERT_ROOT_PROGRAM_CHAIN_POLICIES_PROP_ID* = 105 CERT_SMART_CARD_READER_NON_REMOVABLE_PROP_ID* = 106 CERT_FIRST_RESERVED_PROP_ID* = 107 CERT_LAST_RESERVED_PROP_ID* = 0x00007fff CERT_FIRST_USER_PROP_ID* = 0x8000 CERT_LAST_USER_PROP_ID* = 0x0000ffff szOID_CERT_PROP_ID_PREFIX* = "1.3.6.1.4.1.311.10.11." szOID_CERT_KEY_IDENTIFIER_PROP_ID* = "1.3.6.1.4.1.311.10.11.20" szOID_CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID* = "1.3.6.1.4.1.311.10.11.28" szOID_CERT_SUBJECT_NAME_MD5_HASH_PROP_ID* = "1.3.6.1.4.1.311.10.11.29" szOID_CERT_MD5_HASH_PROP_ID* = "1.3.6.1.4.1.311.10.11.4" szOID_CERT_SIGNATURE_HASH_PROP_ID* = "1.3.6.1.4.1.311.10.11.15" szOID_DISALLOWED_HASH* = szOID_CERT_SIGNATURE_HASH_PROP_ID szOID_CERT_DISALLOWED_FILETIME_PROP_ID* = "1.3.6.1.4.1.311.10.11.104" CERT_ACCESS_STATE_WRITE_PERSIST_FLAG* = 0x1 CERT_ACCESS_STATE_SYSTEM_STORE_FLAG* = 0x2 CERT_ACCESS_STATE_LM_SYSTEM_STORE_FLAG* = 0x4 CERT_ACCESS_STATE_GP_SYSTEM_STORE_FLAG* = 0x8 CERT_ACCESS_STATE_SHARED_USER_FLAG* = 0x10 szOID_ROOT_PROGRAM_AUTO_UPDATE_CA_REVOCATION* = "1.3.6.1.4.1.311.60.3.1" szOID_ROOT_PROGRAM_AUTO_UPDATE_END_REVOCATION* = "1.3.6.1.4.1.311.60.3.2" szOID_ROOT_PROGRAM_NO_OCSP_FAILOVER_TO_CRL* = "1.3.6.1.4.1.311.60.3.3" CERT_SET_KEY_PROV_HANDLE_PROP_ID* = 0x1 CERT_SET_KEY_CONTEXT_PROP_ID* = 0x1 CERT_NCRYPT_KEY_SPEC* = 0xffffffff'i32 CERT_STORE_PROV_MSG* = cast[LPCSTR](1) CERT_STORE_PROV_MEMORY* = cast[LPCSTR](2) CERT_STORE_PROV_FILE* = cast[LPCSTR](3) CERT_STORE_PROV_REG* = cast[LPCSTR](4) CERT_STORE_PROV_PKCS7* = cast[LPCSTR](5) CERT_STORE_PROV_SERIALIZED* = cast[LPCSTR](6) CERT_STORE_PROV_FILENAME_A* = cast[LPCSTR](7) CERT_STORE_PROV_FILENAME_W* = cast[LPCSTR](8) CERT_STORE_PROV_FILENAME* = CERT_STORE_PROV_FILENAME_W CERT_STORE_PROV_SYSTEM_A* = cast[LPCSTR](9) CERT_STORE_PROV_SYSTEM_W* = cast[LPCSTR](10) CERT_STORE_PROV_SYSTEM* = CERT_STORE_PROV_SYSTEM_W CERT_STORE_PROV_COLLECTION* = cast[LPCSTR](11) CERT_STORE_PROV_SYSTEM_REGISTRY_A* = cast[LPCSTR](12) CERT_STORE_PROV_SYSTEM_REGISTRY_W* = cast[LPCSTR](13) CERT_STORE_PROV_SYSTEM_REGISTRY* = CERT_STORE_PROV_SYSTEM_REGISTRY_W CERT_STORE_PROV_PHYSICAL_W* = cast[LPCSTR](14) CERT_STORE_PROV_PHYSICAL* = CERT_STORE_PROV_PHYSICAL_W CERT_STORE_PROV_SMART_CARD_W* = cast[LPCSTR](15) CERT_STORE_PROV_SMART_CARD* = CERT_STORE_PROV_SMART_CARD_W CERT_STORE_PROV_LDAP_W* = cast[LPCSTR](16) CERT_STORE_PROV_LDAP* = CERT_STORE_PROV_LDAP_W CERT_STORE_PROV_PKCS12* = cast[LPCSTR](17) sz_CERT_STORE_PROV_MEMORY* = "Memory" sz_CERT_STORE_PROV_FILENAME_W* = "File" sz_CERT_STORE_PROV_FILENAME* = sz_CERT_STORE_PROV_FILENAME_W sz_CERT_STORE_PROV_SYSTEM_W* = "System" sz_CERT_STORE_PROV_SYSTEM* = sz_CERT_STORE_PROV_SYSTEM_W sz_CERT_STORE_PROV_PKCS7* = "PKCS7" sz_CERT_STORE_PROV_PKCS12* = "PKCS12" sz_CERT_STORE_PROV_SERIALIZED* = "Serialized" sz_CERT_STORE_PROV_COLLECTION* = "Collection" sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W* = "SystemRegistry" sz_CERT_STORE_PROV_SYSTEM_REGISTRY* = sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W sz_CERT_STORE_PROV_PHYSICAL_W* = "Physical" sz_CERT_STORE_PROV_PHYSICAL* = sz_CERT_STORE_PROV_PHYSICAL_W sz_CERT_STORE_PROV_SMART_CARD_W* = "SmartCard" sz_CERT_STORE_PROV_SMART_CARD* = sz_CERT_STORE_PROV_SMART_CARD_W sz_CERT_STORE_PROV_LDAP_W* = "Ldap" sz_CERT_STORE_PROV_LDAP* = sz_CERT_STORE_PROV_LDAP_W CERT_STORE_SIGNATURE_FLAG* = 0x1 CERT_STORE_TIME_VALIDITY_FLAG* = 0x2 CERT_STORE_REVOCATION_FLAG* = 0x4 CERT_STORE_NO_CRL_FLAG* = 0x10000 CERT_STORE_NO_ISSUER_FLAG* = 0x20000 CERT_STORE_BASE_CRL_FLAG* = 0x100 CERT_STORE_DELTA_CRL_FLAG* = 0x200 CERT_STORE_NO_CRYPT_RELEASE_FLAG* = 0x1 CERT_STORE_SET_LOCALIZED_NAME_FLAG* = 0x2 CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG* = 0x4 CERT_STORE_DELETE_FLAG* = 0x10 CERT_STORE_UNSAFE_PHYSICAL_FLAG* = 0x20 CERT_STORE_SHARE_STORE_FLAG* = 0x40 CERT_STORE_SHARE_CONTEXT_FLAG* = 0x80 CERT_STORE_MANIFOLD_FLAG* = 0x100 CERT_STORE_ENUM_ARCHIVED_FLAG* = 0x200 CERT_STORE_UPDATE_KEYID_FLAG* = 0x400 CERT_STORE_BACKUP_RESTORE_FLAG* = 0x800 CERT_STORE_READONLY_FLAG* = 0x8000 CERT_STORE_OPEN_EXISTING_FLAG* = 0x4000 CERT_STORE_CREATE_NEW_FLAG* = 0x2000 CERT_STORE_MAXIMUM_ALLOWED_FLAG* = 0x1000 CERT_SYSTEM_STORE_MASK* = 0xffff0000'i32 CERT_SYSTEM_STORE_RELOCATE_FLAG* = 0x80000000'i32 CERT_SYSTEM_STORE_DEFER_READ_FLAG* = 0x20000000 CERT_SYSTEM_STORE_UNPROTECTED_FLAG* = 0x40000000 CERT_SYSTEM_STORE_LOCATION_MASK* = 0x00ff0000 CERT_SYSTEM_STORE_LOCATION_SHIFT* = 16 CERT_SYSTEM_STORE_CURRENT_USER_ID* = 1 CERT_SYSTEM_STORE_LOCAL_MACHINE_ID* = 2 CERT_SYSTEM_STORE_CURRENT_SERVICE_ID* = 4 CERT_SYSTEM_STORE_SERVICES_ID* = 5 CERT_SYSTEM_STORE_USERS_ID* = 6 CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID* = 7 CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID* = 8 CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID* = 9 CERT_SYSTEM_STORE_CURRENT_USER* = CERT_SYSTEM_STORE_CURRENT_USER_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT CERT_SYSTEM_STORE_LOCAL_MACHINE* = CERT_SYSTEM_STORE_LOCAL_MACHINE_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT CERT_SYSTEM_STORE_CURRENT_SERVICE* = CERT_SYSTEM_STORE_CURRENT_SERVICE_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT CERT_SYSTEM_STORE_SERVICES* = CERT_SYSTEM_STORE_SERVICES_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT CERT_SYSTEM_STORE_USERS* = CERT_SYSTEM_STORE_USERS_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY* = CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY* = CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE* = CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH* = "Software\\Policies\\Microsoft\\SystemCertificates" CERT_EFSBLOB_VALUE_NAME* = "EFSBlob" CERT_PROT_ROOT_FLAGS_VALUE_NAME* = "Flags" CERT_PROT_ROOT_DISABLE_CURRENT_USER_FLAG* = 0x1 CERT_PROT_ROOT_INHIBIT_ADD_AT_INIT_FLAG* = 0x2 CERT_PROT_ROOT_INHIBIT_PURGE_LM_FLAG* = 0x4 CERT_PROT_ROOT_DISABLE_LM_AUTH_FLAG* = 0x8 CERT_PROT_ROOT_ONLY_LM_GPT_FLAG* = 0x8 CERT_PROT_ROOT_DISABLE_NT_AUTH_REQUIRED_FLAG* = 0x10 CERT_PROT_ROOT_DISABLE_NOT_DEFINED_NAME_CONSTRAINT_FLAG* = 0x20 CERT_PROT_ROOT_DISABLE_PEER_TRUST* = 0x10000 CERT_PROT_ROOT_PEER_USAGES_VALUE_NAME* = "PeerUsages" CERT_PROT_ROOT_PEER_USAGES_VALUE_NAME_A* = "PeerUsages" CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH* = "Software\\Microsoft\\SystemCertificates" CERT_TRUST_PUB_AUTHENTICODE_FLAGS_VALUE_NAME* = "AuthenticodeFlags" CERT_TRUST_PUB_ALLOW_TRUST_MASK* = 0x3 CERT_TRUST_PUB_ALLOW_END_USER_TRUST* = 0x0 CERT_TRUST_PUB_ALLOW_MACHINE_ADMIN_TRUST* = 0x1 CERT_TRUST_PUB_ALLOW_ENTERPRISE_ADMIN_TRUST* = 0x2 CERT_TRUST_PUB_CHECK_PUBLISHER_REV_FLAG* = 0x100 CERT_TRUST_PUB_CHECK_TIMESTAMP_REV_FLAG* = 0x200 CERT_OCM_SUBCOMPONENTS_LOCAL_MACHINE_REGPATH* = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\OC Manager\\Subcomponents" CERT_OCM_SUBCOMPONENTS_ROOT_AUTO_UPDATE_VALUE_NAME* = "RootAutoUpdate" CERT_DISABLE_ROOT_AUTO_UPDATE_VALUE_NAME* = "DisableRootAutoUpdate" CERT_AUTO_UPDATE_ROOT_DIR_URL_VALUE_NAME* = "RootDirUrl" CERT_AUTO_UPDATE_LOCAL_MACHINE_REGPATH* = CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH & "\\AuthRoot\\AutoUpdate" CERT_AUTH_ROOT_AUTO_UPDATE_LOCAL_MACHINE_REGPATH* = CERT_AUTO_UPDATE_LOCAL_MACHINE_REGPATH CERT_AUTH_ROOT_AUTO_UPDATE_ROOT_DIR_URL_VALUE_NAME* = CERT_AUTO_UPDATE_ROOT_DIR_URL_VALUE_NAME CERT_AUTH_ROOT_AUTO_UPDATE_SYNC_DELTA_TIME_VALUE_NAME* = "SyncDeltaTime" CERT_AUTH_ROOT_AUTO_UPDATE_FLAGS_VALUE_NAME* = "Flags" CERT_AUTH_ROOT_AUTO_UPDATE_DISABLE_UNTRUSTED_ROOT_LOGGING_FLAG* = 0x1 CERT_AUTH_ROOT_AUTO_UPDATE_DISABLE_PARTIAL_CHAIN_LOGGING_FLAG* = 0x2 CERT_AUTO_UPDATE_DISABLE_RANDOM_QUERY_STRING_FLAG* = 0x4 CERT_AUTH_ROOT_AUTO_UPDATE_LAST_SYNC_TIME_VALUE_NAME* = "LastSyncTime" CERT_AUTH_ROOT_AUTO_UPDATE_ENCODED_CTL_VALUE_NAME* = "EncodedCtl" CERT_AUTH_ROOT_CTL_FILENAME* = "authroot.stl" CERT_AUTH_ROOT_CTL_FILENAME_A* = "authroot.stl" CERT_AUTH_ROOT_CAB_FILENAME* = "authrootstl.cab" CERT_AUTH_ROOT_SEQ_FILENAME* = "authrootseq.txt" CERT_AUTH_ROOT_CERT_EXT* = ".crt" CERT_DISALLOWED_CERT_AUTO_UPDATE_SYNC_DELTA_TIME_VALUE_NAME* = "DisallowedCertSyncDeltaTime" CERT_DISALLOWED_CERT_AUTO_UPDATE_LAST_SYNC_TIME_VALUE_NAME* = "DisallowedCertLastSyncTime" CERT_DISALLOWED_CERT_AUTO_UPDATE_ENCODED_CTL_VALUE_NAME* = "DisallowedCertEncodedCtl" CERT_DISALLOWED_CERT_CTL_FILENAME* = "disallowedcert.stl" CERT_DISALLOWED_CERT_CTL_FILENAME_A* = "disallowedcert.stl" CERT_DISALLOWED_CERT_CAB_FILENAME* = "disallowedcertstl.cab" CERT_DISALLOWED_CERT_AUTO_UPDATE_LIST_IDENTIFIER* = "DisallowedCert_AutoUpdate_1" CERT_REGISTRY_STORE_REMOTE_FLAG* = 0x10000 CERT_REGISTRY_STORE_SERIALIZED_FLAG* = 0x20000 CERT_REGISTRY_STORE_CLIENT_GPT_FLAG* = 0x80000000'i32 CERT_REGISTRY_STORE_LM_GPT_FLAG* = 0x1000000 CERT_REGISTRY_STORE_ROAMING_FLAG* = 0x40000 CERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG* = 0x80000 CERT_REGISTRY_STORE_EXTERNAL_FLAG* = 0x100000 CERT_IE_DIRTY_FLAGS_REGPATH* = "Software\\Microsoft\\Cryptography\\IEDirtyFlags" CERT_FILE_STORE_COMMIT_ENABLE_FLAG* = 0x10000 CERT_LDAP_STORE_SIGN_FLAG* = 0x10000 CERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG* = 0x20000 CERT_LDAP_STORE_OPENED_FLAG* = 0x40000 CERT_LDAP_STORE_UNBIND_FLAG* = 0x80000 CRYPT_OID_OPEN_STORE_PROV_FUNC* = "CertDllOpenStoreProv" CERT_STORE_PROV_EXTERNAL_FLAG* = 0x1 CERT_STORE_PROV_DELETED_FLAG* = 0x2 CERT_STORE_PROV_NO_PERSIST_FLAG* = 0x4 CERT_STORE_PROV_SYSTEM_STORE_FLAG* = 0x8 CERT_STORE_PROV_LM_SYSTEM_STORE_FLAG* = 0x10 CERT_STORE_PROV_GP_SYSTEM_STORE_FLAG* = 0x20 CERT_STORE_PROV_SHARED_USER_FLAG* = 0x40 CERT_STORE_PROV_CLOSE_FUNC* = 0 CERT_STORE_PROV_READ_CERT_FUNC* = 1 CERT_STORE_PROV_WRITE_CERT_FUNC* = 2 CERT_STORE_PROV_DELETE_CERT_FUNC* = 3 CERT_STORE_PROV_SET_CERT_PROPERTY_FUNC* = 4 CERT_STORE_PROV_READ_CRL_FUNC* = 5 CERT_STORE_PROV_WRITE_CRL_FUNC* = 6 CERT_STORE_PROV_DELETE_CRL_FUNC* = 7 CERT_STORE_PROV_SET_CRL_PROPERTY_FUNC* = 8 CERT_STORE_PROV_READ_CTL_FUNC* = 9 CERT_STORE_PROV_WRITE_CTL_FUNC* = 10 CERT_STORE_PROV_DELETE_CTL_FUNC* = 11 CERT_STORE_PROV_SET_CTL_PROPERTY_FUNC* = 12 CERT_STORE_PROV_CONTROL_FUNC* = 13 CERT_STORE_PROV_FIND_CERT_FUNC* = 14 CERT_STORE_PROV_FREE_FIND_CERT_FUNC* = 15 CERT_STORE_PROV_GET_CERT_PROPERTY_FUNC* = 16 CERT_STORE_PROV_FIND_CRL_FUNC* = 17 CERT_STORE_PROV_FREE_FIND_CRL_FUNC* = 18 CERT_STORE_PROV_GET_CRL_PROPERTY_FUNC* = 19 CERT_STORE_PROV_FIND_CTL_FUNC* = 20 CERT_STORE_PROV_FREE_FIND_CTL_FUNC* = 21 CERT_STORE_PROV_GET_CTL_PROPERTY_FUNC* = 22 CERT_STORE_PROV_WRITE_ADD_FLAG* = 0x1 CERT_STORE_SAVE_AS_STORE* = 1 CERT_STORE_SAVE_AS_PKCS7* = 2 CERT_STORE_SAVE_AS_PKCS12* = 3 CERT_STORE_SAVE_TO_FILE* = 1 CERT_STORE_SAVE_TO_MEMORY* = 2 CERT_STORE_SAVE_TO_FILENAME_A* = 3 CERT_STORE_SAVE_TO_FILENAME_W* = 4 CERT_STORE_SAVE_TO_FILENAME* = CERT_STORE_SAVE_TO_FILENAME_W CERT_CLOSE_STORE_FORCE_FLAG* = 0x1 CERT_CLOSE_STORE_CHECK_FLAG* = 0x2 CERT_COMPARE_MASK* = 0xffff CERT_COMPARE_SHIFT* = 16 CERT_COMPARE_ANY* = 0 CERT_COMPARE_SHA1_HASH* = 1 CERT_COMPARE_NAME* = 2 CERT_COMPARE_ATTR* = 3 CERT_COMPARE_MD5_HASH* = 4 CERT_COMPARE_PROPERTY* = 5 CERT_COMPARE_PUBLIC_KEY* = 6 CERT_COMPARE_HASH* = CERT_COMPARE_SHA1_HASH CERT_COMPARE_NAME_STR_A* = 7 CERT_COMPARE_NAME_STR_W* = 8 CERT_COMPARE_KEY_SPEC* = 9 CERT_COMPARE_ENHKEY_USAGE* = 10 CERT_COMPARE_CTL_USAGE* = CERT_COMPARE_ENHKEY_USAGE CERT_COMPARE_SUBJECT_CERT* = 11 CERT_COMPARE_ISSUER_OF* = 12 CERT_COMPARE_EXISTING* = 13 CERT_COMPARE_SIGNATURE_HASH* = 14 CERT_COMPARE_KEY_IDENTIFIER* = 15 CERT_COMPARE_CERT_ID* = 16 CERT_COMPARE_CROSS_CERT_DIST_POINTS* = 17 CERT_COMPARE_PUBKEY_MD5_HASH* = 18 CERT_COMPARE_SUBJECT_INFO_ACCESS* = 19 CERT_COMPARE_HASH_STR* = 20 CERT_COMPARE_HAS_PRIVATE_KEY* = 21 CERT_FIND_ANY* = CERT_COMPARE_ANY shl CERT_COMPARE_SHIFT CERT_FIND_SHA1_HASH* = CERT_COMPARE_SHA1_HASH shl CERT_COMPARE_SHIFT CERT_FIND_MD5_HASH* = CERT_COMPARE_MD5_HASH shl CERT_COMPARE_SHIFT CERT_FIND_SIGNATURE_HASH* = CERT_COMPARE_SIGNATURE_HASH shl CERT_COMPARE_SHIFT CERT_FIND_KEY_IDENTIFIER* = CERT_COMPARE_KEY_IDENTIFIER shl CERT_COMPARE_SHIFT CERT_FIND_HASH* = CERT_FIND_SHA1_HASH CERT_FIND_PROPERTY* = CERT_COMPARE_PROPERTY shl CERT_COMPARE_SHIFT CERT_FIND_PUBLIC_KEY* = CERT_COMPARE_PUBLIC_KEY shl CERT_COMPARE_SHIFT CERT_FIND_SUBJECT_NAME* = CERT_COMPARE_NAME shl CERT_COMPARE_SHIFT or CERT_INFO_SUBJECT_FLAG CERT_FIND_SUBJECT_ATTR* = CERT_COMPARE_ATTR shl CERT_COMPARE_SHIFT or CERT_INFO_SUBJECT_FLAG CERT_FIND_ISSUER_NAME* = CERT_COMPARE_NAME shl CERT_COMPARE_SHIFT or CERT_INFO_ISSUER_FLAG CERT_FIND_ISSUER_ATTR* = CERT_COMPARE_ATTR shl CERT_COMPARE_SHIFT or CERT_INFO_ISSUER_FLAG CERT_FIND_SUBJECT_STR_A* = CERT_COMPARE_NAME_STR_A shl CERT_COMPARE_SHIFT or CERT_INFO_SUBJECT_FLAG CERT_FIND_SUBJECT_STR_W* = CERT_COMPARE_NAME_STR_W shl CERT_COMPARE_SHIFT or CERT_INFO_SUBJECT_FLAG CERT_FIND_SUBJECT_STR* = CERT_FIND_SUBJECT_STR_W CERT_FIND_ISSUER_STR_A* = CERT_COMPARE_NAME_STR_A shl CERT_COMPARE_SHIFT or CERT_INFO_ISSUER_FLAG CERT_FIND_ISSUER_STR_W* = CERT_COMPARE_NAME_STR_W shl CERT_COMPARE_SHIFT or CERT_INFO_ISSUER_FLAG CERT_FIND_ISSUER_STR* = CERT_FIND_ISSUER_STR_W CERT_FIND_KEY_SPEC* = CERT_COMPARE_KEY_SPEC shl CERT_COMPARE_SHIFT CERT_FIND_ENHKEY_USAGE* = CERT_COMPARE_ENHKEY_USAGE shl CERT_COMPARE_SHIFT CERT_FIND_CTL_USAGE* = CERT_FIND_ENHKEY_USAGE CERT_FIND_SUBJECT_CERT* = CERT_COMPARE_SUBJECT_CERT shl CERT_COMPARE_SHIFT CERT_FIND_ISSUER_OF* = CERT_COMPARE_ISSUER_OF shl CERT_COMPARE_SHIFT CERT_FIND_EXISTING* = CERT_COMPARE_EXISTING shl CERT_COMPARE_SHIFT CERT_FIND_CERT_ID* = CERT_COMPARE_CERT_ID shl CERT_COMPARE_SHIFT CERT_FIND_CROSS_CERT_DIST_POINTS* = CERT_COMPARE_CROSS_CERT_DIST_POINTS shl CERT_COMPARE_SHIFT CERT_FIND_PUBKEY_MD5_HASH* = CERT_COMPARE_PUBKEY_MD5_HASH shl CERT_COMPARE_SHIFT CERT_FIND_SUBJECT_INFO_ACCESS* = CERT_COMPARE_SUBJECT_INFO_ACCESS shl CERT_COMPARE_SHIFT CERT_FIND_HASH_STR* = CERT_COMPARE_HASH_STR shl CERT_COMPARE_SHIFT CERT_FIND_HAS_PRIVATE_KEY* = CERT_COMPARE_HAS_PRIVATE_KEY shl CERT_COMPARE_SHIFT CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG* = 0x1 CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG* = 0x2 CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG* = 0x4 CERT_FIND_NO_ENHKEY_USAGE_FLAG* = 0x8 CERT_FIND_OR_ENHKEY_USAGE_FLAG* = 0x10 CERT_FIND_VALID_ENHKEY_USAGE_FLAG* = 0x20 CERT_FIND_OPTIONAL_CTL_USAGE_FLAG* = CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG CERT_FIND_EXT_ONLY_CTL_USAGE_FLAG* = CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG CERT_FIND_PROP_ONLY_CTL_USAGE_FLAG* = CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG CERT_FIND_NO_CTL_USAGE_FLAG* = CERT_FIND_NO_ENHKEY_USAGE_FLAG CERT_FIND_OR_CTL_USAGE_FLAG* = CERT_FIND_OR_ENHKEY_USAGE_FLAG CERT_FIND_VALID_CTL_USAGE_FLAG* = CERT_FIND_VALID_ENHKEY_USAGE_FLAG CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG* = 0x40000000 CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG* = 0x80000000'i32 CTL_ENTRY_FROM_PROP_CHAIN_FLAG* = 0x1 CRL_FIND_ANY* = 0 CRL_FIND_ISSUED_BY* = 1 CRL_FIND_EXISTING* = 2 CRL_FIND_ISSUED_FOR* = 3 CRL_FIND_ISSUED_BY_AKI_FLAG* = 0x1 CRL_FIND_ISSUED_BY_SIGNATURE_FLAG* = 0x2 CRL_FIND_ISSUED_BY_DELTA_FLAG* = 0x4 CRL_FIND_ISSUED_BY_BASE_FLAG* = 0x8 CRL_FIND_ISSUED_FOR_SET_STRONG_PROPERTIES_FLAG* = 0x10 CERT_STORE_ADD_NEW* = 1 CERT_STORE_ADD_USE_EXISTING* = 2 CERT_STORE_ADD_REPLACE_EXISTING* = 3 CERT_STORE_ADD_ALWAYS* = 4 CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES* = 5 CERT_STORE_ADD_NEWER* = 6 CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES* = 7 CERT_STORE_CERTIFICATE_CONTEXT* = 1 CERT_STORE_CRL_CONTEXT* = 2 CERT_STORE_CTL_CONTEXT* = 3 CERT_STORE_ALL_CONTEXT_FLAG* = not 0 CERT_STORE_CERTIFICATE_CONTEXT_FLAG* = 1 shl CERT_STORE_CERTIFICATE_CONTEXT CERT_STORE_CRL_CONTEXT_FLAG* = 1 shl CERT_STORE_CRL_CONTEXT CERT_STORE_CTL_CONTEXT_FLAG* = 1 shl CERT_STORE_CTL_CONTEXT CTL_ANY_SUBJECT_TYPE* = 1 CTL_CERT_SUBJECT_TYPE* = 2 CTL_FIND_ANY* = 0 CTL_FIND_SHA1_HASH* = 1 CTL_FIND_MD5_HASH* = 2 CTL_FIND_USAGE* = 3 CTL_FIND_SUBJECT* = 4 CTL_FIND_EXISTING* = 5 CTL_FIND_SAME_USAGE_FLAG* = 0x1 CTL_FIND_NO_LIST_ID_CBDATA* = 0xffffffff'i32 CERT_STORE_CTRL_RESYNC* = 1 CERT_STORE_CTRL_NOTIFY_CHANGE* = 2 CERT_STORE_CTRL_COMMIT* = 3 CERT_STORE_CTRL_AUTO_RESYNC* = 4 CERT_STORE_CTRL_CANCEL_NOTIFY* = 5 CERT_STORE_CTRL_INHIBIT_DUPLICATE_HANDLE_FLAG* = 0x1 CERT_STORE_CTRL_COMMIT_FORCE_FLAG* = 0x1 CERT_STORE_CTRL_COMMIT_CLEAR_FLAG* = 0x2 CERT_STORE_LOCALIZED_NAME_PROP_ID* = 0x1000 CERT_CREATE_CONTEXT_NOCOPY_FLAG* = 0x1 CERT_CREATE_CONTEXT_SORTED_FLAG* = 0x2 CERT_CREATE_CONTEXT_NO_HCRYPTMSG_FLAG* = 0x4 CERT_CREATE_CONTEXT_NO_ENTRY_FLAG* = 0x8 CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG* = 0x1 CERT_PHYSICAL_STORE_OPEN_DISABLE_FLAG* = 0x2 CERT_PHYSICAL_STORE_REMOTE_OPEN_DISABLE_FLAG* = 0x4 CERT_PHYSICAL_STORE_INSERT_COMPUTER_NAME_ENABLE_FLAG* = 0x8 CERT_PHYSICAL_STORE_PREDEFINED_ENUM_FLAG* = 0x1 CERT_PHYSICAL_STORE_DEFAULT_NAME* = ".Default" CERT_PHYSICAL_STORE_GROUP_POLICY_NAME* = ".GroupPolicy" CERT_PHYSICAL_STORE_LOCAL_MACHINE_NAME* = ".LocalMachine" CERT_PHYSICAL_STORE_DS_USER_CERTIFICATE_NAME* = ".UserCertificate" CERT_PHYSICAL_STORE_LOCAL_MACHINE_GROUP_POLICY_NAME* = ".LocalMachineGroupPolicy" CERT_PHYSICAL_STORE_ENTERPRISE_NAME* = ".Enterprise" CERT_PHYSICAL_STORE_AUTH_ROOT_NAME* = ".AuthRoot" CERT_PHYSICAL_STORE_SMART_CARD_NAME* = ".SmartCard" CRYPT_OID_OPEN_SYSTEM_STORE_PROV_FUNC* = "CertDllOpenSystemStoreProv" CRYPT_OID_REGISTER_SYSTEM_STORE_FUNC* = "CertDllRegisterSystemStore" CRYPT_OID_UNREGISTER_SYSTEM_STORE_FUNC* = "CertDllUnregisterSystemStore" CRYPT_OID_ENUM_SYSTEM_STORE_FUNC* = "CertDllEnumSystemStore" CRYPT_OID_REGISTER_PHYSICAL_STORE_FUNC* = "CertDllRegisterPhysicalStore" CRYPT_OID_UNREGISTER_PHYSICAL_STORE_FUNC* = "CertDllUnregisterPhysicalStore" CRYPT_OID_ENUM_PHYSICAL_STORE_FUNC* = "CertDllEnumPhysicalStore" CRYPT_OID_SYSTEM_STORE_LOCATION_VALUE_NAME* = "SystemStoreLocation" CMSG_TRUSTED_SIGNER_FLAG* = 0x1 CMSG_SIGNER_ONLY_FLAG* = 0x2 CMSG_USE_SIGNER_INDEX_FLAG* = 0x4 CMSG_CMS_ENCAPSULATED_CTL_FLAG* = 0x8000 CMSG_ENCODE_SORTED_CTL_FLAG* = 0x1 CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG* = 0x2 CERT_VERIFY_INHIBIT_CTL_UPDATE_FLAG* = 0x1 CERT_VERIFY_TRUSTED_SIGNERS_FLAG* = 0x2 CERT_VERIFY_NO_TIME_CHECK_FLAG* = 0x4 CERT_VERIFY_ALLOW_MORE_USAGE_FLAG* = 0x8 CERT_VERIFY_UPDATED_CTL_FLAG* = 0x1 CERT_CONTEXT_REVOCATION_TYPE* = 1 CERT_VERIFY_REV_CHAIN_FLAG* = 0x1 CERT_VERIFY_CACHE_ONLY_BASED_REVOCATION* = 0x2 CERT_VERIFY_REV_ACCUMULATIVE_TIMEOUT_FLAG* = 0x4 CERT_VERIFY_REV_SERVER_OCSP_FLAG* = 0x8 CERT_VERIFY_REV_NO_OCSP_FAILOVER_TO_CRL_FLAG* = 0x10 CERT_UNICODE_IS_RDN_ATTRS_FLAG* = 0x1 CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG* = 0x2 CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB* = 1 CRYPT_VERIFY_CERT_SIGN_SUBJECT_CERT* = 2 CRYPT_VERIFY_CERT_SIGN_SUBJECT_CRL* = 3 CRYPT_VERIFY_CERT_SIGN_SUBJECT_OCSP_BASIC_SIGNED_RESPONSE* = 4 CRYPT_VERIFY_CERT_SIGN_ISSUER_PUBKEY* = 1 CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT* = 2 CRYPT_VERIFY_CERT_SIGN_ISSUER_CHAIN* = 3 CRYPT_VERIFY_CERT_SIGN_ISSUER_NULL* = 4 CRYPT_VERIFY_CERT_SIGN_DISABLE_MD2_MD4_FLAG* = 0x1 CRYPT_VERIFY_CERT_SIGN_SET_STRONG_PROPERTIES_FLAG* = 0x2 CRYPT_VERIFY_CERT_SIGN_RETURN_STRONG_PROPERTIES_FLAG* = 0x4 CRYPT_OID_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC* = "CryptDllExtractEncodedSignatureParameters" CRYPT_OID_SIGN_AND_ENCODE_HASH_FUNC* = "CryptDllSignAndEncodeHash" CRYPT_OID_VERIFY_ENCODED_SIGNATURE_FUNC* = "CryptDllVerifyEncodedSignature" CRYPT_DEFAULT_CONTEXT_AUTO_RELEASE_FLAG* = 0x1 CRYPT_DEFAULT_CONTEXT_PROCESS_FLAG* = 0x2 CRYPT_DEFAULT_CONTEXT_CERT_SIGN_OID* = 1 CRYPT_DEFAULT_CONTEXT_MULTI_CERT_SIGN_OID* = 2 CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FUNC* = "CryptDllExportPublicKeyInfoEx" CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC* = "CryptDllExportPublicKeyInfoEx2" CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FROM_BCRYPT_HANDLE_FUNC* = "CryptDllExportPublicKeyInfoFromBCryptKeyHandle" CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_FUNC* = "CryptDllImportPublicKeyInfoEx" CRYPT_OID_IMPORT_PRIVATE_KEY_INFO_FUNC* = "CryptDllImportPrivateKeyInfoEx" CRYPT_OID_EXPORT_PRIVATE_KEY_INFO_FUNC* = "CryptDllExportPrivateKeyInfoEx" CRYPT_ACQUIRE_CACHE_FLAG* = 0x1 CRYPT_ACQUIRE_USE_PROV_INFO_FLAG* = 0x2 CRYPT_ACQUIRE_COMPARE_KEY_FLAG* = 0x4 CRYPT_ACQUIRE_NO_HEALING* = 0x8 CRYPT_ACQUIRE_SILENT_FLAG* = 0x40 CRYPT_ACQUIRE_WINDOW_HANDLE_FLAG* = 0x80 CRYPT_ACQUIRE_NCRYPT_KEY_FLAGS_MASK* = 0x70000 CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG* = 0x10000 CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG* = 0x20000 CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG* = 0x40000 CRYPT_FIND_USER_KEYSET_FLAG* = 0x1 CRYPT_FIND_MACHINE_KEYSET_FLAG* = 0x2 CRYPT_FIND_SILENT_KEYSET_FLAG* = 0x40 CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_EX2_FUNC* = "CryptDllImportPublicKeyInfoEx2" CERT_SIMPLE_NAME_STR* = 1 CERT_OID_NAME_STR* = 2 CERT_X500_NAME_STR* = 3 CERT_XML_NAME_STR* = 4 CERT_NAME_STR_DISABLE_IE4_UTF8_FLAG* = 0x10000 CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG* = 0x20000 CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG* = 0x40000 CERT_NAME_STR_FORCE_UTF8_DIR_STR_FLAG* = 0x80000 CERT_NAME_STR_FORWARD_FLAG* = 0x1000000 CERT_NAME_STR_REVERSE_FLAG* = 0x2000000 CERT_NAME_STR_COMMA_FLAG* = 0x4000000 CERT_NAME_STR_CRLF_FLAG* = 0x8000000 CERT_NAME_STR_NO_QUOTING_FLAG* = 0x10000000 CERT_NAME_STR_NO_PLUS_FLAG* = 0x20000000 CERT_NAME_STR_SEMICOLON_FLAG* = 0x40000000 CERT_NAME_STR_DISABLE_UTF8_DIR_STR_FLAG* = 0x100000 CERT_NAME_STR_ENABLE_PUNYCODE_FLAG* = 0x200000 CERT_NAME_EMAIL_TYPE* = 1 CERT_NAME_RDN_TYPE* = 2 CERT_NAME_ATTR_TYPE* = 3 CERT_NAME_SIMPLE_DISPLAY_TYPE* = 4 CERT_NAME_FRIENDLY_DISPLAY_TYPE* = 5 CERT_NAME_DNS_TYPE* = 6 CERT_NAME_URL_TYPE* = 7 CERT_NAME_UPN_TYPE* = 8 CERT_NAME_ISSUER_FLAG* = 0x1 CERT_NAME_DISABLE_IE4_UTF8_FLAG* = 0x10000 CERT_NAME_SEARCH_ALL_NAMES_FLAG* = 0x2 CRYPT_MESSAGE_BARE_CONTENT_OUT_FLAG* = 0x1 CRYPT_MESSAGE_ENCAPSULATED_CONTENT_OUT_FLAG* = 0x2 CRYPT_MESSAGE_KEYID_SIGNER_FLAG* = 0x4 CRYPT_MESSAGE_SILENT_KEYSET_FLAG* = 0x40 CRYPT_MESSAGE_KEYID_RECIPIENT_FLAG* = 0x4 CERT_QUERY_OBJECT_FILE* = 0x1 CERT_QUERY_OBJECT_BLOB* = 0x2 CERT_QUERY_CONTENT_CERT* = 1 CERT_QUERY_CONTENT_CTL* = 2 CERT_QUERY_CONTENT_CRL* = 3 CERT_QUERY_CONTENT_SERIALIZED_STORE* = 4 CERT_QUERY_CONTENT_SERIALIZED_CERT* = 5 CERT_QUERY_CONTENT_SERIALIZED_CTL* = 6 CERT_QUERY_CONTENT_SERIALIZED_CRL* = 7 CERT_QUERY_CONTENT_PKCS7_SIGNED* = 8 CERT_QUERY_CONTENT_PKCS7_UNSIGNED* = 9 CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED* = 10 CERT_QUERY_CONTENT_PKCS10* = 11 CERT_QUERY_CONTENT_PFX* = 12 CERT_QUERY_CONTENT_CERT_PAIR* = 13 CERT_QUERY_CONTENT_PFX_AND_LOAD* = 14 CERT_QUERY_CONTENT_FLAG_CERT* = 1 shl CERT_QUERY_CONTENT_CERT CERT_QUERY_CONTENT_FLAG_CTL* = 1 shl CERT_QUERY_CONTENT_CTL CERT_QUERY_CONTENT_FLAG_CRL* = 1 shl CERT_QUERY_CONTENT_CRL CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE* = 1 shl CERT_QUERY_CONTENT_SERIALIZED_STORE CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT* = 1 shl CERT_QUERY_CONTENT_SERIALIZED_CERT CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL* = 1 shl CERT_QUERY_CONTENT_SERIALIZED_CTL CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL* = 1 shl CERT_QUERY_CONTENT_SERIALIZED_CRL CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED* = 1 shl CERT_QUERY_CONTENT_PKCS7_SIGNED CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED* = 1 shl CERT_QUERY_CONTENT_PKCS7_UNSIGNED CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED* = 1 shl CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED CERT_QUERY_CONTENT_FLAG_PKCS10* = 1 shl CERT_QUERY_CONTENT_PKCS10 CERT_QUERY_CONTENT_FLAG_PFX* = 1 shl CERT_QUERY_CONTENT_PFX CERT_QUERY_CONTENT_FLAG_CERT_PAIR* = 1 shl CERT_QUERY_CONTENT_CERT_PAIR CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD* = 1 shl CERT_QUERY_CONTENT_PFX_AND_LOAD CERT_QUERY_CONTENT_FLAG_ALL* = CERT_QUERY_CONTENT_FLAG_CERT or CERT_QUERY_CONTENT_FLAG_CTL or CERT_QUERY_CONTENT_FLAG_CRL or CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE or CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT or CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL or CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL or CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED or CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED or CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED or CERT_QUERY_CONTENT_FLAG_PKCS10 or CERT_QUERY_CONTENT_FLAG_PFX or CERT_QUERY_CONTENT_FLAG_CERT_PAIR CERT_QUERY_CONTENT_FLAG_ALL_ISSUER_CERT* = CERT_QUERY_CONTENT_FLAG_CERT or CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE or CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT or CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED or CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED CERT_QUERY_FORMAT_BINARY* = 1 CERT_QUERY_FORMAT_BASE64_ENCODED* = 2 CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED* = 3 CERT_QUERY_FORMAT_FLAG_BINARY* = 1 shl CERT_QUERY_FORMAT_BINARY CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED* = 1 shl CERT_QUERY_FORMAT_BASE64_ENCODED CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED* = 1 shl CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED CERT_QUERY_FORMAT_FLAG_ALL* = CERT_QUERY_FORMAT_FLAG_BINARY or CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED or CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED CREDENTIAL_OID_PASSWORD_CREDENTIALS_A* = cast[LPCSTR](1) CREDENTIAL_OID_PASSWORD_CREDENTIALS_W* = cast[LPCSTR](2) SCHEME_OID_RETRIEVE_ENCODED_OBJECT_FUNC* = "SchemeDllRetrieveEncodedObject" SCHEME_OID_RETRIEVE_ENCODED_OBJECTW_FUNC* = "SchemeDllRetrieveEncodedObjectW" CONTEXT_OID_CREATE_OBJECT_CONTEXT_FUNC* = "ContextDllCreateObjectContext" CONTEXT_OID_CERTIFICATE* = cast[LPCSTR](1) CONTEXT_OID_CRL* = cast[LPCSTR](2) CONTEXT_OID_CTL* = cast[LPCSTR](3) CONTEXT_OID_PKCS7* = cast[LPCSTR](4) CONTEXT_OID_CAPI2_ANY* = cast[LPCSTR](5) CONTEXT_OID_OCSP_RESP* = cast[LPCSTR](6) CRYPT_RETRIEVE_MULTIPLE_OBJECTS* = 0x1 CRYPT_CACHE_ONLY_RETRIEVAL* = 0x2 CRYPT_WIRE_ONLY_RETRIEVAL* = 0x4 CRYPT_DONT_CACHE_RESULT* = 0x8 CRYPT_ASYNC_RETRIEVAL* = 0x10 CRYPT_VERIFY_CONTEXT_SIGNATURE* = 0x20 CRYPT_VERIFY_DATA_HASH* = 0x40 CRYPT_KEEP_TIME_VALID* = 0x80 CRYPT_DONT_VERIFY_SIGNATURE* = 0x100 CRYPT_DONT_CHECK_TIME_VALIDITY* = 0x200 CRYPT_CHECK_FRESHNESS_TIME_VALIDITY* = 0x400 CRYPT_ACCUMULATIVE_TIMEOUT* = 0x800 CRYPT_STICKY_CACHE_RETRIEVAL* = 0x1000 CRYPT_LDAP_SCOPE_BASE_ONLY_RETRIEVAL* = 0x2000 CRYPT_OFFLINE_CHECK_RETRIEVAL* = 0x4000 CRYPT_LDAP_INSERT_ENTRY_ATTRIBUTE* = 0x8000 CRYPT_LDAP_SIGN_RETRIEVAL* = 0x10000 CRYPT_NO_AUTH_RETRIEVAL* = 0x20000 CRYPT_LDAP_AREC_EXCLUSIVE_RETRIEVAL* = 0x40000 CRYPT_AIA_RETRIEVAL* = 0x80000 CRYPT_HTTP_POST_RETRIEVAL* = 0x100000 CRYPT_PROXY_CACHE_RETRIEVAL* = 0x200000 CRYPT_NOT_MODIFIED_RETRIEVAL* = 0x400000 CRYPT_ENABLE_SSL_REVOCATION_RETRIEVAL* = 0x800000 CRYPT_OCSP_ONLY_RETRIEVAL* = 0x1000000 CRYPT_NO_OCSP_FAILOVER_TO_CRL_RETRIEVAL* = 0x2000000 CRYPT_RANDOM_QUERY_STRING_RETRIEVAL* = 0x4000000 CRYPTNET_URL_CACHE_PRE_FETCH_NONE* = 0 CRYPTNET_URL_CACHE_PRE_FETCH_BLOB* = 1 CRYPTNET_URL_CACHE_PRE_FETCH_CRL* = 2 CRYPTNET_URL_CACHE_PRE_FETCH_OCSP* = 3 CRYPTNET_URL_CACHE_PRE_FETCH_AUTOROOT_CAB* = 5 CRYPTNET_URL_CACHE_PRE_FETCH_DISALLOWED_CERT_CAB* = 6 CRYPTNET_URL_CACHE_DEFAULT_FLUSH* = 0 CRYPTNET_URL_CACHE_DISABLE_FLUSH* = 0xffffffff'i32 CRYPTNET_URL_CACHE_RESPONSE_NONE* = 0 CRYPTNET_URL_CACHE_RESPONSE_HTTP* = 1 CRYPTNET_URL_CACHE_RESPONSE_VALIDATED* = 0x8000 CRYPT_PARAM_ASYNC_RETRIEVAL_COMPLETION* = cast[LPCSTR](1) CRYPT_PARAM_CANCEL_ASYNC_RETRIEVAL* = cast[LPCSTR](2) CRYPT_GET_URL_FROM_PROPERTY* = 0x1 CRYPT_GET_URL_FROM_EXTENSION* = 0x2 CRYPT_GET_URL_FROM_UNAUTH_ATTRIBUTE* = 0x4 CRYPT_GET_URL_FROM_AUTH_ATTRIBUTE* = 0x8 URL_OID_GET_OBJECT_URL_FUNC* = "UrlDllGetObjectUrl" URL_OID_CERTIFICATE_ISSUER* = cast[LPCSTR](1) URL_OID_CERTIFICATE_CRL_DIST_POINT* = cast[LPCSTR](2) URL_OID_CTL_ISSUER* = cast[LPCSTR](3) URL_OID_CTL_NEXT_UPDATE* = cast[LPCSTR](4) URL_OID_CRL_ISSUER* = cast[LPCSTR](5) URL_OID_CERTIFICATE_FRESHEST_CRL* = cast[LPCSTR](6) URL_OID_CRL_FRESHEST_CRL* = cast[LPCSTR](7) URL_OID_CROSS_CERT_DIST_POINT* = cast[LPCSTR](8) URL_OID_CERTIFICATE_OCSP* = cast[LPCSTR](9) URL_OID_CERTIFICATE_OCSP_AND_CRL_DIST_POINT* = cast[LPCSTR](10) URL_OID_CERTIFICATE_CRL_DIST_POINT_AND_OCSP* = cast[LPCSTR](11) URL_OID_CROSS_CERT_SUBJECT_INFO_ACCESS* = cast[LPCSTR](12) URL_OID_CERTIFICATE_ONLY_OCSP* = cast[LPCSTR](13) TIME_VALID_OID_GET_OBJECT_FUNC* = "TimeValidDllGetObject" CERT_CHAIN_CONFIG_REGPATH* = "Software\\Microsoft\\Cryptography\\OID\\EncodingType 0\\CertDllCreateCertificateChainEngine\\Config" TIME_VALID_OID_GET_CTL* = cast[LPCSTR](1) TIME_VALID_OID_GET_CRL* = cast[LPCSTR](2) TIME_VALID_OID_GET_CRL_FROM_CERT* = cast[LPCSTR](3) TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CERT* = cast[LPCSTR](4) TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CRL* = cast[LPCSTR](5) TIME_VALID_OID_FLUSH_OBJECT_FUNC* = "TimeValidDllFlushObject" TIME_VALID_OID_FLUSH_CTL* = cast[LPCSTR](1) TIME_VALID_OID_FLUSH_CRL* = cast[LPCSTR](2) TIME_VALID_OID_FLUSH_CRL_FROM_CERT* = cast[LPCSTR](3) TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CERT* = cast[LPCSTR](4) TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CRL* = cast[LPCSTR](5) CERT_CREATE_SELFSIGN_NO_SIGN* = 1 CERT_CREATE_SELFSIGN_NO_KEY_INFO* = 2 CRYPT_KEYID_DELETE_FLAG* = 0x10 CRYPT_KEYID_MACHINE_FLAG* = 0x20 CRYPT_KEYID_SET_NEW_FLAG* = 0x2000 CRYPT_KEYID_ALLOC_FLAG* = 0x8000 CERT_CHAIN_MAX_URL_RETRIEVAL_BYTE_COUNT_VALUE_NAME* = "MaxUrlRetrievalByteCount" CERT_CHAIN_MAX_URL_RETRIEVAL_BYTE_COUNT_DEFAULT* = 100*1024*1024 CERT_CHAIN_CACHE_RESYNC_FILETIME_VALUE_NAME* = "ChainCacheResyncFiletime" CERT_CHAIN_DISABLE_MANDATORY_BASIC_CONSTRAINTS_VALUE_NAME* = "DisableMandatoryBasicConstraints" CERT_CHAIN_DISABLE_CA_NAME_CONSTRAINTS_VALUE_NAME* = "DisableCANameConstraints" CERT_CHAIN_DISABLE_UNSUPPORTED_CRITICAL_EXTENSIONS_VALUE_NAME* = "DisableUnsupportedCriticalExtensions" CERT_CHAIN_MAX_AIA_URL_COUNT_IN_CERT_VALUE_NAME* = "MaxAIAUrlCountInCert" CERT_CHAIN_MAX_AIA_URL_COUNT_IN_CERT_DEFAULT* = 5 CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_COUNT_PER_CHAIN_VALUE_NAME* = "MaxAIAUrlRetrievalCountPerChain" CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_COUNT_PER_CHAIN_DEFAULT* = 3 CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_BYTE_COUNT_VALUE_NAME* = "MaxAIAUrlRetrievalByteCount" CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_BYTE_COUNT_DEFAULT* = 100000 CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_CERT_COUNT_VALUE_NAME* = "MaxAIAUrlRetrievalCertCount" CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_CERT_COUNT_DEFAULT* = 10 CERT_CHAIN_OCSP_VALIDITY_SECONDS_VALUE_NAME* = "OcspValiditySeconds" CERT_CHAIN_OCSP_VALIDITY_SECONDS_DEFAULT* = 12*60*60 CERT_CHAIN_ENABLE_WEAK_SIGNATURE_FLAGS_VALUE_NAME* = "EnableWeakSignatureFlags" CERT_CHAIN_ENABLE_MD2_MD4_FLAG* = 0x1 CERT_CHAIN_ENABLE_WEAK_RSA_ROOT_FLAG* = 0x2 CERT_CHAIN_ENABLE_WEAK_LOGGING_FLAG* = 0x4 CERT_CHAIN_ENABLE_ONLY_WEAK_LOGGING_FLAG* = 0x8 CERT_CHAIN_MIN_RSA_PUB_KEY_BIT_LENGTH_VALUE_NAME* = "MinRsaPubKeyBitLength" CERT_CHAIN_MIN_RSA_PUB_KEY_BIT_LENGTH_DEFAULT* = 1023 CERT_CHAIN_MIN_RSA_PUB_KEY_BIT_LENGTH_DISABLE* = 0xffffffff'i32 CERT_CHAIN_WEAK_RSA_PUB_KEY_TIME_VALUE_NAME* = "WeakRsaPubKeyTime" CERT_CHAIN_WEAK_RSA_PUB_KEY_TIME_DEFAULT* = 0x01ca8a755c6e0000 CERT_CHAIN_WEAK_SIGNATURE_LOG_DIR_VALUE_NAME* = "WeakSignatureLogDir" CERT_SRV_OCSP_RESP_MIN_VALIDITY_SECONDS_VALUE_NAME* = "SrvOcspRespMinValiditySeconds" CERT_SRV_OCSP_RESP_MIN_VALIDITY_SECONDS_DEFAULT* = 10*60 CERT_SRV_OCSP_RESP_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME* = "SrvOcspRespUrlRetrievalTimeoutMilliseconds" CERT_SRV_OCSP_RESP_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_DEFAULT* = 15*1000 CERT_SRV_OCSP_RESP_MAX_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME* = "SrvOcspRespMaxBeforeNextUpdateSeconds" CERT_SRV_OCSP_RESP_MAX_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT* = 4*60*60 CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME* = "SrvOcspRespMinBeforeNextUpdateSeconds" CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT* = 2*60 CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_VALUE_NAME* = "SrvOcspRespMinAfterNextUpdateSeconds" CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_DEFAULT* = 1*60 CRYPTNET_MAX_CACHED_OCSP_PER_CRL_COUNT_VALUE_NAME* = "CryptnetMaxCachedOcspPerCrlCount" CRYPTNET_MAX_CACHED_OCSP_PER_CRL_COUNT_DEFAULT* = 500 CRYPTNET_OCSP_AFTER_CRL_DISABLE* = 0xffffffff'i32 CRYPTNET_URL_CACHE_DEFAULT_FLUSH_EXEMPT_SECONDS_VALUE_NAME* = "CryptnetDefaultFlushExemptSeconds" CRYPTNET_URL_CACHE_DEFAULT_FLUSH_EXEMPT_SECONDS_DEFAULT* = 28*24*60*60 CRYPTNET_PRE_FETCH_MIN_MAX_AGE_SECONDS_VALUE_NAME* = "CryptnetPreFetchMinMaxAgeSeconds" CRYPTNET_PRE_FETCH_MIN_MAX_AGE_SECONDS_DEFAULT* = 1*60*60 CRYPTNET_PRE_FETCH_MAX_MAX_AGE_SECONDS_VALUE_NAME* = "CryptnetPreFetchMaxMaxAgeSeconds" CRYPTNET_PRE_FETCH_MAX_MAX_AGE_SECONDS_DEFAULT* = 14*24*60*60 CRYPTNET_PRE_FETCH_MIN_OCSP_VALIDITY_PERIOD_SECONDS_VALUE_NAME* = "CryptnetPreFetchMinOcspValidityPeriodSeconds" CRYPTNET_PRE_FETCH_MIN_OCSP_VALIDITY_PERIOD_SECONDS_DEFAULT* = 14*24*60*60 CRYPTNET_PRE_FETCH_AFTER_PUBLISH_PRE_FETCH_DIVISOR_VALUE_NAME* = "CryptnetPreFetchAfterPublishPreFetchDivisor" CRYPTNET_PRE_FETCH_AFTER_PUBLISH_PRE_FETCH_DIVISOR_DEFAULT* = 10 CRYPTNET_PRE_FETCH_BEFORE_NEXT_UPDATE_PRE_FETCH_DIVISOR_VALUE_NAME* = "CryptnetPreFetchBeforeNextUpdatePreFetchDivisor" CRYPTNET_PRE_FETCH_BEFORE_NEXT_UPDATE_PRE_FETCH_DIVISOR_DEFAULT* = 20 CRYPTNET_PRE_FETCH_MIN_BEFORE_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME* = "CryptnetPreFetchMinBeforeNextUpdatePreFetchSeconds" CRYPTNET_PRE_FETCH_MIN_BEFORE_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_DEFAULT* = 1*60*60 CRYPTNET_PRE_FETCH_VALIDITY_PERIOD_AFTER_NEXT_UPDATE_PRE_FETCH_DIVISOR_VALUE_NAME* = "CryptnetPreFetchValidityPeriodAfterNextUpdatePreFetchDivisor" CRYPTNET_PRE_FETCH_VALIDITY_PERIOD_AFTER_NEXT_UPDATE_PRE_FETCH_DIVISOR_DEFAULT* = 10 CRYPTNET_PRE_FETCH_MAX_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME* = "CryptnetPreFetchMaxAfterNextUpdatePreFetchPeriodSeconds" CRYPTNET_PRE_FETCH_MAX_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_DEFAULT* = 4*60*60 CRYPTNET_PRE_FETCH_MIN_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME* = "CryptnetPreFetchMinAfterNextUpdatePreFetchPeriodSeconds" CRYPTNET_PRE_FETCH_MIN_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_DEFAULT* = 30*60 CRYPTNET_PRE_FETCH_AFTER_CURRENT_TIME_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME* = "CryptnetPreFetchAfterCurrentTimePreFetchPeriodSeconds" CRYPTNET_PRE_FETCH_AFTER_CURRENT_TIME_PRE_FETCH_PERIOD_SECONDS_DEFAULT* = 30*60 CRYPTNET_PRE_FETCH_TRIGGER_PERIOD_SECONDS_VALUE_NAME* = "CryptnetPreFetchTriggerPeriodSeconds" CRYPTNET_PRE_FETCH_TRIGGER_PERIOD_SECONDS_DEFAULT* = 10*60 CRYPTNET_PRE_FETCH_TRIGGER_DISABLE* = 0xffffffff'i32 CRYPTNET_PRE_FETCH_SCAN_AFTER_TRIGGER_DELAY_SECONDS_VALUE_NAME* = "CryptnetPreFetchScanAfterTriggerDelaySeconds" CRYPTNET_PRE_FETCH_SCAN_AFTER_TRIGGER_DELAY_SECONDS_DEFAULT* = 30 CRYPTNET_PRE_FETCH_RETRIEVAL_TIMEOUT_SECONDS_VALUE_NAME* = "CryptnetPreFetchRetrievalTimeoutSeconds" CRYPTNET_PRE_FETCH_RETRIEVAL_TIMEOUT_SECONDS_DEFAULT* = 5*60 CERT_CHAIN_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME* = "ChainUrlRetrievalTimeoutMilliseconds" CERT_CHAIN_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_DEFAULT* = 15*1000 CERT_CHAIN_REV_ACCUMULATIVE_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME* = "ChainRevAccumulativeUrlRetrievalTimeoutMilliseconds" CERT_CHAIN_REV_ACCUMULATIVE_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_DEFAULT* = 20*1000 CERT_RETR_BEHAVIOR_INET_AUTH_VALUE_NAME* = "EnableInetUnknownAuth" CERT_RETR_BEHAVIOR_INET_STATUS_VALUE_NAME* = "EnableInetLocal" CERT_RETR_BEHAVIOR_FILE_VALUE_NAME* = "AllowFileUrlScheme" CERT_RETR_BEHAVIOR_LDAP_VALUE_NAME* = "DisableLDAPSignAndEncrypt" CRYPTNET_CACHED_OCSP_SWITCH_TO_CRL_COUNT_VALUE_NAME* = "CryptnetCachedOcspSwitchToCrlCount" CRYPTNET_CACHED_OCSP_SWITCH_TO_CRL_COUNT_DEFAULT* = 50 CRYPTNET_CRL_BEFORE_OCSP_ENABLE* = 0xffffffff'i32 CERT_CHAIN_DISABLE_AIA_URL_RETRIEVAL_VALUE_NAME* = "DisableAIAUrlRetrieval" CERT_CHAIN_OPTIONS_VALUE_NAME* = "Options" CERT_CHAIN_OPTION_DISABLE_AIA_URL_RETRIEVAL* = 0x2 CERT_CHAIN_OPTION_ENABLE_SIA_URL_RETRIEVAL* = 0x4 CERT_CHAIN_CROSS_CERT_DOWNLOAD_INTERVAL_HOURS_VALUE_NAME* = "CrossCertDownloadIntervalHours" CERT_CHAIN_CROSS_CERT_DOWNLOAD_INTERVAL_HOURS_DEFAULT* = 24*7 CERT_CHAIN_CRL_VALIDITY_EXT_PERIOD_HOURS_VALUE_NAME* = "CRLValidityExtensionPeriod" CERT_CHAIN_CRL_VALIDITY_EXT_PERIOD_HOURS_DEFAULT* = 12 HCCE_LOCAL_MACHINE* = HCERTCHAINENGINE 0x1 CERT_CHAIN_CACHE_END_CERT* = 0x1 CERT_CHAIN_THREAD_STORE_SYNC* = 0x2 CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL* = 0x4 CERT_CHAIN_USE_LOCAL_MACHINE_STORE* = 0x8 CERT_CHAIN_ENABLE_CACHE_AUTO_UPDATE* = 0x10 CERT_CHAIN_ENABLE_SHARE_STORE* = 0x20 CERT_CHAIN_EXCLUSIVE_ENABLE_CA_FLAG* = 0x1 CERT_TRUST_NO_ERROR* = 0x0 CERT_TRUST_IS_NOT_TIME_VALID* = 0x1 CERT_TRUST_IS_NOT_TIME_NESTED* = 0x2 CERT_TRUST_IS_REVOKED* = 0x4 CERT_TRUST_IS_NOT_SIGNATURE_VALID* = 0x8 CERT_TRUST_IS_NOT_VALID_FOR_USAGE* = 0x10 CERT_TRUST_IS_UNTRUSTED_ROOT* = 0x20 CERT_TRUST_REVOCATION_STATUS_UNKNOWN* = 0x40 CERT_TRUST_IS_CYCLIC* = 0x80 CERT_TRUST_INVALID_EXTENSION* = 0x100 CERT_TRUST_INVALID_POLICY_CONSTRAINTS* = 0x200 CERT_TRUST_INVALID_BASIC_CONSTRAINTS* = 0x400 CERT_TRUST_INVALID_NAME_CONSTRAINTS* = 0x800 CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT* = 0x1000 CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT* = 0x2000 CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT* = 0x4000 CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT* = 0x8000 CERT_TRUST_IS_PARTIAL_CHAIN* = 0x10000 CERT_TRUST_CTL_IS_NOT_TIME_VALID* = 0x20000 CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID* = 0x40000 CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE* = 0x80000 CERT_TRUST_IS_OFFLINE_REVOCATION* = 0x1000000 CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY* = 0x2000000 CERT_TRUST_IS_EXPLICIT_DISTRUST* = 0x4000000 CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT* = 0x8000000 CERT_TRUST_HAS_WEAK_SIGNATURE* = 0x100000 CERT_TRUST_HAS_EXACT_MATCH_ISSUER* = 0x1 CERT_TRUST_HAS_KEY_MATCH_ISSUER* = 0x2 CERT_TRUST_HAS_NAME_MATCH_ISSUER* = 0x4 CERT_TRUST_IS_SELF_SIGNED* = 0x8 CERT_TRUST_AUTO_UPDATE_CA_REVOCATION* = 0x10 CERT_TRUST_AUTO_UPDATE_END_REVOCATION* = 0x20 CERT_TRUST_NO_OCSP_FAILOVER_TO_CRL* = 0x40 CERT_TRUST_HAS_PREFERRED_ISSUER* = 0x100 CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY* = 0x200 CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS* = 0x400 CERT_TRUST_IS_PEER_TRUSTED* = 0x800 CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED* = 0x1000 CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE* = 0x2000 CERT_TRUST_IS_CA_TRUSTED* = 0x4000 CERT_TRUST_IS_COMPLEX_CHAIN* = 0x10000 USAGE_MATCH_TYPE_AND* = 0x0 USAGE_MATCH_TYPE_OR* = 0x1 CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG* = 0x1 CERT_CHAIN_DISABLE_PASS1_QUALITY_FILTERING* = 0x40 CERT_CHAIN_RETURN_LOWER_QUALITY_CONTEXTS* = 0x80 CERT_CHAIN_DISABLE_AUTH_ROOT_AUTO_UPDATE* = 0x100 CERT_CHAIN_TIMESTAMP_TIME* = 0x200 CERT_CHAIN_ENABLE_PEER_TRUST* = 0x400 CERT_CHAIN_DISABLE_MY_PEER_TRUST* = 0x800 CERT_CHAIN_DISABLE_MD2_MD4* = 0x1000 CERT_CHAIN_REVOCATION_CHECK_END_CERT* = 0x10000000 CERT_CHAIN_REVOCATION_CHECK_CHAIN* = 0x20000000 CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT* = 0x40000000 CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY* = 0x80000000'i32 CERT_CHAIN_REVOCATION_ACCUMULATIVE_TIMEOUT* = 0x8000000 CERT_CHAIN_REVOCATION_CHECK_OCSP_CERT* = 0x4000000 REVOCATION_OID_CRL_REVOCATION* = cast[LPCSTR](1) CERT_CHAIN_FIND_BY_ISSUER* = 1 CERT_CHAIN_FIND_BY_ISSUER_COMPARE_KEY_FLAG* = 0x1 CERT_CHAIN_FIND_BY_ISSUER_COMPLEX_CHAIN_FLAG* = 0x2 CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG* = 0x4 CERT_CHAIN_FIND_BY_ISSUER_LOCAL_MACHINE_FLAG* = 0x8 CERT_CHAIN_FIND_BY_ISSUER_NO_KEY_FLAG* = 0x4000 CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG* = 0x8000 CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG* = 0x1 CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG* = 0x2 CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG* = 0x4 CERT_CHAIN_POLICY_IGNORE_INVALID_BASIC_CONSTRAINTS_FLAG* = 0x8 CERT_CHAIN_POLICY_IGNORE_ALL_NOT_TIME_VALID_FLAGS* = CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG or CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG or CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAG* = 0x10 CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAG* = 0x20 CERT_CHAIN_POLICY_IGNORE_INVALID_NAME_FLAG* = 0x40 CERT_CHAIN_POLICY_IGNORE_INVALID_POLICY_FLAG* = 0x80 CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG* = 0x100 CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG* = 0x200 CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG* = 0x400 CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG* = 0x800 CERT_CHAIN_POLICY_IGNORE_ALL_REV_UNKNOWN_FLAGS* = CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG or CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG or CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG or CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG CERT_CHAIN_POLICY_IGNORE_PEER_TRUST_FLAG* = 0x1000 CERT_CHAIN_POLICY_IGNORE_NOT_SUPPORTED_CRITICAL_EXT_FLAG* = 0x2000 CERT_CHAIN_POLICY_TRUST_TESTROOT_FLAG* = 0x4000 CERT_CHAIN_POLICY_ALLOW_TESTROOT_FLAG* = 0x8000 CRYPT_OID_VERIFY_CERTIFICATE_CHAIN_POLICY_FUNC* = "CertDllVerifyCertificateChainPolicy" CERT_CHAIN_POLICY_BASE* = cast[LPCSTR](1) CERT_CHAIN_POLICY_AUTHENTICODE* = cast[LPCSTR](2) CERT_CHAIN_POLICY_AUTHENTICODE_TS* = cast[LPCSTR](3) CERT_CHAIN_POLICY_SSL* = cast[LPCSTR](4) CERT_CHAIN_POLICY_BASIC_CONSTRAINTS* = cast[LPCSTR](5) CERT_CHAIN_POLICY_NT_AUTH* = cast[LPCSTR](6) CERT_CHAIN_POLICY_MICROSOFT_ROOT* = cast[LPCSTR](7) CERT_CHAIN_POLICY_EV* = cast[LPCSTR](8) AUTHTYPE_CLIENT* = 1 AUTHTYPE_SERVER* = 2 BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_CA_FLAG* = 0x80000000'i32 BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_END_ENTITY_FLAG* = 0x40000000 MICROSOFT_ROOT_CERT_CHAIN_POLICY_ENABLE_TEST_ROOT_FLAG* = 0x10000 MICROSOFT_ROOT_CERT_CHAIN_POLICY_CHECK_APPLICATION_ROOT_FLAG* = 0x20000 CRYPT_STRING_BASE64HEADER* = 0x0 CRYPT_STRING_BASE64* = 0x1 CRYPT_STRING_BINARY* = 0x2 CRYPT_STRING_BASE64REQUESTHEADER* = 0x00000003 CRYPT_STRING_HEX* = 0x4 CRYPT_STRING_HEXASCII* = 0x00000005 CRYPT_STRING_BASE64_ANY* = 0x00000006 CRYPT_STRING_ANY* = 0x00000007 CRYPT_STRING_HEX_ANY* = 0x8 CRYPT_STRING_BASE64X509CRLHEADER* = 0x00000009 CRYPT_STRING_HEXADDR* = 0x0000000a CRYPT_STRING_HEXASCIIADDR* = 0x0000000b CRYPT_STRING_HEXRAW* = 0x0000000c CRYPT_STRING_HASHDATA* = 0x10000000 CRYPT_STRING_STRICT* = 0x20000000 CRYPT_STRING_NOCRLF* = 0x40000000 CRYPT_STRING_NOCR* = 0x80000000'i32 szOID_PKCS_12_PbeIds* = "1.2.840.113549.1.12.1" szOID_PKCS_12_pbeWithSHA1And128BitRC4* = "1.2.840.113549.1.12.1.1" szOID_PKCS_12_pbeWithSHA1And40BitRC4* = "1.2.840.113549.1.12.1.2" szOID_PKCS_12_pbeWithSHA1And3KeyTripleDES* = "1.2.840.113549.1.12.1.3" szOID_PKCS_12_pbeWithSHA1And2KeyTripleDES* = "1.2.840.113549.1.12.1.4" szOID_PKCS_12_pbeWithSHA1And128BitRC2* = "1.2.840.113549.1.12.1.5" szOID_PKCS_12_pbeWithSHA1And40BitRC2* = "1.2.840.113549.1.12.1.6" PKCS12_IMPORT_SILENT* = 0x40 CRYPT_USER_KEYSET* = 0x1000 PKCS12_PREFER_CNG_KSP* = 0x100 PKCS12_ALWAYS_CNG_KSP* = 0x200 PKCS12_ALLOW_OVERWRITE_KEY* = 0x4000 PKCS12_NO_PERSIST_KEY* = 0x8000 PKCS12_IMPORT_RESERVED_MASK* = 0xffff0000'i32 PKCS12_INCLUDE_EXTENDED_PROPERTIES* = 0x10 PKCS12_OBJECT_LOCATOR_ALL_IMPORT_FLAGS* = PKCS12_ALWAYS_CNG_KSP or PKCS12_NO_PERSIST_KEY or PKCS12_IMPORT_SILENT or PKCS12_INCLUDE_EXTENDED_PROPERTIES REPORT_NO_PRIVATE_KEY* = 0x1 REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY* = 0x2 EXPORT_PRIVATE_KEYS* = 0x4 PKCS12_PROTECT_TO_DOMAIN_SIDS* = 0x20 PKCS12_EXPORT_SILENT* = 0x40 PKCS12_EXPORT_RESERVED_MASK* = 0xffff0000'i32 CERT_SERVER_OCSP_RESPONSE_ASYNC_FLAG* = 0x1 CERT_RETRIEVE_ISSUER_LOGO* = cast[LPCSTR](1) CERT_RETRIEVE_SUBJECT_LOGO* = cast[LPCSTR](2) CERT_RETRIEVE_COMMUNITY_LOGO* = cast[LPCSTR](3) CERT_RETRIEVE_BIOMETRIC_PREDEFINED_BASE_TYPE* = cast[LPCSTR](1000) CERT_SELECT_MAX_PARA* = 500 CERT_SELECT_BY_ENHKEY_USAGE* = 1 CERT_SELECT_BY_KEY_USAGE* = 2 CERT_SELECT_BY_POLICY_OID* = 3 CERT_SELECT_BY_PROV_NAME* = 4 CERT_SELECT_BY_EXTENSION* = 5 CERT_SELECT_BY_SUBJECT_HOST_NAME* = 6 CERT_SELECT_BY_ISSUER_ATTR* = 7 CERT_SELECT_BY_SUBJECT_ATTR* = 8 CERT_SELECT_BY_ISSUER_NAME* = 9 CERT_SELECT_BY_PUBLIC_KEY* = 10 CERT_SELECT_BY_TLS_SIGNATURES* = 11 CERT_SELECT_LAST* = CERT_SELECT_BY_TLS_SIGNATURES CERT_SELECT_MAX* = CERT_SELECT_LAST*3 CERT_SELECT_ALLOW_EXPIRED* = 0x1 CERT_SELECT_TRUSTED_ROOT* = 0x2 CERT_SELECT_DISALLOW_SELFSIGNED* = 0x4 CERT_SELECT_HAS_PRIVATE_KEY* = 0x8 CERT_SELECT_HAS_KEY_FOR_SIGNATURE* = 0x10 CERT_SELECT_HAS_KEY_FOR_KEY_EXCHANGE* = 0x20 CERT_SELECT_HARDWARE_ONLY* = 0x40 CERT_SELECT_ALLOW_DUPLICATES* = 0x80 TIMESTAMP_VERSION* = 1 TIMESTAMP_STATUS_GRANTED* = 0 TIMESTAMP_STATUS_GRANTED_WITH_MODS* = 1 TIMESTAMP_STATUS_REJECTED* = 2 TIMESTAMP_STATUS_WAITING* = 3 TIMESTAMP_STATUS_REVOCATION_WARNING* = 4 TIMESTAMP_STATUS_REVOKED* = 5 TIMESTAMP_FAILURE_BAD_ALG* = 0 TIMESTAMP_FAILURE_BAD_REQUEST* = 2 TIMESTAMP_FAILURE_BAD_FORMAT* = 5 TIMESTAMP_FAILURE_TIME_NOT_AVAILABLE* = 14 TIMESTAMP_FAILURE_POLICY_NOT_SUPPORTED* = 15 TIMESTAMP_FAILURE_EXTENSION_NOT_SUPPORTED* = 16 TIMESTAMP_FAILURE_INFO_NOT_AVAILABLE* = 17 TIMESTAMP_FAILURE_SYSTEM_FAILURE* = 25 TIMESTAMP_DONT_HASH_DATA* = 0x1 TIMESTAMP_VERIFY_CONTEXT_SIGNATURE* = 0x20 TIMESTAMP_NO_AUTH_RETRIEVAL* = 0x20000 CRYPT_OBJECT_LOCATOR_SPN_NAME_TYPE* = 1 CRYPT_OBJECT_LOCATOR_LAST_RESERVED_NAME_TYPE* = 32 CRYPT_OBJECT_LOCATOR_FIRST_RESERVED_USER_NAME_TYPE* = 33 CRYPT_OBJECT_LOCATOR_LAST_RESERVED_USER_NAME_TYPE* = 0x0000ffff SSL_OBJECT_LOCATOR_PFX_FUNC* = "SslObjectLocatorInitializePfx" SSL_OBJECT_LOCATOR_ISSUER_LIST_FUNC* = "SslObjectLocatorInitializeIssuerList" SSL_OBJECT_LOCATOR_CERT_VALIDATION_CONFIG_FUNC* = "SslObjectLocatorInitializeCertValidationConfig" CRYPT_OBJECT_LOCATOR_RELEASE_SYSTEM_SHUTDOWN* = 1 CRYPT_OBJECT_LOCATOR_RELEASE_SERVICE_STOP* = 2 CRYPT_OBJECT_LOCATOR_RELEASE_PROCESS_EXIT* = 3 CRYPT_OBJECT_LOCATOR_RELEASE_DLL_UNLOAD* = 4 CRYPTPROTECT_DEFAULT_PROVIDER* = DEFINE_GUID("df9d8cd0-1501-11d1-8c7a-00c04fc297eb") szFORCE_KEY_PROTECTION* = "ForceKeyProtection" dwFORCE_KEY_PROTECTION_DISABLED* = 0x0 dwFORCE_KEY_PROTECTION_USER_SELECT* = 0x1 dwFORCE_KEY_PROTECTION_HIGH* = 0x2 CRYPTPROTECT_PROMPT_ON_UNPROTECT* = 0x1 CRYPTPROTECT_PROMPT_ON_PROTECT* = 0x2 CRYPTPROTECT_PROMPT_RESERVED* = 0x04 CRYPTPROTECT_PROMPT_STRONG* = 0x08 CRYPTPROTECT_PROMPT_REQUIRE_STRONG* = 0x10 CRYPTPROTECT_UI_FORBIDDEN* = 0x1 CRYPTPROTECT_LOCAL_MACHINE* = 0x4 CRYPTPROTECT_CRED_SYNC* = 0x8 CRYPTPROTECT_AUDIT* = 0x10 CRYPTPROTECT_NO_RECOVERY* = 0x20 CRYPTPROTECT_VERIFY_PROTECTION* = 0x40 CRYPTPROTECT_CRED_REGENERATE* = 0x80 CRYPTPROTECT_FIRST_RESERVED_FLAGVAL* = 0x0fffffff CRYPTPROTECT_LAST_RESERVED_FLAGVAL* = 0xffffffff'i32 CRYPTPROTECTMEMORY_BLOCK_SIZE* = 16 CRYPTPROTECTMEMORY_SAME_PROCESS* = 0x0 CRYPTPROTECTMEMORY_CROSS_PROCESS* = 0x1 CRYPTPROTECTMEMORY_SAME_LOGON* = 0x2 MS_ENH_RSA_AES_PROV_XP_A* = "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)" MS_ENH_RSA_AES_PROV_XP_W* = "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)" BCRYPT_CIPHER_INTERFACE_VERSION_1* = [1'u16, 0] BCRYPT_HASH_INTERFACE_VERSION_1* = [1'u16, 0] BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE_VERSION_1* = [1'u16, 0] BCRYPT_SECRET_AGREEMENT_INTERFACE_VERSION_1* = [1'u16, 0] BCRYPT_SIGNATURE_INTERFACE_VERSION_1* = [1'u16, 0] BCRYPT_RNG_INTERFACE_VERSION_1* = [1'u16, 0] NCRYPT_KEY_STORAGE_INTERFACE_VERSION* = [1'u16, 0] NCRYPT_KEY_STORAGE_INTERFACE_VERSION_2* = [2'u16, 0] CTL_FIND_NO_SIGNER_PTR* = cast[PCERT_INFO](-1) HCCE_CURRENT_USER* = HCERTCHAINENGINE(0) CERT_EFSBLOB_REGPATH* = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH & "\\EFS" CERT_PROT_ROOT_FLAGS_REGPATH* = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH & "\\Root\\ProtectedRoots" CERT_PROT_ROOT_PEER_USAGES_DEFAULT_A* = szOID_PKIX_KP_CLIENT_AUTH & "\0" & szOID_PKIX_KP_EMAIL_PROTECTION & "\0" & szOID_KP_EFS & "\0" CERT_TRUST_PUB_SAFER_GROUP_POLICY_REGPATH* = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH & "\\TrustedPublisher\\Safer" CERT_TRUST_PUB_SAFER_LOCAL_MACHINE_REGPATH* = CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH & "\\TrustedPublisher\\Safer" CERT_DISABLE_ROOT_AUTO_UPDATE_REGPATH* = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH & "\\AuthRoot" CERT_GROUP_POLICY_CHAIN_CONFIG_REGPATH* = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH & "\\ChainEngine\\Config" CERT_RETRIEVE_BIOMETRIC_PICTURE_TYPE* = cast[LPCSTR](1000) CERT_RETRIEVE_BIOMETRIC_SIGNATURE_TYPE* = cast[LPCSTR](1001) type PFN_NCRYPT_ALLOC* = proc (cbSize: SIZE_T): LPVOID {.stdcall.} PFN_NCRYPT_FREE* = proc (pv: LPVOID): VOID {.stdcall.} PFN_CRYPT_ENUM_OID_FUNC* = proc (dwEncodingType: DWORD, pszFuncName: LPCSTR, pszOID: LPCSTR, cValue: DWORD, rgdwValueType: ptr DWORD, rgpwszValueName: ptr LPCWSTR, rgpbValueData: ptr ptr BYTE, rgcbValueData: ptr DWORD, pvArg: pointer): WINBOOL {.stdcall.} PFN_CRYPT_ENUM_OID_INFO* = proc (pInfo: PCCRYPT_OID_INFO, pvArg: pointer): WINBOOL {.stdcall.} PFN_CMSG_GEN_ENCRYPT_KEY* = proc (phCryptProv: ptr HCRYPTPROV, paiEncrypt: PCRYPT_ALGORITHM_IDENTIFIER, pvEncryptAuxInfo: PVOID, pPublicKeyInfo: PCERT_PUBLIC_KEY_INFO, pfnAlloc: PFN_CMSG_ALLOC, phEncryptKey: ptr HCRYPTKEY, ppbEncryptParameters: ptr PBYTE, pcbEncryptParameters: PDWORD): WINBOOL {.stdcall.} PFN_CMSG_EXPORT_ENCRYPT_KEY* = proc (hCryptProv: HCRYPTPROV, hEncryptKey: HCRYPTKEY, pPublicKeyInfo: PCERT_PUBLIC_KEY_INFO, pbData: PBYTE, pcbData: PDWORD): WINBOOL {.stdcall.} PFN_CMSG_IMPORT_ENCRYPT_KEY* = proc (hCryptProv: HCRYPTPROV, dwKeySpec: DWORD, paiEncrypt: PCRYPT_ALGORITHM_IDENTIFIER, paiPubKey: PCRYPT_ALGORITHM_IDENTIFIER, pbEncodedKey: PBYTE, cbEncodedKey: DWORD, phEncryptKey: ptr HCRYPTKEY): WINBOOL {.stdcall.} PFN_CMSG_GEN_CONTENT_ENCRYPT_KEY* = proc (pContentEncryptInfo: PCMSG_CONTENT_ENCRYPT_INFO, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.stdcall.} PFN_CMSG_EXPORT_KEY_TRANS* = proc (pContentEncryptInfo: PCMSG_CONTENT_ENCRYPT_INFO, pKeyTransEncodeInfo: PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO, pKeyTransEncryptInfo: PCMSG_KEY_TRANS_ENCRYPT_INFO, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.stdcall.} PFN_CMSG_EXPORT_KEY_AGREE* = proc (pContentEncryptInfo: PCMSG_CONTENT_ENCRYPT_INFO, pKeyAgreeEncodeInfo: PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO, pKeyAgreeEncryptInfo: PCMSG_KEY_AGREE_ENCRYPT_INFO, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.stdcall.} PFN_CMSG_EXPORT_MAIL_LIST* = proc (pContentEncryptInfo: PCMSG_CONTENT_ENCRYPT_INFO, pMailListEncodeInfo: PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO, pMailListEncryptInfo: PCMSG_MAIL_LIST_ENCRYPT_INFO, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.stdcall.} PFN_CMSG_IMPORT_KEY_TRANS* = proc (pContentEncryptionAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, pKeyTransDecryptPara: PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA, dwFlags: DWORD, pvReserved: pointer, phContentEncryptKey: ptr HCRYPTKEY): WINBOOL {.stdcall.} PFN_CMSG_IMPORT_KEY_AGREE* = proc (pContentEncryptionAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, pKeyAgreeDecryptPara: PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA, dwFlags: DWORD, pvReserved: pointer, phContentEncryptKey: ptr HCRYPTKEY): WINBOOL {.stdcall.} PFN_CMSG_IMPORT_MAIL_LIST* = proc (pContentEncryptionAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, pMailListDecryptPara: PCMSG_CTRL_MAIL_LIST_DECRYPT_PARA, dwFlags: DWORD, pvReserved: pointer, phContentEncryptKey: ptr HCRYPTKEY): WINBOOL {.stdcall.} PFN_CMSG_CNG_IMPORT_KEY_TRANS* = proc (pCNGContentDecryptInfo: PCMSG_CNG_CONTENT_DECRYPT_INFO, pKeyTransDecryptPara: PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.stdcall.} PFN_CMSG_CNG_IMPORT_KEY_AGREE* = proc (pCNGContentDecryptInfo: PCMSG_CNG_CONTENT_DECRYPT_INFO, pKeyAgreeDecryptPara: PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.stdcall.} PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY* = proc (pCNGContentDecryptInfo: PCMSG_CNG_CONTENT_DECRYPT_INFO, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.stdcall.} PFN_CERT_DLL_OPEN_STORE_PROV_FUNC* = proc (lpszStoreProvider: LPCSTR, dwEncodingType: DWORD, hCryptProv: HCRYPTPROV_LEGACY, dwFlags: DWORD, pvPara: pointer, hCertStore: HCERTSTORE, pStoreProvInfo: PCERT_STORE_PROV_INFO): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_CLOSE* = proc (hStoreProv: HCERTSTOREPROV, dwFlags: DWORD): void {.stdcall.} PFN_CERT_STORE_PROV_READ_CERT* = proc (hStoreProv: HCERTSTOREPROV, pStoreCertContext: PCCERT_CONTEXT, dwFlags: DWORD, ppProvCertContext: ptr PCCERT_CONTEXT): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_WRITE_CERT* = proc (hStoreProv: HCERTSTOREPROV, pCertContext: PCCERT_CONTEXT, dwFlags: DWORD): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_DELETE_CERT* = proc (hStoreProv: HCERTSTOREPROV, pCertContext: PCCERT_CONTEXT, dwFlags: DWORD): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_SET_CERT_PROPERTY* = proc (hStoreProv: HCERTSTOREPROV, pCertContext: PCCERT_CONTEXT, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_READ_CRL* = proc (hStoreProv: HCERTSTOREPROV, pStoreCrlContext: PCCRL_CONTEXT, dwFlags: DWORD, ppProvCrlContext: ptr PCCRL_CONTEXT): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_WRITE_CRL* = proc (hStoreProv: HCERTSTOREPROV, pCrlContext: PCCRL_CONTEXT, dwFlags: DWORD): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_DELETE_CRL* = proc (hStoreProv: HCERTSTOREPROV, pCrlContext: PCCRL_CONTEXT, dwFlags: DWORD): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_SET_CRL_PROPERTY* = proc (hStoreProv: HCERTSTOREPROV, pCrlContext: PCCRL_CONTEXT, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_READ_CTL* = proc (hStoreProv: HCERTSTOREPROV, pStoreCtlContext: PCCTL_CONTEXT, dwFlags: DWORD, ppProvCtlContext: ptr PCCTL_CONTEXT): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_WRITE_CTL* = proc (hStoreProv: HCERTSTOREPROV, pCtlContext: PCCTL_CONTEXT, dwFlags: DWORD): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_DELETE_CTL* = proc (hStoreProv: HCERTSTOREPROV, pCtlContext: PCCTL_CONTEXT, dwFlags: DWORD): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_SET_CTL_PROPERTY* = proc (hStoreProv: HCERTSTOREPROV, pCtlContext: PCCTL_CONTEXT, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_CONTROL* = proc (hStoreProv: HCERTSTOREPROV, dwFlags: DWORD, dwCtrlType: DWORD, pvCtrlPara: pointer): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_FIND_CERT* = proc (hStoreProv: HCERTSTOREPROV, pFindInfo: PCCERT_STORE_PROV_FIND_INFO, pPrevCertContext: PCCERT_CONTEXT, dwFlags: DWORD, ppvStoreProvFindInfo: ptr pointer, ppProvCertContext: ptr PCCERT_CONTEXT): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_FREE_FIND_CERT* = proc (hStoreProv: HCERTSTOREPROV, pCertContext: PCCERT_CONTEXT, pvStoreProvFindInfo: pointer, dwFlags: DWORD): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_GET_CERT_PROPERTY* = proc (hStoreProv: HCERTSTOREPROV, pCertContext: PCCERT_CONTEXT, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer, pcbData: ptr DWORD): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_FIND_CRL* = proc (hStoreProv: HCERTSTOREPROV, pFindInfo: PCCERT_STORE_PROV_FIND_INFO, pPrevCrlContext: PCCRL_CONTEXT, dwFlags: DWORD, ppvStoreProvFindInfo: ptr pointer, ppProvCrlContext: ptr PCCRL_CONTEXT): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_FREE_FIND_CRL* = proc (hStoreProv: HCERTSTOREPROV, pCrlContext: PCCRL_CONTEXT, pvStoreProvFindInfo: pointer, dwFlags: DWORD): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_GET_CRL_PROPERTY* = proc (hStoreProv: HCERTSTOREPROV, pCrlContext: PCCRL_CONTEXT, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer, pcbData: ptr DWORD): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_FIND_CTL* = proc (hStoreProv: HCERTSTOREPROV, pFindInfo: PCCERT_STORE_PROV_FIND_INFO, pPrevCtlContext: PCCTL_CONTEXT, dwFlags: DWORD, ppvStoreProvFindInfo: ptr pointer, ppProvCtlContext: ptr PCCTL_CONTEXT): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_FREE_FIND_CTL* = proc (hStoreProv: HCERTSTOREPROV, pCtlContext: PCCTL_CONTEXT, pvStoreProvFindInfo: pointer, dwFlags: DWORD): WINBOOL {.stdcall.} PFN_CERT_STORE_PROV_GET_CTL_PROPERTY* = proc (hStoreProv: HCERTSTOREPROV, pCtlContext: PCCTL_CONTEXT, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer, pcbData: ptr DWORD): WINBOOL {.stdcall.} PFN_CERT_ENUM_SYSTEM_STORE_LOCATION* = proc (pwszStoreLocation: LPCWSTR, dwFlags: DWORD, pvReserved: pointer, pvArg: pointer): WINBOOL {.stdcall.} PFN_CERT_ENUM_SYSTEM_STORE* = proc (pvSystemStore: pointer, dwFlags: DWORD, pStoreInfo: PCERT_SYSTEM_STORE_INFO, pvReserved: pointer, pvArg: pointer): WINBOOL {.stdcall.} PFN_CERT_ENUM_PHYSICAL_STORE* = proc (pvSystemStore: pointer, dwFlags: DWORD, pwszStoreName: LPCWSTR, pStoreInfo: PCERT_PHYSICAL_STORE_INFO, pvReserved: pointer, pvArg: pointer): WINBOOL {.stdcall.} PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC* = proc (dwCertEncodingType: DWORD, pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, ppvDecodedSignPara: ptr pointer, ppwszCNGHashAlgid: ptr LPWSTR): WINBOOL {.stdcall.} PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC* = proc (hKey: NCRYPT_KEY_HANDLE, dwCertEncodingType: DWORD, pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, pvDecodedSignPara: pointer, pwszCNGPubKeyAlgid: LPCWSTR, pwszCNGHashAlgid: LPCWSTR, pbComputedHash: ptr BYTE, cbComputedHash: DWORD, pbSignature: ptr BYTE, pcbSignature: ptr DWORD): WINBOOL {.stdcall.} PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC* = proc (dwCertEncodingType: DWORD, pPubKeyInfo: PCERT_PUBLIC_KEY_INFO, pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, pvDecodedSignPara: pointer, pwszCNGPubKeyAlgid: LPCWSTR, pwszCNGHashAlgid: LPCWSTR, pbComputedHash: ptr BYTE, cbComputedHash: DWORD, pbSignature: ptr BYTE, cbSignature: DWORD): WINBOOL {.stdcall.} PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC* = proc (hNCryptKey: NCRYPT_KEY_HANDLE, dwCertEncodingType: DWORD, pszPublicKeyObjId: LPSTR, dwFlags: DWORD, pvAuxInfo: pointer, pInfo: PCERT_PUBLIC_KEY_INFO, pcbInfo: ptr DWORD): WINBOOL {.stdcall.} PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_FROM_BCRYPT_HANDLE_FUNC* = proc (hBCryptKey: BCRYPT_KEY_HANDLE, dwCertEncodingType: DWORD, pszPublicKeyObjId: LPSTR, dwFlags: DWORD, pvAuxInfo: pointer, pInfo: PCERT_PUBLIC_KEY_INFO, pcbInfo: ptr DWORD): WINBOOL {.stdcall.} PFN_IMPORT_PRIV_KEY_FUNC* = proc (hCryptProv: HCRYPTPROV, pPrivateKeyInfo: ptr CRYPT_PRIVATE_KEY_INFO, dwFlags: DWORD, pvAuxInfo: pointer): WINBOOL {.stdcall.} PFN_EXPORT_PRIV_KEY_FUNC* = proc (hCryptProv: HCRYPTPROV, dwKeySpec: DWORD, pszPrivateKeyObjId: LPSTR, dwFlags: DWORD, pvAuxInfo: pointer, pPrivateKeyInfo: ptr CRYPT_PRIVATE_KEY_INFO, pcbPrivateKeyInfo: ptr DWORD): WINBOOL {.stdcall.} PFN_IMPORT_PUBLIC_KEY_INFO_EX2_FUNC* = proc (dwCertEncodingType: DWORD, pInfo: PCERT_PUBLIC_KEY_INFO, dwFlags: DWORD, pvAuxInfo: pointer, phKey: ptr BCRYPT_KEY_HANDLE): WINBOOL {.stdcall.} PFN_CRYPT_ASYNC_PARAM_FREE_FUNC* = proc (pszParamOid: LPSTR, pvParam: LPVOID): VOID {.stdcall.} PFN_FREE_ENCODED_OBJECT_FUNC* = proc (pszObjectOid: LPCSTR, pObject: PCRYPT_BLOB_ARRAY, pvFreeContext: LPVOID): VOID {.stdcall.} PFN_CRYPT_CANCEL_RETRIEVAL* = proc (dwFlags: DWORD, pvArg: pointer): WINBOOL {.stdcall.} PFN_CANCEL_ASYNC_RETRIEVAL_FUNC* = proc (hAsyncRetrieve: HCRYPTASYNC): WINBOOL {.stdcall.} PFN_CRYPT_ENUM_KEYID_PROP* = proc (pKeyIdentifier: ptr CRYPT_HASH_BLOB, dwFlags: DWORD, pvReserved: pointer, pvArg: pointer, cProp: DWORD, rgdwPropId: ptr DWORD, rgpvData: ptr pointer, rgcbData: ptr DWORD): WINBOOL {.stdcall.} PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH* = proc (pContext: LPVOID, rgIdentifierOrNameList: ptr PCERT_NAME_BLOB, dwIdentifierOrNameListCount: DWORD): WINBOOL {.stdcall.} PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE* = proc (pfnFlush: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH, pContext: LPVOID, pdwExpectedObjectCount: ptr DWORD, ppFuncTable: ptr PCRYPT_OBJECT_LOCATOR_PROVIDER_TABLE, ppPluginContext: ptr pointer): WINBOOL {.stdcall.} PROV_ENUMALGS* {.pure.} = object aiAlgid*: ALG_ID dwBitLen*: DWORD dwNameLen*: DWORD szName*: array[20, CHAR] PROV_ENUMALGS_EX* {.pure.} = object aiAlgid*: ALG_ID dwDefaultLen*: DWORD dwMinLen*: DWORD dwMaxLen*: DWORD dwProtocols*: DWORD dwNameLen*: DWORD szName*: array[20, CHAR] dwLongNameLen*: DWORD szLongName*: array[40, CHAR] RSAPUBKEY* {.pure.} = object magic*: DWORD bitlen*: DWORD pubexp*: DWORD CERT_FORTEZZA_DATA_PROP* {.pure.} = object SerialNumber*: array[8, uint8] CertIndex*: int32 CertLabel*: array[36, uint8] BCRYPT_OID* {.pure.} = object cbOID*: ULONG pbOID*: PUCHAR BCRYPT_OID_LIST* {.pure.} = object dwOIDCount*: ULONG pOIDs*: ptr BCRYPT_OID BCRYPT_PKCS1_PADDING_INFO* {.pure.} = object pszAlgId*: LPCWSTR BCRYPT_PSS_PADDING_INFO* {.pure.} = object pszAlgId*: LPCWSTR cbSalt*: ULONG BCRYPT_OAEP_PADDING_INFO* {.pure.} = object pszAlgId*: LPCWSTR pbLabel*: PUCHAR cbLabel*: ULONG BCRYPT_KEY_BLOB* {.pure.} = object Magic*: ULONG BCRYPT_RSAKEY_BLOB* {.pure.} = object Magic*: ULONG BitLength*: ULONG cbPublicExp*: ULONG cbModulus*: ULONG cbPrime1*: ULONG cbPrime2*: ULONG BCRYPT_DH_PARAMETER_HEADER* {.pure.} = object cbLength*: ULONG dwMagic*: ULONG cbKeyLength*: ULONG BCRYPT_DSA_PARAMETER_HEADER* {.pure.} = object cbLength*: ULONG dwMagic*: ULONG cbKeyLength*: ULONG Count*: array[4, UCHAR] Seed*: array[20, UCHAR] q*: array[20, UCHAR] BCRYPT_DSA_PARAMETER_HEADER_V2* {.pure.} = object cbLength*: ULONG dwMagic*: ULONG cbKeyLength*: ULONG hashAlgorithm*: HASHALGORITHM_ENUM standardVersion*: DSAFIPSVERSION_ENUM cbSeedLength*: ULONG cbGroupSize*: ULONG Count*: array[4, UCHAR] BCRYPT_ALGORITHM_IDENTIFIER* {.pure.} = object pszName*: LPWSTR dwClass*: ULONG dwFlags*: ULONG BCRYPT_PROVIDER_NAME* {.pure.} = object pszProviderName*: LPWSTR NCRYPT_ALLOC_PARA* {.pure.} = object cbSize*: DWORD pfnAlloc*: PFN_NCRYPT_ALLOC pfnFree*: PFN_NCRYPT_FREE NCryptAlgorithmName* {.pure.} = object pszName*: LPWSTR dwClass*: DWORD dwAlgOperations*: DWORD dwFlags*: DWORD NCryptKeyName* {.pure.} = object pszName*: LPWSTR pszAlgid*: LPWSTR dwLegacyKeySpec*: DWORD dwFlags*: DWORD NCryptProviderName* {.pure.} = object pszName*: LPWSTR pszComment*: LPWSTR NCRYPT_UI_POLICY* {.pure.} = object dwVersion*: DWORD dwFlags*: DWORD pszCreationTitle*: LPCWSTR pszFriendlyName*: LPCWSTR pszDescription*: LPCWSTR NCRYPT_SUPPORTED_LENGTHS* {.pure.} = object dwMinLength*: DWORD dwMaxLength*: DWORD dwIncrement*: DWORD dwDefaultLength*: DWORD CRYPT_PKCS12_PBE_PARAMS* {.pure.} = object iIterations*: int32 cbSalt*: ULONG proc CryptAcquireContextA*(phProv: ptr HCRYPTPROV, szContainer: LPCSTR, szProvider: LPCSTR, dwProvType: DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptAcquireContextW*(phProv: ptr HCRYPTPROV, szContainer: LPCWSTR, szProvider: LPCWSTR, dwProvType: DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptReleaseContext*(hProv: HCRYPTPROV, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptGenKey*(hProv: HCRYPTPROV, Algid: ALG_ID, dwFlags: DWORD, phKey: ptr HCRYPTKEY): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptDeriveKey*(hProv: HCRYPTPROV, Algid: ALG_ID, hBaseData: HCRYPTHASH, dwFlags: DWORD, phKey: ptr HCRYPTKEY): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptDestroyKey*(hKey: HCRYPTKEY): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptSetKeyParam*(hKey: HCRYPTKEY, dwParam: DWORD, pbData: ptr BYTE, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptGetKeyParam*(hKey: HCRYPTKEY, dwParam: DWORD, pbData: ptr BYTE, pdwDataLen: ptr DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptSetHashParam*(hHash: HCRYPTHASH, dwParam: DWORD, pbData: ptr BYTE, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptGetHashParam*(hHash: HCRYPTHASH, dwParam: DWORD, pbData: ptr BYTE, pdwDataLen: ptr DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptSetProvParam*(hProv: HCRYPTPROV, dwParam: DWORD, pbData: ptr BYTE, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptGetProvParam*(hProv: HCRYPTPROV, dwParam: DWORD, pbData: ptr BYTE, pdwDataLen: ptr DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptGenRandom*(hProv: HCRYPTPROV, dwLen: DWORD, pbBuffer: ptr BYTE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptGetUserKey*(hProv: HCRYPTPROV, dwKeySpec: DWORD, phUserKey: ptr HCRYPTKEY): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptExportKey*(hKey: HCRYPTKEY, hExpKey: HCRYPTKEY, dwBlobType: DWORD, dwFlags: DWORD, pbData: ptr BYTE, pdwDataLen: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptImportKey*(hProv: HCRYPTPROV, pbData: ptr BYTE, dwDataLen: DWORD, hPubKey: HCRYPTKEY, dwFlags: DWORD, phKey: ptr HCRYPTKEY): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptEncrypt*(hKey: HCRYPTKEY, hHash: HCRYPTHASH, Final: WINBOOL, dwFlags: DWORD, pbData: ptr BYTE, pdwDataLen: ptr DWORD, dwBufLen: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptDecrypt*(hKey: HCRYPTKEY, hHash: HCRYPTHASH, Final: WINBOOL, dwFlags: DWORD, pbData: ptr BYTE, pdwDataLen: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptCreateHash*(hProv: HCRYPTPROV, Algid: ALG_ID, hKey: HCRYPTKEY, dwFlags: DWORD, phHash: ptr HCRYPTHASH): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptHashData*(hHash: HCRYPTHASH, pbData: ptr BYTE, dwDataLen: DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptHashSessionKey*(hHash: HCRYPTHASH, hKey: HCRYPTKEY, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptDestroyHash*(hHash: HCRYPTHASH): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptSignHashA*(hHash: HCRYPTHASH, dwKeySpec: DWORD, szDescription: LPCSTR, dwFlags: DWORD, pbSignature: ptr BYTE, pdwSigLen: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptSignHashW*(hHash: HCRYPTHASH, dwKeySpec: DWORD, szDescription: LPCWSTR, dwFlags: DWORD, pbSignature: ptr BYTE, pdwSigLen: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptVerifySignatureA*(hHash: HCRYPTHASH, pbSignature: ptr BYTE, dwSigLen: DWORD, hPubKey: HCRYPTKEY, szDescription: LPCSTR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptVerifySignatureW*(hHash: HCRYPTHASH, pbSignature: ptr BYTE, dwSigLen: DWORD, hPubKey: HCRYPTKEY, szDescription: LPCWSTR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptSetProviderA*(pszProvName: LPCSTR, dwProvType: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptSetProviderW*(pszProvName: LPCWSTR, dwProvType: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptSetProviderExA*(pszProvName: LPCSTR, dwProvType: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptSetProviderExW*(pszProvName: LPCWSTR, dwProvType: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptGetDefaultProviderA*(dwProvType: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pszProvName: LPSTR, pcbProvName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptGetDefaultProviderW*(dwProvType: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pszProvName: LPWSTR, pcbProvName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptEnumProviderTypesA*(dwIndex: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pdwProvType: ptr DWORD, szTypeName: LPSTR, pcbTypeName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptEnumProviderTypesW*(dwIndex: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pdwProvType: ptr DWORD, szTypeName: LPWSTR, pcbTypeName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptEnumProvidersA*(dwIndex: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pdwProvType: ptr DWORD, szProvName: LPSTR, pcbProvName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptEnumProvidersW*(dwIndex: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pdwProvType: ptr DWORD, szProvName: LPWSTR, pcbProvName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptContextAddRef*(hProv: HCRYPTPROV, pdwReserved: ptr DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptDuplicateKey*(hKey: HCRYPTKEY, pdwReserved: ptr DWORD, dwFlags: DWORD, phKey: ptr HCRYPTKEY): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc CryptDuplicateHash*(hHash: HCRYPTHASH, pdwReserved: ptr DWORD, dwFlags: DWORD, phHash: ptr HCRYPTHASH): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} proc BCryptOpenAlgorithmProvider*(phAlgorithm: ptr BCRYPT_ALG_HANDLE, pszAlgId: LPCWSTR, pszImplementation: LPCWSTR, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptEnumAlgorithms*(dwAlgOperations: ULONG, pAlgCount: ptr ULONG, ppAlgList: ptr ptr BCRYPT_ALGORITHM_IDENTIFIER, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptEnumProviders*(pszAlgId: LPCWSTR, pImplCount: ptr ULONG, ppImplList: ptr ptr BCRYPT_PROVIDER_NAME, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptGetProperty*(hObject: BCRYPT_HANDLE, pszProperty: LPCWSTR, pbOutput: PUCHAR, cbOutput: ULONG, pcbResult: ptr ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptSetProperty*(hObject: BCRYPT_HANDLE, pszProperty: LPCWSTR, pbInput: PUCHAR, cbInput: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptCloseAlgorithmProvider*(hAlgorithm: BCRYPT_ALG_HANDLE, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptFreeBuffer*(pvBuffer: PVOID): VOID {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptGenerateSymmetricKey*(hAlgorithm: BCRYPT_ALG_HANDLE, phKey: ptr BCRYPT_KEY_HANDLE, pbKeyObject: PUCHAR, cbKeyObject: ULONG, pbSecret: PUCHAR, cbSecret: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptGenerateKeyPair*(hAlgorithm: BCRYPT_ALG_HANDLE, phKey: ptr BCRYPT_KEY_HANDLE, dwLength: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptEncrypt*(hKey: BCRYPT_KEY_HANDLE, pbInput: PUCHAR, cbInput: ULONG, pPaddingInfo: pointer, pbIV: PUCHAR, cbIV: ULONG, pbOutput: PUCHAR, cbOutput: ULONG, pcbResult: ptr ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptDecrypt*(hKey: BCRYPT_KEY_HANDLE, pbInput: PUCHAR, cbInput: ULONG, pPaddingInfo: pointer, pbIV: PUCHAR, cbIV: ULONG, pbOutput: PUCHAR, cbOutput: ULONG, pcbResult: ptr ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptExportKey*(hKey: BCRYPT_KEY_HANDLE, hExportKey: BCRYPT_KEY_HANDLE, pszBlobType: LPCWSTR, pbOutput: PUCHAR, cbOutput: ULONG, pcbResult: ptr ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptImportKey*(hAlgorithm: BCRYPT_ALG_HANDLE, hImportKey: BCRYPT_KEY_HANDLE, pszBlobType: LPCWSTR, phKey: ptr BCRYPT_KEY_HANDLE, pbKeyObject: PUCHAR, cbKeyObject: ULONG, pbInput: PUCHAR, cbInput: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptImportKeyPair*(hAlgorithm: BCRYPT_ALG_HANDLE, hImportKey: BCRYPT_KEY_HANDLE, pszBlobType: LPCWSTR, phKey: ptr BCRYPT_KEY_HANDLE, pbInput: PUCHAR, cbInput: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptDuplicateKey*(hKey: BCRYPT_KEY_HANDLE, phNewKey: ptr BCRYPT_KEY_HANDLE, pbKeyObject: PUCHAR, cbKeyObject: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptFinalizeKeyPair*(hKey: BCRYPT_KEY_HANDLE, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptDestroyKey*(hKey: BCRYPT_KEY_HANDLE): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptDestroySecret*(hSecret: BCRYPT_SECRET_HANDLE): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptSignHash*(hKey: BCRYPT_KEY_HANDLE, pPaddingInfo: pointer, pbInput: PUCHAR, cbInput: ULONG, pbOutput: PUCHAR, cbOutput: ULONG, pcbResult: ptr ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptVerifySignature*(hKey: BCRYPT_KEY_HANDLE, pPaddingInfo: pointer, pbHash: PUCHAR, cbHash: ULONG, pbSignature: PUCHAR, cbSignature: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptSecretAgreement*(hPrivKey: BCRYPT_KEY_HANDLE, hPubKey: BCRYPT_KEY_HANDLE, phAgreedSecret: ptr BCRYPT_SECRET_HANDLE, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptDeriveKey*(hSharedSecret: BCRYPT_SECRET_HANDLE, pwszKDF: LPCWSTR, pParameterList: ptr BCryptBufferDesc, pbDerivedKey: PUCHAR, cbDerivedKey: ULONG, pcbResult: ptr ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptKeyDerivation*(hKey: BCRYPT_KEY_HANDLE, pParameterList: ptr BCryptBufferDesc, pbDerivedKey: PUCHAR, cbDerivedKey: ULONG, pcbResult: ptr ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptCreateHash*(hAlgorithm: BCRYPT_ALG_HANDLE, phHash: ptr BCRYPT_HASH_HANDLE, pbHashObject: PUCHAR, cbHashObject: ULONG, pbSecret: PUCHAR, cbSecret: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptHashData*(hHash: BCRYPT_HASH_HANDLE, pbInput: PUCHAR, cbInput: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptFinishHash*(hHash: BCRYPT_HASH_HANDLE, pbOutput: PUCHAR, cbOutput: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptDuplicateHash*(hHash: BCRYPT_HASH_HANDLE, phNewHash: ptr BCRYPT_HASH_HANDLE, pbHashObject: PUCHAR, cbHashObject: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptDestroyHash*(hHash: BCRYPT_HASH_HANDLE): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptGenRandom*(hAlgorithm: BCRYPT_ALG_HANDLE, pbBuffer: PUCHAR, cbBuffer: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptDeriveKeyCapi*(hHash: BCRYPT_HASH_HANDLE, hTargetAlg: BCRYPT_ALG_HANDLE, pbDerivedKey: PUCHAR, cbDerivedKey: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptDeriveKeyPBKDF2*(hPrf: BCRYPT_ALG_HANDLE, pbPassword: PUCHAR, cbPassword: ULONG, pbSalt: PUCHAR, cbSalt: ULONG, cIterations: ULONGLONG, pbDerivedKey: PUCHAR, cbDerivedKey: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptResolveProviders*(pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR, pszProvider: LPCWSTR, dwMode: ULONG, dwFlags: ULONG, pcbBuffer: ptr ULONG, ppBuffer: ptr PCRYPT_PROVIDER_REFS): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptGetFipsAlgorithmMode*(pfEnabled: ptr BOOLEAN): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptRegisterConfigChangeNotify*(pEvent: PRKEVENT): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptUnregisterConfigChangeNotify*(pEvent: PRKEVENT): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptUnregisterConfigChangeNotify*(hEvent: HANDLE): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptQueryProviderRegistration*(pszProvider: LPCWSTR, dwMode: ULONG, dwInterface: ULONG, pcbBuffer: ptr ULONG, ppBuffer: ptr PCRYPT_PROVIDER_REG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptEnumRegisteredProviders*(pcbBuffer: ptr ULONG, ppBuffer: ptr PCRYPT_PROVIDERS): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptCreateContext*(dwTable: ULONG, pszContext: LPCWSTR, pConfig: PCRYPT_CONTEXT_CONFIG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptDeleteContext*(dwTable: ULONG, pszContext: LPCWSTR): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptEnumContexts*(dwTable: ULONG, pcbBuffer: ptr ULONG, ppBuffer: ptr PCRYPT_CONTEXTS): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptConfigureContext*(dwTable: ULONG, pszContext: LPCWSTR, pConfig: PCRYPT_CONTEXT_CONFIG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptQueryContextConfiguration*(dwTable: ULONG, pszContext: LPCWSTR, pcbBuffer: ptr ULONG, ppBuffer: ptr PCRYPT_CONTEXT_CONFIG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptAddContextFunction*(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR, dwPosition: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptRemoveContextFunction*(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptEnumContextFunctions*(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pcbBuffer: ptr ULONG, ppBuffer: ptr PCRYPT_CONTEXT_FUNCTIONS): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptConfigureContextFunction*(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR, pConfig: PCRYPT_CONTEXT_FUNCTION_CONFIG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptQueryContextFunctionConfiguration*(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR, pcbBuffer: ptr ULONG, ppBuffer: ptr PCRYPT_CONTEXT_FUNCTION_CONFIG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptEnumContextFunctionProviders*(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR, pcbBuffer: ptr ULONG, ppBuffer: ptr PCRYPT_CONTEXT_FUNCTION_PROVIDERS): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptSetContextFunctionProperty*(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR, pszProperty: LPCWSTR, cbValue: ULONG, pbValue: PUCHAR): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptQueryContextFunctionProperty*(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR, pszProperty: LPCWSTR, pcbValue: ptr ULONG, ppbValue: ptr PUCHAR): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc BCryptRegisterConfigChangeNotify*(phEvent: ptr HANDLE): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} proc NCryptOpenStorageProvider*(phProvider: ptr NCRYPT_PROV_HANDLE, pszProviderName: LPCWSTR, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptEnumAlgorithms*(hProvider: NCRYPT_PROV_HANDLE, dwAlgOperations: DWORD, pdwAlgCount: ptr DWORD, ppAlgList: ptr ptr NCryptAlgorithmName, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptIsAlgSupported*(hProvider: NCRYPT_PROV_HANDLE, pszAlgId: LPCWSTR, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptEnumKeys*(hProvider: NCRYPT_PROV_HANDLE, pszScope: LPCWSTR, ppKeyName: ptr ptr NCryptKeyName, ppEnumState: ptr PVOID, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptEnumStorageProviders*(pdwProviderCount: ptr DWORD, ppProviderList: ptr ptr NCryptProviderName, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptFreeBuffer*(pvInput: PVOID): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptOpenKey*(hProvider: NCRYPT_PROV_HANDLE, phKey: ptr NCRYPT_KEY_HANDLE, pszKeyName: LPCWSTR, dwLegacyKeySpec: DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptCreatePersistedKey*(hProvider: NCRYPT_PROV_HANDLE, phKey: ptr NCRYPT_KEY_HANDLE, pszAlgId: LPCWSTR, pszKeyName: LPCWSTR, dwLegacyKeySpec: DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptGetProperty*(hObject: NCRYPT_HANDLE, pszProperty: LPCWSTR, pbOutput: PBYTE, cbOutput: DWORD, pcbResult: ptr DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptSetProperty*(hObject: NCRYPT_HANDLE, pszProperty: LPCWSTR, pbInput: PBYTE, cbInput: DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptFinalizeKey*(hKey: NCRYPT_KEY_HANDLE, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptEncrypt*(hKey: NCRYPT_KEY_HANDLE, pbInput: PBYTE, cbInput: DWORD, pPaddingInfo: pointer, pbOutput: PBYTE, cbOutput: DWORD, pcbResult: ptr DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptDecrypt*(hKey: NCRYPT_KEY_HANDLE, pbInput: PBYTE, cbInput: DWORD, pPaddingInfo: pointer, pbOutput: PBYTE, cbOutput: DWORD, pcbResult: ptr DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptImportKey*(hProvider: NCRYPT_PROV_HANDLE, hImportKey: NCRYPT_KEY_HANDLE, pszBlobType: LPCWSTR, pParameterList: ptr NCryptBufferDesc, phKey: ptr NCRYPT_KEY_HANDLE, pbData: PBYTE, cbData: DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptExportKey*(hKey: NCRYPT_KEY_HANDLE, hExportKey: NCRYPT_KEY_HANDLE, pszBlobType: LPCWSTR, pParameterList: ptr NCryptBufferDesc, pbOutput: PBYTE, cbOutput: DWORD, pcbResult: ptr DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptSignHash*(hKey: NCRYPT_KEY_HANDLE, pPaddingInfo: pointer, pbHashValue: PBYTE, cbHashValue: DWORD, pbSignature: PBYTE, cbSignature: DWORD, pcbResult: ptr DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptVerifySignature*(hKey: NCRYPT_KEY_HANDLE, pPaddingInfo: pointer, pbHashValue: PBYTE, cbHashValue: DWORD, pbSignature: PBYTE, cbSignature: DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptDeleteKey*(hKey: NCRYPT_KEY_HANDLE, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptFreeObject*(hObject: NCRYPT_HANDLE): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptIsKeyHandle*(hKey: NCRYPT_KEY_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptTranslateHandle*(phProvider: ptr NCRYPT_PROV_HANDLE, phKey: ptr NCRYPT_KEY_HANDLE, hLegacyProv: HCRYPTPROV, hLegacyKey: HCRYPTKEY, dwLegacyKeySpec: DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptNotifyChangeKey*(hProvider: NCRYPT_PROV_HANDLE, phEvent: ptr HANDLE, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptSecretAgreement*(hPrivKey: NCRYPT_KEY_HANDLE, hPubKey: NCRYPT_KEY_HANDLE, phAgreedSecret: ptr NCRYPT_SECRET_HANDLE, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptDeriveKey*(hSharedSecret: NCRYPT_SECRET_HANDLE, pwszKDF: LPCWSTR, pParameterList: ptr NCryptBufferDesc, pbDerivedKey: PBYTE, cbDerivedKey: DWORD, pcbResult: ptr DWORD, dwFlags: ULONG): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc NCryptKeyDerivation*(hKey: NCRYPT_KEY_HANDLE, pParameterList: ptr NCryptBufferDesc, pbDerivedKey: PUCHAR, cbDerivedKey: DWORD, pcbResult: ptr DWORD, dwFlags: ULONG): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} proc CryptFormatObject*(dwCertEncodingType: DWORD, dwFormatType: DWORD, dwFormatStrType: DWORD, pFormatStruct: pointer, lpszStructType: LPCSTR, pbEncoded: ptr BYTE, cbEncoded: DWORD, pbFormat: pointer, pcbFormat: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptEncodeObjectEx*(dwCertEncodingType: DWORD, lpszStructType: LPCSTR, pvStructInfo: pointer, dwFlags: DWORD, pEncodePara: PCRYPT_ENCODE_PARA, pvEncoded: pointer, pcbEncoded: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptEncodeObject*(dwCertEncodingType: DWORD, lpszStructType: LPCSTR, pvStructInfo: pointer, pbEncoded: ptr BYTE, pcbEncoded: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptDecodeObjectEx*(dwCertEncodingType: DWORD, lpszStructType: LPCSTR, pbEncoded: ptr BYTE, cbEncoded: DWORD, dwFlags: DWORD, pDecodePara: PCRYPT_DECODE_PARA, pvStructInfo: pointer, pcbStructInfo: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptDecodeObject*(dwCertEncodingType: DWORD, lpszStructType: LPCSTR, pbEncoded: ptr BYTE, cbEncoded: DWORD, dwFlags: DWORD, pvStructInfo: pointer, pcbStructInfo: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptInstallOIDFunctionAddress*(hModule: HMODULE, dwEncodingType: DWORD, pszFuncName: LPCSTR, cFuncEntry: DWORD, rgFuncEntry: ptr CRYPT_OID_FUNC_ENTRY, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptInitOIDFunctionSet*(pszFuncName: LPCSTR, dwFlags: DWORD): HCRYPTOIDFUNCSET {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptGetOIDFunctionAddress*(hFuncSet: HCRYPTOIDFUNCSET, dwEncodingType: DWORD, pszOID: LPCSTR, dwFlags: DWORD, ppvFuncAddr: ptr pointer, phFuncAddr: ptr HCRYPTOIDFUNCADDR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptGetDefaultOIDDllList*(hFuncSet: HCRYPTOIDFUNCSET, dwEncodingType: DWORD, pwszDllList: ptr WCHAR, pcchDllList: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptGetDefaultOIDFunctionAddress*(hFuncSet: HCRYPTOIDFUNCSET, dwEncodingType: DWORD, pwszDll: LPCWSTR, dwFlags: DWORD, ppvFuncAddr: ptr pointer, phFuncAddr: ptr HCRYPTOIDFUNCADDR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptFreeOIDFunctionAddress*(hFuncAddr: HCRYPTOIDFUNCADDR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptRegisterOIDFunction*(dwEncodingType: DWORD, pszFuncName: LPCSTR, pszOID: LPCSTR, pwszDll: LPCWSTR, pszOverrideFuncName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptUnregisterOIDFunction*(dwEncodingType: DWORD, pszFuncName: LPCSTR, pszOID: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptRegisterDefaultOIDFunction*(dwEncodingType: DWORD, pszFuncName: LPCSTR, dwIndex: DWORD, pwszDll: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptUnregisterDefaultOIDFunction*(dwEncodingType: DWORD, pszFuncName: LPCSTR, pwszDll: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptSetOIDFunctionValue*(dwEncodingType: DWORD, pszFuncName: LPCSTR, pszOID: LPCSTR, pwszValueName: LPCWSTR, dwValueType: DWORD, pbValueData: ptr BYTE, cbValueData: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptGetOIDFunctionValue*(dwEncodingType: DWORD, pszFuncName: LPCSTR, pszOID: LPCSTR, pwszValueName: LPCWSTR, pdwValueType: ptr DWORD, pbValueData: ptr BYTE, pcbValueData: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptEnumOIDFunction*(dwEncodingType: DWORD, pszFuncName: LPCSTR, pszOID: LPCSTR, dwFlags: DWORD, pvArg: pointer, pfnEnumOIDFunc: PFN_CRYPT_ENUM_OID_FUNC): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptFindOIDInfo*(dwKeyType: DWORD, pvKey: pointer, dwGroupId: DWORD): PCCRYPT_OID_INFO {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptRegisterOIDInfo*(pInfo: PCCRYPT_OID_INFO, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptUnregisterOIDInfo*(pInfo: PCCRYPT_OID_INFO): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptEnumOIDInfo*(dwGroupId: DWORD, dwFlags: DWORD, pvArg: pointer, pfnEnumOIDInfo: PFN_CRYPT_ENUM_OID_INFO): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptFindLocalizedName*(pwszCryptName: LPCWSTR): LPCWSTR {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptMsgOpenToEncode*(dwMsgEncodingType: DWORD, dwFlags: DWORD, dwMsgType: DWORD, pvMsgEncodeInfo: pointer, pszInnerContentObjID: LPSTR, pStreamInfo: PCMSG_STREAM_INFO): HCRYPTMSG {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptMsgCalculateEncodedLength*(dwMsgEncodingType: DWORD, dwFlags: DWORD, dwMsgType: DWORD, pvMsgEncodeInfo: pointer, pszInnerContentObjID: LPSTR, cbData: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptMsgOpenToDecode*(dwMsgEncodingType: DWORD, dwFlags: DWORD, dwMsgType: DWORD, hCryptProv: HCRYPTPROV_LEGACY, pRecipientInfo: PCERT_INFO, pStreamInfo: PCMSG_STREAM_INFO): HCRYPTMSG {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptMsgDuplicate*(hCryptMsg: HCRYPTMSG): HCRYPTMSG {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptMsgClose*(hCryptMsg: HCRYPTMSG): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptMsgUpdate*(hCryptMsg: HCRYPTMSG, pbData: ptr BYTE, cbData: DWORD, fFinal: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptMsgGetParam*(hCryptMsg: HCRYPTMSG, dwParamType: DWORD, dwIndex: DWORD, pvData: pointer, pcbData: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptMsgControl*(hCryptMsg: HCRYPTMSG, dwFlags: DWORD, dwCtrlType: DWORD, pvCtrlPara: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptMsgVerifyCountersignatureEncoded*(hCryptProv: HCRYPTPROV_LEGACY, dwEncodingType: DWORD, pbSignerInfo: PBYTE, cbSignerInfo: DWORD, pbSignerInfoCountersignature: PBYTE, cbSignerInfoCountersignature: DWORD, pciCountersigner: PCERT_INFO): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptMsgVerifyCountersignatureEncodedEx*(hCryptProv: HCRYPTPROV_LEGACY, dwEncodingType: DWORD, pbSignerInfo: PBYTE, cbSignerInfo: DWORD, pbSignerInfoCountersignature: PBYTE, cbSignerInfoCountersignature: DWORD, dwSignerType: DWORD, pvSigner: pointer, dwFlags: DWORD, pvExtra: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptMsgCountersign*(hCryptMsg: HCRYPTMSG, dwIndex: DWORD, cCountersigners: DWORD, rgCountersigners: PCMSG_SIGNER_ENCODE_INFO): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptMsgCountersignEncoded*(dwEncodingType: DWORD, pbSignerInfo: PBYTE, cbSignerInfo: DWORD, cCountersigners: DWORD, rgCountersigners: PCMSG_SIGNER_ENCODE_INFO, pbCountersignature: PBYTE, pcbCountersignature: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertOpenStore*(lpszStoreProvider: LPCSTR, dwEncodingType: DWORD, hCryptProv: HCRYPTPROV_LEGACY, dwFlags: DWORD, pvPara: pointer): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertDuplicateStore*(hCertStore: HCERTSTORE): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertSaveStore*(hCertStore: HCERTSTORE, dwEncodingType: DWORD, dwSaveAs: DWORD, dwSaveTo: DWORD, pvSaveToPara: pointer, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertCloseStore*(hCertStore: HCERTSTORE, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertGetSubjectCertificateFromStore*(hCertStore: HCERTSTORE, dwCertEncodingType: DWORD, pCertId: PCERT_INFO): PCCERT_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertEnumCertificatesInStore*(hCertStore: HCERTSTORE, pPrevCertContext: PCCERT_CONTEXT): PCCERT_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertFindCertificateInStore*(hCertStore: HCERTSTORE, dwCertEncodingType: DWORD, dwFindFlags: DWORD, dwFindType: DWORD, pvFindPara: pointer, pPrevCertContext: PCCERT_CONTEXT): PCCERT_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertGetIssuerCertificateFromStore*(hCertStore: HCERTSTORE, pSubjectContext: PCCERT_CONTEXT, pPrevIssuerContext: PCCERT_CONTEXT, pdwFlags: ptr DWORD): PCCERT_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertVerifySubjectCertificateContext*(pSubject: PCCERT_CONTEXT, pIssuer: PCCERT_CONTEXT, pdwFlags: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertDuplicateCertificateContext*(pCertContext: PCCERT_CONTEXT): PCCERT_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertCreateCertificateContext*(dwCertEncodingType: DWORD, pbCertEncoded: ptr BYTE, cbCertEncoded: DWORD): PCCERT_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertFreeCertificateContext*(pCertContext: PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertSetCertificateContextProperty*(pCertContext: PCCERT_CONTEXT, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertEnumCRLsInStore*(hCertStore: HCERTSTORE, pPrevCrlContext: PCCRL_CONTEXT): PCCRL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertDeleteCRLFromStore*(pCrlContext: PCCRL_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertDuplicateCRLContext*(pCrlContext: PCCRL_CONTEXT): PCCRL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertFindCRLInStore*(hCertStore: HCERTSTORE, dwCertEncodingType: DWORD, dwFindFlags: DWORD, dwFindType: DWORD, pvFindPara: pointer, pPrevCrlContext: PCCRL_CONTEXT): PCCRL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertFreeCRLContext*(pCrlContext: PCCRL_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertGetCertificateContextProperty*(pCertContext: PCCERT_CONTEXT, dwPropId: DWORD, pvData: pointer, pcbData: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertEnumCertificateContextProperties*(pCertContext: PCCERT_CONTEXT, dwPropId: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertCreateCTLEntryFromCertificateContextProperties*(pCertContext: PCCERT_CONTEXT, cOptAttr: DWORD, rgOptAttr: PCRYPT_ATTRIBUTE, dwFlags: DWORD, pvReserved: pointer, pCtlEntry: PCTL_ENTRY, pcbCtlEntry: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertSetCertificateContextPropertiesFromCTLEntry*(pCertContext: PCCERT_CONTEXT, pCtlEntry: PCTL_ENTRY, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertGetCRLFromStore*(hCertStore: HCERTSTORE, pIssuerContext: PCCERT_CONTEXT, pPrevCrlContext: PCCRL_CONTEXT, pdwFlags: ptr DWORD): PCCRL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertCreateCRLContext*(dwCertEncodingType: DWORD, pbCrlEncoded: ptr BYTE, cbCrlEncoded: DWORD): PCCRL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertSetCRLContextProperty*(pCrlContext: PCCRL_CONTEXT, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertGetCRLContextProperty*(pCrlContext: PCCRL_CONTEXT, dwPropId: DWORD, pvData: pointer, pcbData: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertEnumCRLContextProperties*(pCrlContext: PCCRL_CONTEXT, dwPropId: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertFindCertificateInCRL*(pCert: PCCERT_CONTEXT, pCrlContext: PCCRL_CONTEXT, dwFlags: DWORD, pvReserved: pointer, ppCrlEntry: ptr PCRL_ENTRY): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertIsValidCRLForCertificate*(pCert: PCCERT_CONTEXT, pCrl: PCCRL_CONTEXT, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertAddEncodedCertificateToStore*(hCertStore: HCERTSTORE, dwCertEncodingType: DWORD, pbCertEncoded: ptr BYTE, cbCertEncoded: DWORD, dwAddDisposition: DWORD, ppCertContext: ptr PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertAddCertificateContextToStore*(hCertStore: HCERTSTORE, pCertContext: PCCERT_CONTEXT, dwAddDisposition: DWORD, ppStoreContext: ptr PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertAddSerializedElementToStore*(hCertStore: HCERTSTORE, pbElement: ptr BYTE, cbElement: DWORD, dwAddDisposition: DWORD, dwFlags: DWORD, dwContextTypeFlags: DWORD, pdwContextType: ptr DWORD, ppvContext: ptr pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertDeleteCertificateFromStore*(pCertContext: PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertAddEncodedCRLToStore*(hCertStore: HCERTSTORE, dwCertEncodingType: DWORD, pbCrlEncoded: ptr BYTE, cbCrlEncoded: DWORD, dwAddDisposition: DWORD, ppCrlContext: ptr PCCRL_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertAddCRLContextToStore*(hCertStore: HCERTSTORE, pCrlContext: PCCRL_CONTEXT, dwAddDisposition: DWORD, ppStoreContext: ptr PCCRL_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertSerializeCertificateStoreElement*(pCertContext: PCCERT_CONTEXT, dwFlags: DWORD, pbElement: ptr BYTE, pcbElement: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertSerializeCRLStoreElement*(pCrlContext: PCCRL_CONTEXT, dwFlags: DWORD, pbElement: ptr BYTE, pcbElement: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertDuplicateCTLContext*(pCtlContext: PCCTL_CONTEXT): PCCTL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertCreateCTLContext*(dwMsgAndCertEncodingType: DWORD, pbCtlEncoded: ptr BYTE, cbCtlEncoded: DWORD): PCCTL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertFreeCTLContext*(pCtlContext: PCCTL_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertSetCTLContextProperty*(pCtlContext: PCCTL_CONTEXT, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertGetCTLContextProperty*(pCtlContext: PCCTL_CONTEXT, dwPropId: DWORD, pvData: pointer, pcbData: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertEnumCTLContextProperties*(pCtlContext: PCCTL_CONTEXT, dwPropId: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertEnumCTLsInStore*(hCertStore: HCERTSTORE, pPrevCtlContext: PCCTL_CONTEXT): PCCTL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertFindSubjectInCTL*(dwEncodingType: DWORD, dwSubjectType: DWORD, pvSubject: pointer, pCtlContext: PCCTL_CONTEXT, dwFlags: DWORD): PCTL_ENTRY {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertFindCTLInStore*(hCertStore: HCERTSTORE, dwMsgAndCertEncodingType: DWORD, dwFindFlags: DWORD, dwFindType: DWORD, pvFindPara: pointer, pPrevCtlContext: PCCTL_CONTEXT): PCCTL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertAddEncodedCTLToStore*(hCertStore: HCERTSTORE, dwMsgAndCertEncodingType: DWORD, pbCtlEncoded: ptr BYTE, cbCtlEncoded: DWORD, dwAddDisposition: DWORD, ppCtlContext: ptr PCCTL_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertAddCTLContextToStore*(hCertStore: HCERTSTORE, pCtlContext: PCCTL_CONTEXT, dwAddDisposition: DWORD, ppStoreContext: ptr PCCTL_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertSerializeCTLStoreElement*(pCtlContext: PCCTL_CONTEXT, dwFlags: DWORD, pbElement: ptr BYTE, pcbElement: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertDeleteCTLFromStore*(pCtlContext: PCCTL_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertAddCertificateLinkToStore*(hCertStore: HCERTSTORE, pCertContext: PCCERT_CONTEXT, dwAddDisposition: DWORD, ppStoreContext: ptr PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertAddCRLLinkToStore*(hCertStore: HCERTSTORE, pCrlContext: PCCRL_CONTEXT, dwAddDisposition: DWORD, ppStoreContext: ptr PCCRL_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertAddCTLLinkToStore*(hCertStore: HCERTSTORE, pCtlContext: PCCTL_CONTEXT, dwAddDisposition: DWORD, ppStoreContext: ptr PCCTL_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertAddStoreToCollection*(hCollectionStore: HCERTSTORE, hSiblingStore: HCERTSTORE, dwUpdateFlags: DWORD, dwPriority: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertRemoveStoreFromCollection*(hCollectionStore: HCERTSTORE, hSiblingStore: HCERTSTORE): void {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertControlStore*(hCertStore: HCERTSTORE, dwFlags: DWORD, dwCtrlType: DWORD, pvCtrlPara: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertSetStoreProperty*(hCertStore: HCERTSTORE, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertGetStoreProperty*(hCertStore: HCERTSTORE, dwPropId: DWORD, pvData: pointer, pcbData: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertRegisterSystemStore*(pvSystemStore: pointer, dwFlags: DWORD, pStoreInfo: PCERT_SYSTEM_STORE_INFO, pvReserved: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertRegisterPhysicalStore*(pvSystemStore: pointer, dwFlags: DWORD, pwszStoreName: LPCWSTR, pStoreInfo: PCERT_PHYSICAL_STORE_INFO, pvReserved: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertUnregisterSystemStore*(pvSystemStore: pointer, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertUnregisterPhysicalStore*(pvSystemStore: pointer, dwFlags: DWORD, pwszStoreName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertEnumSystemStoreLocation*(dwFlags: DWORD, pvArg: pointer, pfnEnum: PFN_CERT_ENUM_SYSTEM_STORE_LOCATION): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertEnumSystemStore*(dwFlags: DWORD, pvSystemStoreLocationPara: pointer, pvArg: pointer, pfnEnum: PFN_CERT_ENUM_SYSTEM_STORE): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertEnumPhysicalStore*(pvSystemStore: pointer, dwFlags: DWORD, pvArg: pointer, pfnEnum: PFN_CERT_ENUM_PHYSICAL_STORE): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertGetEnhancedKeyUsage*(pCertContext: PCCERT_CONTEXT, dwFlags: DWORD, pUsage: PCERT_ENHKEY_USAGE, pcbUsage: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertSetEnhancedKeyUsage*(pCertContext: PCCERT_CONTEXT, pUsage: PCERT_ENHKEY_USAGE): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertAddEnhancedKeyUsageIdentifier*(pCertContext: PCCERT_CONTEXT, pszUsageIdentifier: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertRemoveEnhancedKeyUsageIdentifier*(pCertContext: PCCERT_CONTEXT, pszUsageIdentifier: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertGetValidUsages*(cCerts: DWORD, rghCerts: ptr PCCERT_CONTEXT, cNumOIDs: ptr int32, rghOIDs: ptr LPSTR, pcbOIDs: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptMsgGetAndVerifySigner*(hCryptMsg: HCRYPTMSG, cSignerStore: DWORD, rghSignerStore: ptr HCERTSTORE, dwFlags: DWORD, ppSigner: ptr PCCERT_CONTEXT, pdwSignerIndex: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptMsgSignCTL*(dwMsgEncodingType: DWORD, pbCtlContent: ptr BYTE, cbCtlContent: DWORD, pSignInfo: PCMSG_SIGNED_ENCODE_INFO, dwFlags: DWORD, pbEncoded: ptr BYTE, pcbEncoded: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptMsgEncodeAndSignCTL*(dwMsgEncodingType: DWORD, pCtlInfo: PCTL_INFO, pSignInfo: PCMSG_SIGNED_ENCODE_INFO, dwFlags: DWORD, pbEncoded: ptr BYTE, pcbEncoded: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertFindSubjectInSortedCTL*(pSubjectIdentifier: PCRYPT_DATA_BLOB, pCtlContext: PCCTL_CONTEXT, dwFlags: DWORD, pvReserved: pointer, pEncodedAttributes: PCRYPT_DER_BLOB): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertEnumSubjectInSortedCTL*(pCtlContext: PCCTL_CONTEXT, ppvNextSubject: ptr pointer, pSubjectIdentifier: PCRYPT_DER_BLOB, pEncodedAttributes: PCRYPT_DER_BLOB): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertVerifyCTLUsage*(dwEncodingType: DWORD, dwSubjectType: DWORD, pvSubject: pointer, pSubjectUsage: PCTL_USAGE, dwFlags: DWORD, pVerifyUsagePara: PCTL_VERIFY_USAGE_PARA, pVerifyUsageStatus: PCTL_VERIFY_USAGE_STATUS): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertVerifyRevocation*(dwEncodingType: DWORD, dwRevType: DWORD, cContext: DWORD, rgpvContext: ptr PVOID, dwFlags: DWORD, pRevPara: PCERT_REVOCATION_PARA, pRevStatus: PCERT_REVOCATION_STATUS): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertCompareIntegerBlob*(pInt1: PCRYPT_INTEGER_BLOB, pInt2: PCRYPT_INTEGER_BLOB): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertCompareCertificate*(dwCertEncodingType: DWORD, pCertId1: PCERT_INFO, pCertId2: PCERT_INFO): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertCompareCertificateName*(dwCertEncodingType: DWORD, pCertName1: PCERT_NAME_BLOB, pCertName2: PCERT_NAME_BLOB): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertIsRDNAttrsInCertificateName*(dwCertEncodingType: DWORD, dwFlags: DWORD, pCertName: PCERT_NAME_BLOB, pRDN: PCERT_RDN): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertComparePublicKeyInfo*(dwCertEncodingType: DWORD, pPublicKey1: PCERT_PUBLIC_KEY_INFO, pPublicKey2: PCERT_PUBLIC_KEY_INFO): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertGetPublicKeyLength*(dwCertEncodingType: DWORD, pPublicKey: PCERT_PUBLIC_KEY_INFO): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptVerifyCertificateSignature*(hCryptProv: HCRYPTPROV_LEGACY, dwCertEncodingType: DWORD, pbEncoded: ptr BYTE, cbEncoded: DWORD, pPublicKey: PCERT_PUBLIC_KEY_INFO): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptVerifyCertificateSignatureEx*(hCryptProv: HCRYPTPROV_LEGACY, dwCertEncodingType: DWORD, dwSubjectType: DWORD, pvSubject: pointer, dwIssuerType: DWORD, pvIssuer: pointer, dwFlags: DWORD, pvExtra: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertIsStrongHashToSign*(pStrongSignPara: PCCERT_STRONG_SIGN_PARA, pwszCNGHashAlgid: LPCWSTR, pSigningCert: PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptHashToBeSigned*(hCryptProv: HCRYPTPROV_LEGACY, dwCertEncodingType: DWORD, pbEncoded: ptr BYTE, cbEncoded: DWORD, pbComputedHash: ptr BYTE, pcbComputedHash: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptHashCertificate*(hCryptProv: HCRYPTPROV_LEGACY, Algid: ALG_ID, dwFlags: DWORD, pbEncoded: ptr BYTE, cbEncoded: DWORD, pbComputedHash: ptr BYTE, pcbComputedHash: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptHashCertificate2*(pwszCNGHashAlgid: LPCWSTR, dwFlags: DWORD, pvReserved: pointer, pbEncoded: ptr BYTE, cbEncoded: DWORD, pbComputedHash: ptr BYTE, pcbComputedHash: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptSignCertificate*(hCryptProvOrNCryptKey: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, dwKeySpec: DWORD, dwCertEncodingType: DWORD, pbEncodedToBeSigned: ptr BYTE, cbEncodedToBeSigned: DWORD, pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, pvHashAuxInfo: pointer, pbSignature: ptr BYTE, pcbSignature: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptSignAndEncodeCertificate*(hCryptProvOrNCryptKey: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, dwKeySpec: DWORD, dwCertEncodingType: DWORD, lpszStructType: LPCSTR, pvStructInfo: pointer, pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, pvHashAuxInfo: pointer, pbEncoded: ptr BYTE, pcbEncoded: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertVerifyTimeValidity*(pTimeToVerify: LPFILETIME, pCertInfo: PCERT_INFO): LONG {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertVerifyCRLTimeValidity*(pTimeToVerify: LPFILETIME, pCrlInfo: PCRL_INFO): LONG {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertVerifyValidityNesting*(pSubjectInfo: PCERT_INFO, pIssuerInfo: PCERT_INFO): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertVerifyCRLRevocation*(dwCertEncodingType: DWORD, pCertId: PCERT_INFO, cCrlInfo: DWORD, rgpCrlInfo: ptr PCRL_INFO): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertAlgIdToOID*(dwAlgId: DWORD): LPCSTR {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertOIDToAlgId*(pszObjId: LPCSTR): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertFindExtension*(pszObjId: LPCSTR, cExtensions: DWORD, rgExtensions: ptr CERT_EXTENSION): PCERT_EXTENSION {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertFindAttribute*(pszObjId: LPCSTR, cAttr: DWORD, rgAttr: ptr CRYPT_ATTRIBUTE): PCRYPT_ATTRIBUTE {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertFindRDNAttr*(pszObjId: LPCSTR, pName: PCERT_NAME_INFO): PCERT_RDN_ATTR {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertGetIntendedKeyUsage*(dwCertEncodingType: DWORD, pCertInfo: PCERT_INFO, pbKeyUsage: ptr BYTE, cbKeyUsage: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptInstallDefaultContext*(hCryptProv: HCRYPTPROV, dwDefaultType: DWORD, pvDefaultPara: pointer, dwFlags: DWORD, pvReserved: pointer, phDefaultContext: ptr HCRYPTDEFAULTCONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptUninstallDefaultContext*(hDefaultContext: HCRYPTDEFAULTCONTEXT, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptExportPublicKeyInfo*(hCryptProvOrNCryptKey: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, dwKeySpec: DWORD, dwCertEncodingType: DWORD, pInfo: PCERT_PUBLIC_KEY_INFO, pcbInfo: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptExportPublicKeyInfoEx*(hCryptProvOrNCryptKey: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, dwKeySpec: DWORD, dwCertEncodingType: DWORD, pszPublicKeyObjId: LPSTR, dwFlags: DWORD, pvAuxInfo: pointer, pInfo: PCERT_PUBLIC_KEY_INFO, pcbInfo: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptExportPublicKeyInfoFromBCryptKeyHandle*(hBCryptKey: BCRYPT_KEY_HANDLE, dwCertEncodingType: DWORD, pszPublicKeyObjId: LPSTR, dwFlags: DWORD, pvAuxInfo: pointer, pInfo: PCERT_PUBLIC_KEY_INFO, pcbInfo: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptImportPublicKeyInfo*(hCryptProv: HCRYPTPROV, dwCertEncodingType: DWORD, pInfo: PCERT_PUBLIC_KEY_INFO, phKey: ptr HCRYPTKEY): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptImportPublicKeyInfoEx*(hCryptProv: HCRYPTPROV, dwCertEncodingType: DWORD, pInfo: PCERT_PUBLIC_KEY_INFO, aiKeyAlg: ALG_ID, dwFlags: DWORD, pvAuxInfo: pointer, phKey: ptr HCRYPTKEY): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptImportPublicKeyInfoEx2*(dwCertEncodingType: DWORD, pInfo: PCERT_PUBLIC_KEY_INFO, dwFlags: DWORD, pvAuxInfo: pointer, phKey: ptr BCRYPT_KEY_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptAcquireCertificatePrivateKey*(pCert: PCCERT_CONTEXT, dwFlags: DWORD, pvParameters: pointer, phCryptProvOrNCryptKey: ptr HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, pdwKeySpec: ptr DWORD, pfCallerFreeProvOrNCryptKey: ptr WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptFindCertificateKeyProvInfo*(pCert: PCCERT_CONTEXT, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptImportPKCS8*(sPrivateKeyAndParams: CRYPT_PKCS8_IMPORT_PARAMS, dwFlags: DWORD, phCryptProv: ptr HCRYPTPROV, pvAuxInfo: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptExportPKCS8*(hCryptProv: HCRYPTPROV, dwKeySpec: DWORD, pszPrivateKeyObjId: LPSTR, dwFlags: DWORD, pvAuxInfo: pointer, pbPrivateKeyBlob: ptr BYTE, pcbPrivateKeyBlob: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptHashPublicKeyInfo*(hCryptProv: HCRYPTPROV_LEGACY, Algid: ALG_ID, dwFlags: DWORD, dwCertEncodingType: DWORD, pInfo: PCERT_PUBLIC_KEY_INFO, pbComputedHash: ptr BYTE, pcbComputedHash: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertRDNValueToStrA*(dwValueType: DWORD, pValue: PCERT_RDN_VALUE_BLOB, psz: LPSTR, csz: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertRDNValueToStrW*(dwValueType: DWORD, pValue: PCERT_RDN_VALUE_BLOB, psz: LPWSTR, csz: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertNameToStrA*(dwCertEncodingType: DWORD, pName: PCERT_NAME_BLOB, dwStrType: DWORD, psz: LPSTR, csz: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertNameToStrW*(dwCertEncodingType: DWORD, pName: PCERT_NAME_BLOB, dwStrType: DWORD, psz: LPWSTR, csz: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertStrToNameA*(dwCertEncodingType: DWORD, pszX500: LPCSTR, dwStrType: DWORD, pvReserved: pointer, pbEncoded: ptr BYTE, pcbEncoded: ptr DWORD, ppszError: ptr LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertStrToNameW*(dwCertEncodingType: DWORD, pszX500: LPCWSTR, dwStrType: DWORD, pvReserved: pointer, pbEncoded: ptr BYTE, pcbEncoded: ptr DWORD, ppszError: ptr LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertGetNameStringA*(pCertContext: PCCERT_CONTEXT, dwType: DWORD, dwFlags: DWORD, pvTypePara: pointer, pszNameString: LPSTR, cchNameString: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertGetNameStringW*(pCertContext: PCCERT_CONTEXT, dwType: DWORD, dwFlags: DWORD, pvTypePara: pointer, pszNameString: LPWSTR, cchNameString: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptSignMessage*(pSignPara: PCRYPT_SIGN_MESSAGE_PARA, fDetachedSignature: WINBOOL, cToBeSigned: DWORD, rgpbToBeSigned: ptr ptr BYTE, rgcbToBeSigned: ptr DWORD, pbSignedBlob: ptr BYTE, pcbSignedBlob: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptVerifyMessageSignature*(pVerifyPara: PCRYPT_VERIFY_MESSAGE_PARA, dwSignerIndex: DWORD, pbSignedBlob: ptr BYTE, cbSignedBlob: DWORD, pbDecoded: ptr BYTE, pcbDecoded: ptr DWORD, ppSignerCert: ptr PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptGetMessageSignerCount*(dwMsgEncodingType: DWORD, pbSignedBlob: ptr BYTE, cbSignedBlob: DWORD): LONG {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptGetMessageCertificates*(dwMsgAndCertEncodingType: DWORD, hCryptProv: HCRYPTPROV_LEGACY, dwFlags: DWORD, pbSignedBlob: ptr BYTE, cbSignedBlob: DWORD): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptVerifyDetachedMessageSignature*(pVerifyPara: PCRYPT_VERIFY_MESSAGE_PARA, dwSignerIndex: DWORD, pbDetachedSignBlob: ptr BYTE, cbDetachedSignBlob: DWORD, cToBeSigned: DWORD, rgpbToBeSigned: ptr ptr BYTE, rgcbToBeSigned: ptr DWORD, ppSignerCert: ptr PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptEncryptMessage*(pEncryptPara: PCRYPT_ENCRYPT_MESSAGE_PARA, cRecipientCert: DWORD, rgpRecipientCert: ptr PCCERT_CONTEXT, pbToBeEncrypted: ptr BYTE, cbToBeEncrypted: DWORD, pbEncryptedBlob: ptr BYTE, pcbEncryptedBlob: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptDecryptMessage*(pDecryptPara: PCRYPT_DECRYPT_MESSAGE_PARA, pbEncryptedBlob: ptr BYTE, cbEncryptedBlob: DWORD, pbDecrypted: ptr BYTE, pcbDecrypted: ptr DWORD, ppXchgCert: ptr PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptSignAndEncryptMessage*(pSignPara: PCRYPT_SIGN_MESSAGE_PARA, pEncryptPara: PCRYPT_ENCRYPT_MESSAGE_PARA, cRecipientCert: DWORD, rgpRecipientCert: ptr PCCERT_CONTEXT, pbToBeSignedAndEncrypted: ptr BYTE, cbToBeSignedAndEncrypted: DWORD, pbSignedAndEncryptedBlob: ptr BYTE, pcbSignedAndEncryptedBlob: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptDecryptAndVerifyMessageSignature*(pDecryptPara: PCRYPT_DECRYPT_MESSAGE_PARA, pVerifyPara: PCRYPT_VERIFY_MESSAGE_PARA, dwSignerIndex: DWORD, pbEncryptedBlob: ptr BYTE, cbEncryptedBlob: DWORD, pbDecrypted: ptr BYTE, pcbDecrypted: ptr DWORD, ppXchgCert: ptr PCCERT_CONTEXT, ppSignerCert: ptr PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptDecodeMessage*(dwMsgTypeFlags: DWORD, pDecryptPara: PCRYPT_DECRYPT_MESSAGE_PARA, pVerifyPara: PCRYPT_VERIFY_MESSAGE_PARA, dwSignerIndex: DWORD, pbEncodedBlob: ptr BYTE, cbEncodedBlob: DWORD, dwPrevInnerContentType: DWORD, pdwMsgType: ptr DWORD, pdwInnerContentType: ptr DWORD, pbDecoded: ptr BYTE, pcbDecoded: ptr DWORD, ppXchgCert: ptr PCCERT_CONTEXT, ppSignerCert: ptr PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptHashMessage*(pHashPara: PCRYPT_HASH_MESSAGE_PARA, fDetachedHash: WINBOOL, cToBeHashed: DWORD, rgpbToBeHashed: ptr ptr BYTE, rgcbToBeHashed: ptr DWORD, pbHashedBlob: ptr BYTE, pcbHashedBlob: ptr DWORD, pbComputedHash: ptr BYTE, pcbComputedHash: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptVerifyMessageHash*(pHashPara: PCRYPT_HASH_MESSAGE_PARA, pbHashedBlob: ptr BYTE, cbHashedBlob: DWORD, pbToBeHashed: ptr BYTE, pcbToBeHashed: ptr DWORD, pbComputedHash: ptr BYTE, pcbComputedHash: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptVerifyDetachedMessageHash*(pHashPara: PCRYPT_HASH_MESSAGE_PARA, pbDetachedHashBlob: ptr BYTE, cbDetachedHashBlob: DWORD, cToBeHashed: DWORD, rgpbToBeHashed: ptr ptr BYTE, rgcbToBeHashed: ptr DWORD, pbComputedHash: ptr BYTE, pcbComputedHash: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptSignMessageWithKey*(pSignPara: PCRYPT_KEY_SIGN_MESSAGE_PARA, pbToBeSigned: ptr BYTE, cbToBeSigned: DWORD, pbSignedBlob: ptr BYTE, pcbSignedBlob: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptVerifyMessageSignatureWithKey*(pVerifyPara: PCRYPT_KEY_VERIFY_MESSAGE_PARA, pPublicKeyInfo: PCERT_PUBLIC_KEY_INFO, pbSignedBlob: ptr BYTE, cbSignedBlob: DWORD, pbDecoded: ptr BYTE, pcbDecoded: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertOpenSystemStoreA*(hProv: HCRYPTPROV_LEGACY, szSubsystemProtocol: LPCSTR): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertOpenSystemStoreW*(hProv: HCRYPTPROV_LEGACY, szSubsystemProtocol: LPCWSTR): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertAddEncodedCertificateToSystemStoreA*(szCertStoreName: LPCSTR, pbCertEncoded: ptr BYTE, cbCertEncoded: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertAddEncodedCertificateToSystemStoreW*(szCertStoreName: LPCWSTR, pbCertEncoded: ptr BYTE, cbCertEncoded: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc FindCertsByIssuer*(pCertChains: PCERT_CHAIN, pcbCertChains: ptr DWORD, pcCertChains: ptr DWORD, pbEncodedIssuerName: ptr BYTE, cbEncodedIssuerName: DWORD, pwszPurpose: LPCWSTR, dwKeySpec: DWORD): HRESULT {.winapi, stdcall, dynlib: "wintrust", importc.} proc CryptQueryObject*(dwObjectType: DWORD, pvObject: pointer, dwExpectedContentTypeFlags: DWORD, dwExpectedFormatTypeFlags: DWORD, dwFlags: DWORD, pdwMsgAndCertEncodingType: ptr DWORD, pdwContentType: ptr DWORD, pdwFormatType: ptr DWORD, phCertStore: ptr HCERTSTORE, phMsg: ptr HCRYPTMSG, ppvContext: ptr pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptMemAlloc*(cbSize: ULONG): LPVOID {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptMemRealloc*(pv: LPVOID, cbSize: ULONG): LPVOID {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptMemFree*(pv: LPVOID): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptCreateAsyncHandle*(dwFlags: DWORD, phAsync: PHCRYPTASYNC): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptSetAsyncParam*(hAsync: HCRYPTASYNC, pszParamOid: LPSTR, pvParam: LPVOID, pfnFree: PFN_CRYPT_ASYNC_PARAM_FREE_FUNC): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptGetAsyncParam*(hAsync: HCRYPTASYNC, pszParamOid: LPSTR, ppvParam: ptr LPVOID, ppfnFree: ptr PFN_CRYPT_ASYNC_PARAM_FREE_FUNC): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptCloseAsyncHandle*(hAsync: HCRYPTASYNC): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptRetrieveObjectByUrlA*(pszUrl: LPCSTR, pszObjectOid: LPCSTR, dwRetrievalFlags: DWORD, dwTimeout: DWORD, ppvObject: ptr LPVOID, hAsyncRetrieve: HCRYPTASYNC, pCredentials: PCRYPT_CREDENTIALS, pvVerify: LPVOID, pAuxInfo: PCRYPT_RETRIEVE_AUX_INFO): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} proc CryptRetrieveObjectByUrlW*(pszUrl: LPCWSTR, pszObjectOid: LPCSTR, dwRetrievalFlags: DWORD, dwTimeout: DWORD, ppvObject: ptr LPVOID, hAsyncRetrieve: HCRYPTASYNC, pCredentials: PCRYPT_CREDENTIALS, pvVerify: LPVOID, pAuxInfo: PCRYPT_RETRIEVE_AUX_INFO): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} proc CryptInstallCancelRetrieval*(pfnCancel: PFN_CRYPT_CANCEL_RETRIEVAL, pvArg: pointer, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} proc CryptUninstallCancelRetrieval*(dwFlags: DWORD, pvReserved: pointer): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} proc CryptCancelAsyncRetrieval*(hAsyncRetrieval: HCRYPTASYNC): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} proc CryptGetObjectUrl*(pszUrlOid: LPCSTR, pvPara: LPVOID, dwFlags: DWORD, pUrlArray: PCRYPT_URL_ARRAY, pcbUrlArray: ptr DWORD, pUrlInfo: PCRYPT_URL_INFO, pcbUrlInfo: ptr DWORD, pvReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} proc CryptGetTimeValidObject*(pszTimeValidOid: LPCSTR, pvPara: LPVOID, pIssuer: PCCERT_CONTEXT, pftValidFor: LPFILETIME, dwFlags: DWORD, dwTimeout: DWORD, ppvObject: ptr LPVOID, pCredentials: PCRYPT_CREDENTIALS, pExtraInfo: PCRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} proc CryptFlushTimeValidObject*(pszFlushTimeValidOid: LPCSTR, pvPara: LPVOID, pIssuer: PCCERT_CONTEXT, dwFlags: DWORD, pvReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} proc CertCreateSelfSignCertificate*(hCryptProvOrNCryptKey: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, pSubjectIssuerBlob: PCERT_NAME_BLOB, dwFlags: DWORD, pKeyProvInfo: PCRYPT_KEY_PROV_INFO, pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, pStartTime: PSYSTEMTIME, pEndTime: PSYSTEMTIME, pExtensions: PCERT_EXTENSIONS): PCCERT_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptGetKeyIdentifierProperty*(pKeyIdentifier: ptr CRYPT_HASH_BLOB, dwPropId: DWORD, dwFlags: DWORD, pwszComputerName: LPCWSTR, pvReserved: pointer, pvData: pointer, pcbData: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptSetKeyIdentifierProperty*(pKeyIdentifier: ptr CRYPT_HASH_BLOB, dwPropId: DWORD, dwFlags: DWORD, pwszComputerName: LPCWSTR, pvReserved: pointer, pvData: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptEnumKeyIdentifierProperties*(pKeyIdentifier: ptr CRYPT_HASH_BLOB, dwPropId: DWORD, dwFlags: DWORD, pwszComputerName: LPCWSTR, pvReserved: pointer, pvArg: pointer, pfnEnum: PFN_CRYPT_ENUM_KEYID_PROP): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptCreateKeyIdentifierFromCSP*(dwCertEncodingType: DWORD, pszPubKeyOID: LPCSTR, pPubKeyStruc: ptr PUBLICKEYSTRUC, cbPubKeyStruc: DWORD, dwFlags: DWORD, pvReserved: pointer, pbHash: ptr BYTE, pcbHash: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertCreateCertificateChainEngine*(pConfig: PCERT_CHAIN_ENGINE_CONFIG, phChainEngine: ptr HCERTCHAINENGINE): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertFreeCertificateChainEngine*(hChainEngine: HCERTCHAINENGINE): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertResyncCertificateChainEngine*(hChainEngine: HCERTCHAINENGINE): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertGetCertificateChain*(hChainEngine: HCERTCHAINENGINE, pCertContext: PCCERT_CONTEXT, pTime: LPFILETIME, hAdditionalStore: HCERTSTORE, pChainPara: PCERT_CHAIN_PARA, dwFlags: DWORD, pvReserved: LPVOID, ppChainContext: ptr PCCERT_CHAIN_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertFreeCertificateChain*(pChainContext: PCCERT_CHAIN_CONTEXT): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertDuplicateCertificateChain*(pChainContext: PCCERT_CHAIN_CONTEXT): PCCERT_CHAIN_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertFindChainInStore*(hCertStore: HCERTSTORE, dwCertEncodingType: DWORD, dwFindFlags: DWORD, dwFindType: DWORD, pvFindPara: pointer, pPrevChainContext: PCCERT_CHAIN_CONTEXT): PCCERT_CHAIN_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertVerifyCertificateChainPolicy*(pszPolicyOID: LPCSTR, pChainContext: PCCERT_CHAIN_CONTEXT, pPolicyPara: PCERT_CHAIN_POLICY_PARA, pPolicyStatus: PCERT_CHAIN_POLICY_STATUS): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptStringToBinaryA*(pszString: LPCSTR, cchString: DWORD, dwFlags: DWORD, pbBinary: ptr BYTE, pcbBinary: ptr DWORD, pdwSkip: ptr DWORD, pdwFlags: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptStringToBinaryW*(pszString: LPCWSTR, cchString: DWORD, dwFlags: DWORD, pbBinary: ptr BYTE, pcbBinary: ptr DWORD, pdwSkip: ptr DWORD, pdwFlags: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptBinaryToStringA*(pbBinary: ptr BYTE, cbBinary: DWORD, dwFlags: DWORD, pszString: LPSTR, pcchString: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptBinaryToStringW*(pbBinary: ptr BYTE, cbBinary: DWORD, dwFlags: DWORD, pszString: LPWSTR, pcchString: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc PFXImportCertStore*(pPFX: ptr CRYPT_DATA_BLOB, szPassword: LPCWSTR, dwFlags: DWORD): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc.} proc PFXIsPFXBlob*(pPFX: ptr CRYPT_DATA_BLOB): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc PFXVerifyPassword*(pPFX: ptr CRYPT_DATA_BLOB, szPassword: LPCWSTR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc PFXExportCertStoreEx*(hStore: HCERTSTORE, pPFX: ptr CRYPT_DATA_BLOB, szPassword: LPCWSTR, pvPara: pointer, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc PFXExportCertStore*(hStore: HCERTSTORE, pPFX: ptr CRYPT_DATA_BLOB, szPassword: LPCWSTR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertOpenServerOcspResponse*(pChainContext: PCCERT_CHAIN_CONTEXT, dwFlags: DWORD, pvReserved: LPVOID): HCERT_SERVER_OCSP_RESPONSE {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertAddRefServerOcspResponse*(hServerOcspResponse: HCERT_SERVER_OCSP_RESPONSE): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertCloseServerOcspResponse*(hServerOcspResponse: HCERT_SERVER_OCSP_RESPONSE, dwFlags: DWORD): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertGetServerOcspResponseContext*(hServerOcspResponse: HCERT_SERVER_OCSP_RESPONSE, dwFlags: DWORD, pvReserved: LPVOID): PCCERT_SERVER_OCSP_RESPONSE_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertAddRefServerOcspResponseContext*(pServerOcspResponseContext: PCCERT_SERVER_OCSP_RESPONSE_CONTEXT): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertFreeServerOcspResponseContext*(pServerOcspResponseContext: PCCERT_SERVER_OCSP_RESPONSE_CONTEXT): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertRetrieveLogoOrBiometricInfo*(pCertContext: PCCERT_CONTEXT, lpszLogoOrBiometricType: LPCSTR, dwRetrievalFlags: DWORD, dwTimeout: DWORD, dwFlags: DWORD, pvReserved: pointer, ppbData: ptr ptr BYTE, pcbData: ptr DWORD, ppwszMimeType: ptr LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertSelectCertificateChains*(pSelectionContext: LPCGUID, dwFlags: DWORD, pChainParameters: PCCERT_SELECT_CHAIN_PARA, cCriteria: DWORD, rgpCriteria: PCCERT_SELECT_CRITERIA, hStore: HCERTSTORE, pcSelection: PDWORD, pprgpSelection: ptr ptr PCCERT_CHAIN_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CertFreeCertificateChainList*(prgpSelection: ptr PCCERT_CHAIN_CONTEXT): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptRetrieveTimeStamp*(wszUrl: LPCWSTR, dwRetrievalFlags: DWORD, dwTimeout: DWORD, pszHashId: LPCSTR, pPara: ptr CRYPT_TIMESTAMP_PARA, pbData: ptr BYTE, cbData: DWORD, ppTsContext: ptr PCRYPT_TIMESTAMP_CONTEXT, ppTsSigner: ptr PCCERT_CONTEXT, phStore: ptr HCERTSTORE): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptVerifyTimeStampSignature*(pbTSContentInfo: ptr BYTE, cbTSContentInfo: DWORD, pbData: ptr BYTE, cbData: DWORD, hAdditionalStore: HCERTSTORE, ppTsContext: ptr PCRYPT_TIMESTAMP_CONTEXT, ppTsSigner: ptr PCCERT_CONTEXT, phStore: ptr HCERTSTORE): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptProtectData*(pDataIn: ptr DATA_BLOB, szDataDescr: LPCWSTR, pOptionalEntropy: ptr DATA_BLOB, pvReserved: PVOID, pPromptStruct: ptr CRYPTPROTECT_PROMPTSTRUCT, dwFlags: DWORD, pDataOut: ptr DATA_BLOB): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptUnprotectData*(pDataIn: ptr DATA_BLOB, ppszDataDescr: ptr LPWSTR, pOptionalEntropy: ptr DATA_BLOB, pvReserved: PVOID, pPromptStruct: ptr CRYPTPROTECT_PROMPTSTRUCT, dwFlags: DWORD, pDataOut: ptr DATA_BLOB): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptProtectMemory*(pDataIn: LPVOID, cbDataIn: DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptUnprotectMemory*(pDataIn: LPVOID, cbDataIn: DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc CryptUpdateProtectedState*(pOldSid: PSID, pwszOldPassword: LPCWSTR, dwFlags: DWORD, pdwSuccessCount: ptr DWORD, pdwFailureCount: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} proc `pOtherName=`*(self: var CERT_ALT_NAME_ENTRY, x: PCERT_OTHER_NAME) {.inline.} = self.union1.pOtherName = x proc pOtherName*(self: CERT_ALT_NAME_ENTRY): PCERT_OTHER_NAME {.inline.} = self.union1.pOtherName proc pOtherName*(self: var CERT_ALT_NAME_ENTRY): var PCERT_OTHER_NAME {.inline.} = self.union1.pOtherName proc `pwszRfc822Name=`*(self: var CERT_ALT_NAME_ENTRY, x: LPWSTR) {.inline.} = self.union1.pwszRfc822Name = x proc pwszRfc822Name*(self: CERT_ALT_NAME_ENTRY): LPWSTR {.inline.} = self.union1.pwszRfc822Name proc pwszRfc822Name*(self: var CERT_ALT_NAME_ENTRY): var LPWSTR {.inline.} = self.union1.pwszRfc822Name proc `pwszDNSName=`*(self: var CERT_ALT_NAME_ENTRY, x: LPWSTR) {.inline.} = self.union1.pwszDNSName = x proc pwszDNSName*(self: CERT_ALT_NAME_ENTRY): LPWSTR {.inline.} = self.union1.pwszDNSName proc pwszDNSName*(self: var CERT_ALT_NAME_ENTRY): var LPWSTR {.inline.} = self.union1.pwszDNSName proc `DirectoryName=`*(self: var CERT_ALT_NAME_ENTRY, x: CERT_NAME_BLOB) {.inline.} = self.union1.DirectoryName = x proc DirectoryName*(self: CERT_ALT_NAME_ENTRY): CERT_NAME_BLOB {.inline.} = self.union1.DirectoryName proc DirectoryName*(self: var CERT_ALT_NAME_ENTRY): var CERT_NAME_BLOB {.inline.} = self.union1.DirectoryName proc `pwszURL=`*(self: var CERT_ALT_NAME_ENTRY, x: LPWSTR) {.inline.} = self.union1.pwszURL = x proc pwszURL*(self: CERT_ALT_NAME_ENTRY): LPWSTR {.inline.} = self.union1.pwszURL proc pwszURL*(self: var CERT_ALT_NAME_ENTRY): var LPWSTR {.inline.} = self.union1.pwszURL proc `IPAddress=`*(self: var CERT_ALT_NAME_ENTRY, x: CRYPT_DATA_BLOB) {.inline.} = self.union1.IPAddress = x proc IPAddress*(self: CERT_ALT_NAME_ENTRY): CRYPT_DATA_BLOB {.inline.} = self.union1.IPAddress proc IPAddress*(self: var CERT_ALT_NAME_ENTRY): var CRYPT_DATA_BLOB {.inline.} = self.union1.IPAddress proc `pszRegisteredID=`*(self: var CERT_ALT_NAME_ENTRY, x: LPSTR) {.inline.} = self.union1.pszRegisteredID = x proc pszRegisteredID*(self: CERT_ALT_NAME_ENTRY): LPSTR {.inline.} = self.union1.pszRegisteredID proc pszRegisteredID*(self: var CERT_ALT_NAME_ENTRY): var LPSTR {.inline.} = self.union1.pszRegisteredID proc `FullName=`*(self: var CRL_DIST_POINT_NAME, x: CERT_ALT_NAME_INFO) {.inline.} = self.union1.FullName = x proc FullName*(self: CRL_DIST_POINT_NAME): CERT_ALT_NAME_INFO {.inline.} = self.union1.FullName proc FullName*(self: var CRL_DIST_POINT_NAME): var CERT_ALT_NAME_INFO {.inline.} = self.union1.FullName proc `pTaggedCertRequest=`*(self: var CMC_TAGGED_REQUEST, x: PCMC_TAGGED_CERT_REQUEST) {.inline.} = self.union1.pTaggedCertRequest = x proc pTaggedCertRequest*(self: CMC_TAGGED_REQUEST): PCMC_TAGGED_CERT_REQUEST {.inline.} = self.union1.pTaggedCertRequest proc pTaggedCertRequest*(self: var CMC_TAGGED_REQUEST): var PCMC_TAGGED_CERT_REQUEST {.inline.} = self.union1.pTaggedCertRequest proc `dwFailInfo=`*(self: var CMC_STATUS_INFO, x: DWORD) {.inline.} = self.union1.dwFailInfo = x proc dwFailInfo*(self: CMC_STATUS_INFO): DWORD {.inline.} = self.union1.dwFailInfo proc dwFailInfo*(self: var CMC_STATUS_INFO): var DWORD {.inline.} = self.union1.dwFailInfo proc `pPendInfo=`*(self: var CMC_STATUS_INFO, x: PCMC_PEND_INFO) {.inline.} = self.union1.pPendInfo = x proc pPendInfo*(self: CMC_STATUS_INFO): PCMC_PEND_INFO {.inline.} = self.union1.pPendInfo proc pPendInfo*(self: var CMC_STATUS_INFO): var PCMC_PEND_INFO {.inline.} = self.union1.pPendInfo proc `dwNumBits=`*(self: var CERT_LOGOTYPE_IMAGE_INFO, x: DWORD) {.inline.} = self.union1.dwNumBits = x proc dwNumBits*(self: CERT_LOGOTYPE_IMAGE_INFO): DWORD {.inline.} = self.union1.dwNumBits proc dwNumBits*(self: var CERT_LOGOTYPE_IMAGE_INFO): var DWORD {.inline.} = self.union1.dwNumBits proc `dwTableSize=`*(self: var CERT_LOGOTYPE_IMAGE_INFO, x: DWORD) {.inline.} = self.union1.dwTableSize = x proc dwTableSize*(self: CERT_LOGOTYPE_IMAGE_INFO): DWORD {.inline.} = self.union1.dwTableSize proc dwTableSize*(self: var CERT_LOGOTYPE_IMAGE_INFO): var DWORD {.inline.} = self.union1.dwTableSize proc `pLogotypeDirectInfo=`*(self: var CERT_LOGOTYPE_INFO, x: PCERT_LOGOTYPE_DATA) {.inline.} = self.union1.pLogotypeDirectInfo = x proc pLogotypeDirectInfo*(self: CERT_LOGOTYPE_INFO): PCERT_LOGOTYPE_DATA {.inline.} = self.union1.pLogotypeDirectInfo proc pLogotypeDirectInfo*(self: var CERT_LOGOTYPE_INFO): var PCERT_LOGOTYPE_DATA {.inline.} = self.union1.pLogotypeDirectInfo proc `pLogotypeIndirectInfo=`*(self: var CERT_LOGOTYPE_INFO, x: PCERT_LOGOTYPE_REFERENCE) {.inline.} = self.union1.pLogotypeIndirectInfo = x proc pLogotypeIndirectInfo*(self: CERT_LOGOTYPE_INFO): PCERT_LOGOTYPE_REFERENCE {.inline.} = self.union1.pLogotypeIndirectInfo proc pLogotypeIndirectInfo*(self: var CERT_LOGOTYPE_INFO): var PCERT_LOGOTYPE_REFERENCE {.inline.} = self.union1.pLogotypeIndirectInfo proc `dwPredefined=`*(self: var CERT_BIOMETRIC_DATA, x: DWORD) {.inline.} = self.union1.dwPredefined = x proc dwPredefined*(self: CERT_BIOMETRIC_DATA): DWORD {.inline.} = self.union1.dwPredefined proc dwPredefined*(self: var CERT_BIOMETRIC_DATA): var DWORD {.inline.} = self.union1.dwPredefined proc `pszObjId=`*(self: var CERT_BIOMETRIC_DATA, x: LPSTR) {.inline.} = self.union1.pszObjId = x proc pszObjId*(self: CERT_BIOMETRIC_DATA): LPSTR {.inline.} = self.union1.pszObjId proc pszObjId*(self: var CERT_BIOMETRIC_DATA): var LPSTR {.inline.} = self.union1.pszObjId proc `pRevokedInfo=`*(self: var OCSP_BASIC_RESPONSE_ENTRY, x: POCSP_BASIC_REVOKED_INFO) {.inline.} = self.union1.pRevokedInfo = x proc pRevokedInfo*(self: OCSP_BASIC_RESPONSE_ENTRY): POCSP_BASIC_REVOKED_INFO {.inline.} = self.union1.pRevokedInfo proc pRevokedInfo*(self: var OCSP_BASIC_RESPONSE_ENTRY): var POCSP_BASIC_REVOKED_INFO {.inline.} = self.union1.pRevokedInfo proc `ByNameResponderId=`*(self: var OCSP_BASIC_RESPONSE_INFO, x: CERT_NAME_BLOB) {.inline.} = self.union1.ByNameResponderId = x proc ByNameResponderId*(self: OCSP_BASIC_RESPONSE_INFO): CERT_NAME_BLOB {.inline.} = self.union1.ByNameResponderId proc ByNameResponderId*(self: var OCSP_BASIC_RESPONSE_INFO): var CERT_NAME_BLOB {.inline.} = self.union1.ByNameResponderId proc `ByKeyResponderId=`*(self: var OCSP_BASIC_RESPONSE_INFO, x: CRYPT_HASH_BLOB) {.inline.} = self.union1.ByKeyResponderId = x proc ByKeyResponderId*(self: OCSP_BASIC_RESPONSE_INFO): CRYPT_HASH_BLOB {.inline.} = self.union1.ByKeyResponderId proc ByKeyResponderId*(self: var OCSP_BASIC_RESPONSE_INFO): var CRYPT_HASH_BLOB {.inline.} = self.union1.ByKeyResponderId proc `dwValue=`*(self: var CRYPT_OID_INFO, x: DWORD) {.inline.} = self.union1.dwValue = x proc dwValue*(self: CRYPT_OID_INFO): DWORD {.inline.} = self.union1.dwValue proc dwValue*(self: var CRYPT_OID_INFO): var DWORD {.inline.} = self.union1.dwValue proc `Algid=`*(self: var CRYPT_OID_INFO, x: ALG_ID) {.inline.} = self.union1.Algid = x proc algid*(self: CRYPT_OID_INFO): ALG_ID {.inline.} = self.union1.Algid proc algid*(self: var CRYPT_OID_INFO): var ALG_ID {.inline.} = self.union1.Algid proc `dwLength=`*(self: var CRYPT_OID_INFO, x: DWORD) {.inline.} = self.union1.dwLength = x proc dwLength*(self: CRYPT_OID_INFO): DWORD {.inline.} = self.union1.dwLength proc dwLength*(self: var CRYPT_OID_INFO): var DWORD {.inline.} = self.union1.dwLength proc `pvInfo=`*(self: var CERT_STRONG_SIGN_PARA, x: pointer) {.inline.} = self.union1.pvInfo = x proc pvInfo*(self: CERT_STRONG_SIGN_PARA): pointer {.inline.} = self.union1.pvInfo proc pvInfo*(self: var CERT_STRONG_SIGN_PARA): var pointer {.inline.} = self.union1.pvInfo proc `pSerializedInfo=`*(self: var CERT_STRONG_SIGN_PARA, x: PCERT_STRONG_SIGN_SERIALIZED_INFO) {.inline.} = self.union1.pSerializedInfo = x proc pSerializedInfo*(self: CERT_STRONG_SIGN_PARA): PCERT_STRONG_SIGN_SERIALIZED_INFO {.inline.} = self.union1.pSerializedInfo proc pSerializedInfo*(self: var CERT_STRONG_SIGN_PARA): var PCERT_STRONG_SIGN_SERIALIZED_INFO {.inline.} = self.union1.pSerializedInfo proc `pszOID=`*(self: var CERT_STRONG_SIGN_PARA, x: LPSTR) {.inline.} = self.union1.pszOID = x proc pszOID*(self: CERT_STRONG_SIGN_PARA): LPSTR {.inline.} = self.union1.pszOID proc pszOID*(self: var CERT_STRONG_SIGN_PARA): var LPSTR {.inline.} = self.union1.pszOID proc `IssuerSerialNumber=`*(self: var CERT_ID, x: CERT_ISSUER_SERIAL_NUMBER) {.inline.} = self.union1.IssuerSerialNumber = x proc IssuerSerialNumber*(self: CERT_ID): CERT_ISSUER_SERIAL_NUMBER {.inline.} = self.union1.IssuerSerialNumber proc IssuerSerialNumber*(self: var CERT_ID): var CERT_ISSUER_SERIAL_NUMBER {.inline.} = self.union1.IssuerSerialNumber proc `KeyId=`*(self: var CERT_ID, x: CRYPT_HASH_BLOB) {.inline.} = self.union1.KeyId = x proc KeyId*(self: CERT_ID): CRYPT_HASH_BLOB {.inline.} = self.union1.KeyId proc KeyId*(self: var CERT_ID): var CRYPT_HASH_BLOB {.inline.} = self.union1.KeyId proc `HashId=`*(self: var CERT_ID, x: CRYPT_HASH_BLOB) {.inline.} = self.union1.HashId = x proc HashId*(self: CERT_ID): CRYPT_HASH_BLOB {.inline.} = self.union1.HashId proc HashId*(self: var CERT_ID): var CRYPT_HASH_BLOB {.inline.} = self.union1.HashId proc `hCryptProv=`*(self: var CMSG_SIGNER_ENCODE_INFO, x: HCRYPTPROV) {.inline.} = self.union1.hCryptProv = x proc hCryptProv*(self: CMSG_SIGNER_ENCODE_INFO): HCRYPTPROV {.inline.} = self.union1.hCryptProv proc hCryptProv*(self: var CMSG_SIGNER_ENCODE_INFO): var HCRYPTPROV {.inline.} = self.union1.hCryptProv proc `hNCryptKey=`*(self: var CMSG_SIGNER_ENCODE_INFO, x: NCRYPT_KEY_HANDLE) {.inline.} = self.union1.hNCryptKey = x proc hNCryptKey*(self: CMSG_SIGNER_ENCODE_INFO): NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey proc hNCryptKey*(self: var CMSG_SIGNER_ENCODE_INFO): var NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey proc `pEphemeralAlgorithm=`*(self: var CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO, x: PCRYPT_ALGORITHM_IDENTIFIER) {.inline.} = self.union1.pEphemeralAlgorithm = x proc pEphemeralAlgorithm*(self: CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO): PCRYPT_ALGORITHM_IDENTIFIER {.inline.} = self.union1.pEphemeralAlgorithm proc pEphemeralAlgorithm*(self: var CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO): var PCRYPT_ALGORITHM_IDENTIFIER {.inline.} = self.union1.pEphemeralAlgorithm proc `pSenderId=`*(self: var CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO, x: PCERT_ID) {.inline.} = self.union1.pSenderId = x proc pSenderId*(self: CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO): PCERT_ID {.inline.} = self.union1.pSenderId proc pSenderId*(self: var CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO): var PCERT_ID {.inline.} = self.union1.pSenderId proc `hKeyEncryptionKey=`*(self: var CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO, x: HCRYPTKEY) {.inline.} = self.union1.hKeyEncryptionKey = x proc hKeyEncryptionKey*(self: CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO): HCRYPTKEY {.inline.} = self.union1.hKeyEncryptionKey proc hKeyEncryptionKey*(self: var CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO): var HCRYPTKEY {.inline.} = self.union1.hKeyEncryptionKey proc `pvKeyEncryptionKey=`*(self: var CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO, x: pointer) {.inline.} = self.union1.pvKeyEncryptionKey = x proc pvKeyEncryptionKey*(self: CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO): pointer {.inline.} = self.union1.pvKeyEncryptionKey proc pvKeyEncryptionKey*(self: var CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO): var pointer {.inline.} = self.union1.pvKeyEncryptionKey proc `pKeyTrans=`*(self: var CMSG_RECIPIENT_ENCODE_INFO, x: PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO) {.inline.} = self.union1.pKeyTrans = x proc pKeyTrans*(self: CMSG_RECIPIENT_ENCODE_INFO): PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO {.inline.} = self.union1.pKeyTrans proc pKeyTrans*(self: var CMSG_RECIPIENT_ENCODE_INFO): var PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO {.inline.} = self.union1.pKeyTrans proc `pKeyAgree=`*(self: var CMSG_RECIPIENT_ENCODE_INFO, x: PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO) {.inline.} = self.union1.pKeyAgree = x proc pKeyAgree*(self: CMSG_RECIPIENT_ENCODE_INFO): PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO {.inline.} = self.union1.pKeyAgree proc pKeyAgree*(self: var CMSG_RECIPIENT_ENCODE_INFO): var PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO {.inline.} = self.union1.pKeyAgree proc `pMailList=`*(self: var CMSG_RECIPIENT_ENCODE_INFO, x: PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO) {.inline.} = self.union1.pMailList = x proc pMailList*(self: CMSG_RECIPIENT_ENCODE_INFO): PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO {.inline.} = self.union1.pMailList proc pMailList*(self: var CMSG_RECIPIENT_ENCODE_INFO): var PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO {.inline.} = self.union1.pMailList proc `OriginatorCertId=`*(self: var CMSG_KEY_AGREE_RECIPIENT_INFO, x: CERT_ID) {.inline.} = self.union1.OriginatorCertId = x proc OriginatorCertId*(self: CMSG_KEY_AGREE_RECIPIENT_INFO): CERT_ID {.inline.} = self.union1.OriginatorCertId proc OriginatorCertId*(self: var CMSG_KEY_AGREE_RECIPIENT_INFO): var CERT_ID {.inline.} = self.union1.OriginatorCertId proc `OriginatorPublicKeyInfo=`*(self: var CMSG_KEY_AGREE_RECIPIENT_INFO, x: CERT_PUBLIC_KEY_INFO) {.inline.} = self.union1.OriginatorPublicKeyInfo = x proc OriginatorPublicKeyInfo*(self: CMSG_KEY_AGREE_RECIPIENT_INFO): CERT_PUBLIC_KEY_INFO {.inline.} = self.union1.OriginatorPublicKeyInfo proc OriginatorPublicKeyInfo*(self: var CMSG_KEY_AGREE_RECIPIENT_INFO): var CERT_PUBLIC_KEY_INFO {.inline.} = self.union1.OriginatorPublicKeyInfo proc `pKeyTrans=`*(self: var CMSG_CMS_RECIPIENT_INFO, x: PCMSG_KEY_TRANS_RECIPIENT_INFO) {.inline.} = self.union1.pKeyTrans = x proc pKeyTrans*(self: CMSG_CMS_RECIPIENT_INFO): PCMSG_KEY_TRANS_RECIPIENT_INFO {.inline.} = self.union1.pKeyTrans proc pKeyTrans*(self: var CMSG_CMS_RECIPIENT_INFO): var PCMSG_KEY_TRANS_RECIPIENT_INFO {.inline.} = self.union1.pKeyTrans proc `pKeyAgree=`*(self: var CMSG_CMS_RECIPIENT_INFO, x: PCMSG_KEY_AGREE_RECIPIENT_INFO) {.inline.} = self.union1.pKeyAgree = x proc pKeyAgree*(self: CMSG_CMS_RECIPIENT_INFO): PCMSG_KEY_AGREE_RECIPIENT_INFO {.inline.} = self.union1.pKeyAgree proc pKeyAgree*(self: var CMSG_CMS_RECIPIENT_INFO): var PCMSG_KEY_AGREE_RECIPIENT_INFO {.inline.} = self.union1.pKeyAgree proc `pMailList=`*(self: var CMSG_CMS_RECIPIENT_INFO, x: PCMSG_MAIL_LIST_RECIPIENT_INFO) {.inline.} = self.union1.pMailList = x proc pMailList*(self: CMSG_CMS_RECIPIENT_INFO): PCMSG_MAIL_LIST_RECIPIENT_INFO {.inline.} = self.union1.pMailList proc pMailList*(self: var CMSG_CMS_RECIPIENT_INFO): var PCMSG_MAIL_LIST_RECIPIENT_INFO {.inline.} = self.union1.pMailList proc `hCryptProv=`*(self: var CMSG_CTRL_DECRYPT_PARA, x: HCRYPTPROV) {.inline.} = self.union1.hCryptProv = x proc hCryptProv*(self: CMSG_CTRL_DECRYPT_PARA): HCRYPTPROV {.inline.} = self.union1.hCryptProv proc hCryptProv*(self: var CMSG_CTRL_DECRYPT_PARA): var HCRYPTPROV {.inline.} = self.union1.hCryptProv proc `hNCryptKey=`*(self: var CMSG_CTRL_DECRYPT_PARA, x: NCRYPT_KEY_HANDLE) {.inline.} = self.union1.hNCryptKey = x proc hNCryptKey*(self: CMSG_CTRL_DECRYPT_PARA): NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey proc hNCryptKey*(self: var CMSG_CTRL_DECRYPT_PARA): var NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey proc `hCryptProv=`*(self: var CMSG_CTRL_KEY_TRANS_DECRYPT_PARA, x: HCRYPTPROV) {.inline.} = self.union1.hCryptProv = x proc hCryptProv*(self: CMSG_CTRL_KEY_TRANS_DECRYPT_PARA): HCRYPTPROV {.inline.} = self.union1.hCryptProv proc hCryptProv*(self: var CMSG_CTRL_KEY_TRANS_DECRYPT_PARA): var HCRYPTPROV {.inline.} = self.union1.hCryptProv proc `hNCryptKey=`*(self: var CMSG_CTRL_KEY_TRANS_DECRYPT_PARA, x: NCRYPT_KEY_HANDLE) {.inline.} = self.union1.hNCryptKey = x proc hNCryptKey*(self: CMSG_CTRL_KEY_TRANS_DECRYPT_PARA): NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey proc hNCryptKey*(self: var CMSG_CTRL_KEY_TRANS_DECRYPT_PARA): var NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey proc `hCryptProv=`*(self: var CMSG_CTRL_KEY_AGREE_DECRYPT_PARA, x: HCRYPTPROV) {.inline.} = self.union1.hCryptProv = x proc hCryptProv*(self: CMSG_CTRL_KEY_AGREE_DECRYPT_PARA): HCRYPTPROV {.inline.} = self.union1.hCryptProv proc hCryptProv*(self: var CMSG_CTRL_KEY_AGREE_DECRYPT_PARA): var HCRYPTPROV {.inline.} = self.union1.hCryptProv proc `hNCryptKey=`*(self: var CMSG_CTRL_KEY_AGREE_DECRYPT_PARA, x: NCRYPT_KEY_HANDLE) {.inline.} = self.union1.hNCryptKey = x proc hNCryptKey*(self: CMSG_CTRL_KEY_AGREE_DECRYPT_PARA): NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey proc hNCryptKey*(self: var CMSG_CTRL_KEY_AGREE_DECRYPT_PARA): var NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey proc `hKeyEncryptionKey=`*(self: var CMSG_CTRL_MAIL_LIST_DECRYPT_PARA, x: HCRYPTKEY) {.inline.} = self.union1.hKeyEncryptionKey = x proc hKeyEncryptionKey*(self: CMSG_CTRL_MAIL_LIST_DECRYPT_PARA): HCRYPTKEY {.inline.} = self.union1.hKeyEncryptionKey proc hKeyEncryptionKey*(self: var CMSG_CTRL_MAIL_LIST_DECRYPT_PARA): var HCRYPTKEY {.inline.} = self.union1.hKeyEncryptionKey proc `pvKeyEncryptionKey=`*(self: var CMSG_CTRL_MAIL_LIST_DECRYPT_PARA, x: pointer) {.inline.} = self.union1.pvKeyEncryptionKey = x proc pvKeyEncryptionKey*(self: CMSG_CTRL_MAIL_LIST_DECRYPT_PARA): pointer {.inline.} = self.union1.pvKeyEncryptionKey proc pvKeyEncryptionKey*(self: var CMSG_CTRL_MAIL_LIST_DECRYPT_PARA): var pointer {.inline.} = self.union1.pvKeyEncryptionKey proc `hContentEncryptKey=`*(self: var CMSG_CONTENT_ENCRYPT_INFO, x: HCRYPTKEY) {.inline.} = self.union1.hContentEncryptKey = x proc hContentEncryptKey*(self: CMSG_CONTENT_ENCRYPT_INFO): HCRYPTKEY {.inline.} = self.union1.hContentEncryptKey proc hContentEncryptKey*(self: var CMSG_CONTENT_ENCRYPT_INFO): var HCRYPTKEY {.inline.} = self.union1.hContentEncryptKey proc `hCNGContentEncryptKey=`*(self: var CMSG_CONTENT_ENCRYPT_INFO, x: BCRYPT_KEY_HANDLE) {.inline.} = self.union1.hCNGContentEncryptKey = x proc hCNGContentEncryptKey*(self: CMSG_CONTENT_ENCRYPT_INFO): BCRYPT_KEY_HANDLE {.inline.} = self.union1.hCNGContentEncryptKey proc hCNGContentEncryptKey*(self: var CMSG_CONTENT_ENCRYPT_INFO): var BCRYPT_KEY_HANDLE {.inline.} = self.union1.hCNGContentEncryptKey proc `OriginatorCertId=`*(self: var CMSG_KEY_AGREE_ENCRYPT_INFO, x: CERT_ID) {.inline.} = self.union1.OriginatorCertId = x proc OriginatorCertId*(self: CMSG_KEY_AGREE_ENCRYPT_INFO): CERT_ID {.inline.} = self.union1.OriginatorCertId proc OriginatorCertId*(self: var CMSG_KEY_AGREE_ENCRYPT_INFO): var CERT_ID {.inline.} = self.union1.OriginatorCertId proc `OriginatorPublicKeyInfo=`*(self: var CMSG_KEY_AGREE_ENCRYPT_INFO, x: CERT_PUBLIC_KEY_INFO) {.inline.} = self.union1.OriginatorPublicKeyInfo = x proc OriginatorPublicKeyInfo*(self: CMSG_KEY_AGREE_ENCRYPT_INFO): CERT_PUBLIC_KEY_INFO {.inline.} = self.union1.OriginatorPublicKeyInfo proc OriginatorPublicKeyInfo*(self: var CMSG_KEY_AGREE_ENCRYPT_INFO): var CERT_PUBLIC_KEY_INFO {.inline.} = self.union1.OriginatorPublicKeyInfo proc `hCryptProv=`*(self: var CERT_KEY_CONTEXT, x: HCRYPTPROV) {.inline.} = self.union1.hCryptProv = x proc hCryptProv*(self: CERT_KEY_CONTEXT): HCRYPTPROV {.inline.} = self.union1.hCryptProv proc hCryptProv*(self: var CERT_KEY_CONTEXT): var HCRYPTPROV {.inline.} = self.union1.hCryptProv proc `hNCryptKey=`*(self: var CERT_KEY_CONTEXT, x: NCRYPT_KEY_HANDLE) {.inline.} = self.union1.hNCryptKey = x proc hNCryptKey*(self: CERT_KEY_CONTEXT): NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey proc hNCryptKey*(self: var CERT_KEY_CONTEXT): var NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey proc `hKeyBase=`*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA, x: HKEY) {.inline.} = self.union1.hKeyBase = x proc hKeyBase*(self: CERT_SYSTEM_STORE_RELOCATE_PARA): HKEY {.inline.} = self.union1.hKeyBase proc hKeyBase*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA): var HKEY {.inline.} = self.union1.hKeyBase proc `pvBase=`*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA, x: pointer) {.inline.} = self.union1.pvBase = x proc pvBase*(self: CERT_SYSTEM_STORE_RELOCATE_PARA): pointer {.inline.} = self.union1.pvBase proc pvBase*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA): var pointer {.inline.} = self.union1.pvBase proc `pvSystemStore=`*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA, x: pointer) {.inline.} = self.union2.pvSystemStore = x proc pvSystemStore*(self: CERT_SYSTEM_STORE_RELOCATE_PARA): pointer {.inline.} = self.union2.pvSystemStore proc pvSystemStore*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA): var pointer {.inline.} = self.union2.pvSystemStore proc `pszSystemStore=`*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA, x: LPCSTR) {.inline.} = self.union2.pszSystemStore = x proc pszSystemStore*(self: CERT_SYSTEM_STORE_RELOCATE_PARA): LPCSTR {.inline.} = self.union2.pszSystemStore proc pszSystemStore*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA): var LPCSTR {.inline.} = self.union2.pszSystemStore proc `pwszSystemStore=`*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA, x: LPCWSTR) {.inline.} = self.union2.pwszSystemStore = x proc pwszSystemStore*(self: CERT_SYSTEM_STORE_RELOCATE_PARA): LPCWSTR {.inline.} = self.union2.pwszSystemStore proc pwszSystemStore*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA): var LPCWSTR {.inline.} = self.union2.pwszSystemStore proc `hCryptProv=`*(self: var CRYPT_KEY_SIGN_MESSAGE_PARA, x: HCRYPTPROV) {.inline.} = self.union1.hCryptProv = x proc hCryptProv*(self: CRYPT_KEY_SIGN_MESSAGE_PARA): HCRYPTPROV {.inline.} = self.union1.hCryptProv proc hCryptProv*(self: var CRYPT_KEY_SIGN_MESSAGE_PARA): var HCRYPTPROV {.inline.} = self.union1.hCryptProv proc `hNCryptKey=`*(self: var CRYPT_KEY_SIGN_MESSAGE_PARA, x: NCRYPT_KEY_HANDLE) {.inline.} = self.union1.hNCryptKey = x proc hNCryptKey*(self: CRYPT_KEY_SIGN_MESSAGE_PARA): NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey proc hNCryptKey*(self: var CRYPT_KEY_SIGN_MESSAGE_PARA): var NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey proc `cbStruct=`*(self: var HTTPSPolicyCallbackData, x: DWORD) {.inline.} = self.union1.cbStruct = x proc cbStruct*(self: HTTPSPolicyCallbackData): DWORD {.inline.} = self.union1.cbStruct proc cbStruct*(self: var HTTPSPolicyCallbackData): var DWORD {.inline.} = self.union1.cbStruct proc `cbSize=`*(self: var HTTPSPolicyCallbackData, x: DWORD) {.inline.} = self.union1.cbSize = x proc cbSize*(self: HTTPSPolicyCallbackData): DWORD {.inline.} = self.union1.cbSize proc cbSize*(self: var HTTPSPolicyCallbackData): var DWORD {.inline.} = self.union1.cbSize when winimUnicode: type CRYPT_PASSWORD_CREDENTIALS* = CRYPT_PASSWORD_CREDENTIALSW PCRYPT_PASSWORD_CREDENTIALS* = PCRYPT_PASSWORD_CREDENTIALSW const MS_DEF_PROV* = MS_DEF_PROV_W MS_ENHANCED_PROV* = MS_ENHANCED_PROV_W MS_STRONG_PROV* = MS_STRONG_PROV_W MS_DEF_RSA_SIG_PROV* = MS_DEF_RSA_SIG_PROV_W MS_DEF_RSA_SCHANNEL_PROV* = MS_DEF_RSA_SCHANNEL_PROV_W MS_DEF_DSS_PROV* = MS_DEF_DSS_PROV_W MS_DEF_DSS_DH_PROV* = MS_DEF_DSS_DH_PROV_W MS_ENH_DSS_DH_PROV* = MS_ENH_DSS_DH_PROV_W MS_DEF_DH_SCHANNEL_PROV* = MS_DEF_DH_SCHANNEL_PROV_W MS_SCARD_PROV* = MS_SCARD_PROV_W MS_ENH_RSA_AES_PROV_XP* = MS_ENH_RSA_AES_PROV_XP_W MS_ENH_RSA_AES_PROV* = MS_ENH_RSA_AES_PROV_W CREDENTIAL_OID_PASSWORD_CREDENTIALS* = CREDENTIAL_OID_PASSWORD_CREDENTIALS_W proc CryptAcquireContext*(phProv: ptr HCRYPTPROV, szContainer: LPCWSTR, szProvider: LPCWSTR, dwProvType: DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptAcquireContextW".} proc CryptSignHash*(hHash: HCRYPTHASH, dwKeySpec: DWORD, szDescription: LPCWSTR, dwFlags: DWORD, pbSignature: ptr BYTE, pdwSigLen: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptSignHashW".} proc CryptVerifySignature*(hHash: HCRYPTHASH, pbSignature: ptr BYTE, dwSigLen: DWORD, hPubKey: HCRYPTKEY, szDescription: LPCWSTR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptVerifySignatureW".} proc CryptSetProvider*(pszProvName: LPCWSTR, dwProvType: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptSetProviderW".} proc CryptSetProviderEx*(pszProvName: LPCWSTR, dwProvType: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptSetProviderExW".} proc CryptGetDefaultProvider*(dwProvType: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pszProvName: LPWSTR, pcbProvName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptGetDefaultProviderW".} proc CryptEnumProviderTypes*(dwIndex: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pdwProvType: ptr DWORD, szTypeName: LPWSTR, pcbTypeName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptEnumProviderTypesW".} proc CryptEnumProviders*(dwIndex: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pdwProvType: ptr DWORD, szProvName: LPWSTR, pcbProvName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptEnumProvidersW".} proc CertRDNValueToStr*(dwValueType: DWORD, pValue: PCERT_RDN_VALUE_BLOB, psz: LPWSTR, csz: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc: "CertRDNValueToStrW".} proc CertNameToStr*(dwCertEncodingType: DWORD, pName: PCERT_NAME_BLOB, dwStrType: DWORD, psz: LPWSTR, csz: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc: "CertNameToStrW".} proc CertStrToName*(dwCertEncodingType: DWORD, pszX500: LPCWSTR, dwStrType: DWORD, pvReserved: pointer, pbEncoded: ptr BYTE, pcbEncoded: ptr DWORD, ppszError: ptr LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CertStrToNameW".} proc CertGetNameString*(pCertContext: PCCERT_CONTEXT, dwType: DWORD, dwFlags: DWORD, pvTypePara: pointer, pszNameString: LPWSTR, cchNameString: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc: "CertGetNameStringW".} proc CertOpenSystemStore*(hProv: HCRYPTPROV_LEGACY, szSubsystemProtocol: LPCWSTR): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc: "CertOpenSystemStoreW".} proc CertAddEncodedCertificateToSystemStore*(szCertStoreName: LPCWSTR, pbCertEncoded: ptr BYTE, cbCertEncoded: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CertAddEncodedCertificateToSystemStoreW".} proc CryptRetrieveObjectByUrl*(pszUrl: LPCWSTR, pszObjectOid: LPCSTR, dwRetrievalFlags: DWORD, dwTimeout: DWORD, ppvObject: ptr LPVOID, hAsyncRetrieve: HCRYPTASYNC, pCredentials: PCRYPT_CREDENTIALS, pvVerify: LPVOID, pAuxInfo: PCRYPT_RETRIEVE_AUX_INFO): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc: "CryptRetrieveObjectByUrlW".} proc CryptStringToBinary*(pszString: LPCWSTR, cchString: DWORD, dwFlags: DWORD, pbBinary: ptr BYTE, pcbBinary: ptr DWORD, pdwSkip: ptr DWORD, pdwFlags: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CryptStringToBinaryW".} proc CryptBinaryToString*(pbBinary: ptr BYTE, cbBinary: DWORD, dwFlags: DWORD, pszString: LPWSTR, pcchString: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CryptBinaryToStringW".} when winimAnsi: type CRYPT_PASSWORD_CREDENTIALS* = CRYPT_PASSWORD_CREDENTIALSA PCRYPT_PASSWORD_CREDENTIALS* = PCRYPT_PASSWORD_CREDENTIALSA const MS_DEF_PROV* = MS_DEF_PROV_A MS_ENHANCED_PROV* = MS_ENHANCED_PROV_A MS_STRONG_PROV* = MS_STRONG_PROV_A MS_DEF_RSA_SIG_PROV* = MS_DEF_RSA_SIG_PROV_A MS_DEF_RSA_SCHANNEL_PROV* = MS_DEF_RSA_SCHANNEL_PROV_A MS_DEF_DSS_PROV* = MS_DEF_DSS_PROV_A MS_DEF_DSS_DH_PROV* = MS_DEF_DSS_DH_PROV_A MS_ENH_DSS_DH_PROV* = MS_ENH_DSS_DH_PROV_A MS_DEF_DH_SCHANNEL_PROV* = MS_DEF_DH_SCHANNEL_PROV_A MS_SCARD_PROV* = MS_SCARD_PROV_A MS_ENH_RSA_AES_PROV_XP* = MS_ENH_RSA_AES_PROV_XP_A MS_ENH_RSA_AES_PROV* = MS_ENH_RSA_AES_PROV_A CREDENTIAL_OID_PASSWORD_CREDENTIALS* = CREDENTIAL_OID_PASSWORD_CREDENTIALS_A proc CryptAcquireContext*(phProv: ptr HCRYPTPROV, szContainer: LPCSTR, szProvider: LPCSTR, dwProvType: DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptAcquireContextA".} proc CryptSignHash*(hHash: HCRYPTHASH, dwKeySpec: DWORD, szDescription: LPCSTR, dwFlags: DWORD, pbSignature: ptr BYTE, pdwSigLen: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptSignHashA".} proc CryptVerifySignature*(hHash: HCRYPTHASH, pbSignature: ptr BYTE, dwSigLen: DWORD, hPubKey: HCRYPTKEY, szDescription: LPCSTR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptVerifySignatureA".} proc CryptSetProvider*(pszProvName: LPCSTR, dwProvType: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptSetProviderA".} proc CryptSetProviderEx*(pszProvName: LPCSTR, dwProvType: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptSetProviderExA".} proc CryptGetDefaultProvider*(dwProvType: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pszProvName: LPSTR, pcbProvName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptGetDefaultProviderA".} proc CryptEnumProviderTypes*(dwIndex: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pdwProvType: ptr DWORD, szTypeName: LPSTR, pcbTypeName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptEnumProviderTypesA".} proc CryptEnumProviders*(dwIndex: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pdwProvType: ptr DWORD, szProvName: LPSTR, pcbProvName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptEnumProvidersA".} proc CertRDNValueToStr*(dwValueType: DWORD, pValue: PCERT_RDN_VALUE_BLOB, psz: LPSTR, csz: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc: "CertRDNValueToStrA".} proc CertNameToStr*(dwCertEncodingType: DWORD, pName: PCERT_NAME_BLOB, dwStrType: DWORD, psz: LPSTR, csz: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc: "CertNameToStrA".} proc CertStrToName*(dwCertEncodingType: DWORD, pszX500: LPCSTR, dwStrType: DWORD, pvReserved: pointer, pbEncoded: ptr BYTE, pcbEncoded: ptr DWORD, ppszError: ptr LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CertStrToNameA".} proc CertGetNameString*(pCertContext: PCCERT_CONTEXT, dwType: DWORD, dwFlags: DWORD, pvTypePara: pointer, pszNameString: LPSTR, cchNameString: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc: "CertGetNameStringA".} proc CertOpenSystemStore*(hProv: HCRYPTPROV_LEGACY, szSubsystemProtocol: LPCSTR): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc: "CertOpenSystemStoreA".} proc CertAddEncodedCertificateToSystemStore*(szCertStoreName: LPCSTR, pbCertEncoded: ptr BYTE, cbCertEncoded: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CertAddEncodedCertificateToSystemStoreA".} proc CryptRetrieveObjectByUrl*(pszUrl: LPCSTR, pszObjectOid: LPCSTR, dwRetrievalFlags: DWORD, dwTimeout: DWORD, ppvObject: ptr LPVOID, hAsyncRetrieve: HCRYPTASYNC, pCredentials: PCRYPT_CREDENTIALS, pvVerify: LPVOID, pAuxInfo: PCRYPT_RETRIEVE_AUX_INFO): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc: "CryptRetrieveObjectByUrlA".} proc CryptStringToBinary*(pszString: LPCSTR, cchString: DWORD, dwFlags: DWORD, pbBinary: ptr BYTE, pcbBinary: ptr DWORD, pdwSkip: ptr DWORD, pdwFlags: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CryptStringToBinaryA".} proc CryptBinaryToString*(pbBinary: ptr BYTE, cbBinary: DWORD, dwFlags: DWORD, pszString: LPSTR, pcchString: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CryptBinaryToStringA".}