163 lines
7.7 KiB
Plaintext
163 lines
7.7 KiB
Plaintext
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1997 - 1999
|
|
//
|
|
// File: sclgnrpc.idl
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
import "unknwn.idl";
|
|
|
|
#define NTSTATUS LONG
|
|
|
|
typedef struct _OUT_BUFFER1 {
|
|
DWORD cb;
|
|
[size_is(cb)] BYTE *pb;
|
|
} OUT_BUFFER1, *POUT_BUFFER1;
|
|
|
|
typedef struct _OUT_BUFFER2 {
|
|
ULONG cb;
|
|
[size_is(cb)] BYTE *pb;
|
|
} OUT_BUFFER2, *POUT_BUFFER2;
|
|
|
|
////////////////////////////
|
|
// Interfaces
|
|
|
|
[
|
|
uuid(95958c94-a424-4055-b62b-b7f4d5c47770),
|
|
version(1.0),
|
|
pointer_default(unique)
|
|
]
|
|
interface IRPCSCLogon
|
|
{
|
|
typedef [context_handle] void *BINDING_CONTEXT;
|
|
|
|
NTSTATUS
|
|
RPC_ScHelperInitializeContext(
|
|
[in] handle_t h,
|
|
[in] DWORD cbLogonInfo,
|
|
[in][size_is(cbLogonInfo)] BYTE *pbLogonInfo,
|
|
[in, out] BINDING_CONTEXT *pBindingContext
|
|
);
|
|
|
|
NTSTATUS
|
|
RPC_ScHelperRelease(
|
|
[in] handle_t h,
|
|
[in, out] BINDING_CONTEXT *pBindingContext
|
|
);
|
|
|
|
NTSTATUS
|
|
RPC_ScHelperGetCertFromLogonInfo(
|
|
[in] handle_t h,
|
|
[in] BINDING_CONTEXT BindingContext,
|
|
[in][unique] LPCWSTR wszPIN,
|
|
[out] OUT_BUFFER1 *pCertContextBuffer
|
|
);
|
|
|
|
NTSTATUS
|
|
RPC_ScHelperGetProvParam(
|
|
[in] handle_t h,
|
|
[in] BINDING_CONTEXT BindingContext,
|
|
[in][unique] LPCWSTR wszPIN,
|
|
[in] DWORD dwParam,
|
|
[in][out] DWORD *pdwDataLen,
|
|
[out] OUT_BUFFER1 *pbData,
|
|
[in] DWORD dwFlags
|
|
);
|
|
|
|
NTSTATUS
|
|
RPC_ScHelperGenRandBits(
|
|
[in] handle_t h,
|
|
[in] BINDING_CONTEXT BindingContext,
|
|
[in][out] BYTE bR1[32],
|
|
[in][out] BYTE bR2[32]
|
|
);
|
|
|
|
NTSTATUS
|
|
RPC_ScHelperVerifyCardAndCreds(
|
|
[in] handle_t h,
|
|
[in] BINDING_CONTEXT BindingContext,
|
|
[in][unique] LPCWSTR wszPIN,
|
|
[in] ULONG EncryptedDataSize,
|
|
[in][size_is(EncryptedDataSize)] BYTE *EncryptedData,
|
|
[in][out] ULONG *pCleartextDataSize,
|
|
[out] OUT_BUFFER2 *pCleartextData
|
|
);
|
|
|
|
NTSTATUS
|
|
RPC_ScHelperEncryptCredentials(
|
|
[in] handle_t h,
|
|
[in] BINDING_CONTEXT BindingContext,
|
|
[in][unique] LPCWSTR wszPIN,
|
|
[in] BYTE bR1[32],
|
|
[in] BYTE bR2[32],
|
|
[in] ULONG CleartextDataSize,
|
|
[in][size_is(CleartextDataSize)] BYTE *CleartextData,
|
|
[in][out] ULONG *pEncryptedDataSize,
|
|
[out] OUT_BUFFER2 *pEncryptedData
|
|
);
|
|
|
|
NTSTATUS
|
|
RPC_ScHelperSignMessage(
|
|
[in] handle_t h,
|
|
[in] BINDING_CONTEXT BindingContext,
|
|
[in][unique] LPCWSTR wszPIN,
|
|
[in] ULONG Algorithm,
|
|
[in] ULONG BufferLength,
|
|
[in][size_is(BufferLength)] BYTE *Buffer,
|
|
[in][out] ULONG *pSignatureLength,
|
|
[out] OUT_BUFFER2 *pSignature
|
|
);
|
|
|
|
NTSTATUS
|
|
RPC_ScHelperVerifyMessage(
|
|
[in] handle_t h,
|
|
[in] BINDING_CONTEXT BindingContext,
|
|
[in] ULONG Algorithm,
|
|
[in] ULONG BufferLength,
|
|
[in][size_is(BufferLength)] BYTE *Buffer,
|
|
[in] ULONG SignatureLength,
|
|
[in][size_is(SignatureLength)] BYTE *Signature
|
|
);
|
|
|
|
NTSTATUS
|
|
RPC_ScHelperSignPkcsMessage(
|
|
[in] handle_t h,
|
|
[in] BINDING_CONTEXT BindingContext,
|
|
[in][unique] LPCWSTR wszPIN,
|
|
[in] LPSTR AlgorithmPszObjId,
|
|
[in] DWORD AlgorithmParametersLength,
|
|
[in][unique][size_is(AlgorithmParametersLength)] BYTE *AlgorithmParameters,
|
|
[in] DWORD dwSignMessageFlags,
|
|
[in] ULONG BufferLength,
|
|
[in][size_is(BufferLength)] BYTE *Buffer,
|
|
[in][out] ULONG *pSignedBufferLength,
|
|
[out] OUT_BUFFER2 *pSignedBuffer
|
|
);
|
|
|
|
NTSTATUS
|
|
RPC_ScHelperVerifyPkcsMessage(
|
|
[in] handle_t h,
|
|
[in] BINDING_CONTEXT BindingContext,
|
|
[in] ULONG BufferLength,
|
|
[in][size_is(BufferLength)] BYTE *Buffer,
|
|
[in][out] ULONG *pDecodedBufferLength,
|
|
[out] OUT_BUFFER2 *pDecodedBuffer,
|
|
[in] BOOL fCertContextRequested,
|
|
[out] OUT_BUFFER1 *pCertContext
|
|
);
|
|
|
|
|
|
NTSTATUS
|
|
RPC_ScHelperDecryptMessage(
|
|
[in] handle_t h,
|
|
[in] BINDING_CONTEXT BindingContext,
|
|
[in][unique] LPCWSTR wszPIN,
|
|
[in] ULONG CipherLength,
|
|
[in][size_is(CipherLength)] BYTE *CipherText,
|
|
[in][out] ULONG *pClearTextLength,
|
|
[out] OUT_BUFFER2 *pClearText
|
|
);
|
|
} |