You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.8 KiB
92 lines
2.8 KiB
//+-------------------------------------------------------------------------
|
|
// Microsoft Windows
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 2002 - 2002
|
|
//
|
|
// File: i_cryptasn1tls.h
|
|
//
|
|
// Contents: Crypt ASN.1 Thread Local Storage (TLS) functions
|
|
//--------------------------------------------------------------------------
|
|
|
|
#ifndef __I_CRYPTASN1TLS_H__
|
|
#define __I_CRYPTASN1TLS_H__
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
// Handle to an installed Asn1 module
|
|
typedef DWORD HCRYPTASN1MODULE;
|
|
|
|
// Pointers to ASN1 data structures
|
|
typedef void *ASN1module_t;
|
|
typedef void *ASN1encoding_t;
|
|
typedef void *ASN1decoding_t;
|
|
|
|
|
|
//+-------------------------------------------------------------------------
|
|
// Install an Asn1 module entry and return a handle for future access.
|
|
//
|
|
// Each thread has its own copy of the decoder and encoder associated
|
|
// with the Asn1 module. Creation is deferred until first referenced by
|
|
// the thread.
|
|
//
|
|
// I_CryptGetAsn1Encoder or I_CryptGetAsn1Decoder must be called with the
|
|
// handle returned by I_CryptInstallAsn1Module to get the thread specific
|
|
// Asn1 encoder or decoder.
|
|
//
|
|
// Currently, dwFlags and pvReserved aren't used and must be set to 0.
|
|
//--------------------------------------------------------------------------
|
|
|
|
HCRYPTASN1MODULE
|
|
WINAPI
|
|
I_CryptInstallAsn1Module(
|
|
IN ASN1module_t pMod,
|
|
IN DWORD dwFlags,
|
|
IN void *pvReserved
|
|
);
|
|
|
|
|
|
//+-------------------------------------------------------------------------
|
|
// Called at DLL_PROCESS_DETACH to uninstall an hAsn1Module entry. Iterates
|
|
// through the threads and frees their created Asn1 encoders and decoders.
|
|
//--------------------------------------------------------------------------
|
|
BOOL
|
|
WINAPI
|
|
I_CryptUninstallAsn1Module(
|
|
IN HCRYPTASN1MODULE hAsn1Module
|
|
);
|
|
|
|
|
|
//+-------------------------------------------------------------------------
|
|
// Get the thread specific pointer to the Asn1 encoder specified by the
|
|
// hAsn1Module returned by CryptInstallAsn1Module. If the
|
|
// encoder doesn't exist, then, its created using the Asn1 module
|
|
// associated with hAsn1Module.
|
|
//--------------------------------------------------------------------------
|
|
ASN1encoding_t
|
|
WINAPI
|
|
I_CryptGetAsn1Encoder(
|
|
IN HCRYPTASN1MODULE hAsn1Module
|
|
);
|
|
|
|
|
|
//+-------------------------------------------------------------------------
|
|
// Get the thread specific pointer to the Asn1 decoder specified by the
|
|
// hAsn1Module returned by CryptInstallAsn1Module. If the
|
|
// decoder doesn't exist, then, its created using the Asn1 module
|
|
// associated with hAsn1Module.
|
|
//--------------------------------------------------------------------------
|
|
ASN1decoding_t
|
|
WINAPI
|
|
I_CryptGetAsn1Decoder(
|
|
IN HCRYPTASN1MODULE hAsn1Module
|
|
);
|
|
|
|
#ifdef __cplusplus
|
|
} // Balance extern "C" above
|
|
#endif
|
|
|
|
|
|
#endif
|