csp.cpp

来自「微软出的CSPDK」· C++ 代码 · 共 690 行 · 第 1/2 页

CPP
690
字号
/////////////////////////////////////////////////////////////////////////////
//  FILE          : csp.cpp                                                //
//  DESCRIPTION   : Crypto API interface                                   //
//  AUTHOR        :                                                        //
//  HISTORY       :                                                        //
//      Nov 18 1998 davidteo Ported to Windows CE                          //
//                                                                         //
//  Copyright (C) 1993 Microsoft Corporation   All Rights Reserved         //
/////////////////////////////////////////////////////////////////////////////
#define APPNAME L"CSP"
#include "..\inc\csp.h"

BOOLEAN
DllInitialize(
    IN PVOID hmod,
    IN ULONG Reason,
    IN PCONTEXT Context
    )
{
// Windows CE does not support DisableThreadLibraryCalls
/*
    if ( Reason == DLL_PROCESS_ATTACH ) {
        DisableThreadLibraryCalls(hmod);
        }
*/

    return( TRUE );
}

/*
 -	CPAcquireContext
 -
 *	Purpose:
 *               The CPAcquireContext function is used to acquire a context
 *               handle to a cryptograghic service provider (CSP).
 *
 *
 *	Parameters:
 *               OUT phProv        -  Handle to a CSP
 *               OUT pszIdentity   -  Pointer to a string which is the
 *                                    identity of the logged on user
 *               IN  dwFlags       -  Flags values
 *               IN  pVTable       -  Pointer to table of function pointers
 *
 *	Returns:
 */
BOOL WINAPI CPAcquireContext(OUT HCRYPTPROV *phProv,
                             OUT TCHAR *pszIdentity, // Windows CE supports TCHAR instead
                             IN DWORD dwFlags,
                             IN PVTableProvStruc pVTable)
{

    return(CRYPT_SUCCEED);

}


/*
 -      CPReleaseContext
 -
 *      Purpose:
 *               The CPReleaseContext function is used to release a
 *               context created by CrytAcquireContext.
 *
 *     Parameters:
 *               IN  phProv        -  Handle to a CSP
 *               IN  dwFlags       -  Flags values
 *
 *	Returns:
 */
BOOL WINAPI CPReleaseContext(IN HCRYPTPROV hProv,
                             IN DWORD dwFlags)
{

    return(CRYPT_SUCCEED);

}


/*
 -	CPGenKey
 -
 *	Purpose:
 *                Generate cryptographic keys
 *
 *
 *	Parameters:
 *               IN      hProv   -  Handle to a CSP
 *               IN      Algid   -  Algorithm identifier
 *               IN      dwFlags -  Flags values
 *               OUT     phKey   -  Handle to a generated key
 *
 *	Returns:
 */
BOOL WINAPI CPGenKey(IN HCRYPTPROV hProv,
                     IN int Algid,
                     IN DWORD dwFlags,
                     OUT HCRYPTKEY * phKey)
{

	return(CRYPT_SUCCEED);

}

/*
 -	CPDeriveKey
 -
 *	Purpose:
 *                Derive cryptographic keys from base data
 *
 *
 *	Parameters:
 *               IN      hProv      -  Handle to a CSP
 *               IN      Algid      -  Algorithm identifier
 *               IN      hHash      -  Handle to hash 
 *               IN      dwFlags    -  Flags values
 *               OUT     phKey      -  Handle to a generated key
 *
 *	Returns:
 */
BOOL WINAPI CPDeriveKey(IN HCRYPTPROV hProv,
                        IN int Algid,
                        IN HCRYPTHASH hHash,
                        IN DWORD dwFlags,
                        OUT HCRYPTKEY * phKey)
{

    return(CRYPT_SUCCEED);

}


/*
 -	CPDestroyKey
 -
 *	Purpose:
 *                Destroys the cryptographic key that is being referenced
 *                with the hKey parameter
 *
 *
 *	Parameters:
 *               IN      hProv  -  Handle to a CSP
 *               IN      hKey   -  Handle to a key
 *
 *	Returns:
 */
BOOL WINAPI CPDestroyKey(IN HCRYPTPROV hProv,
                         IN HCRYPTKEY hKey)
{

    return(CRYPT_SUCCEED);

}


/*
 -	CPSetKeyParam
 -
 *	Purpose:
 *                Allows applications to customize various aspects of the
 *                operations of a key
 *
 *	Parameters:
 *               IN      hProv   -  Handle to a CSP
 *               IN      hKey    -  Handle to a key
 *               IN      dwParam -  Parameter number
 *               IN      pbData  -  Pointer to data
 *               IN      dwFlags -  Flags values
 *
 *	Returns:
 */
BOOL WINAPI CPSetKeyParam(IN HCRYPTPROV hProv,
                          IN HCRYPTKEY hKey,
                          IN DWORD dwParam,
                          IN BYTE *pbData,
                          IN DWORD dwFlags)
{

    return(CRYPT_SUCCEED);

}


/*
 -	CPGetKeyParam
 -
 *	Purpose:
 *                Allows applications to get various aspects of the
 *                operations of a key
 *
 *	Parameters:
 *               IN      hProv      -  Handle to a CSP
 *               IN      hKey       -  Handle to a key
 *               IN      dwParam    -  Parameter number
 *               IN      pbData     -  Pointer to data
 *               IN      pdwDataLen -  Length of parameter data
 *               IN      dwFlags    -  Flags values
 *
 *	Returns:
 */
BOOL WINAPI CPGetKeyParam(IN HCRYPTPROV hProv,
                          IN HCRYPTKEY hKey,
                          IN DWORD dwParam,
                          IN BYTE *pbData,
                          IN DWORD *pdwDataLen,
                          IN DWORD dwFlags)
{

    return(CRYPT_SUCCEED);

}



/*
 -	CPSetProvParam
 -
 *	Purpose:
 *                Allows applications to customize various aspects of the
 *                operations of a provider
 *
 *	Parameters:
 *               IN      hProv   -  Handle to a CSP
 *               IN      dwParam -  Parameter number
 *               IN      pbData  -  Pointer to data
 *               IN      dwFlags -  Flags values
 *
 *	Returns:
 */
BOOL WINAPI CPSetProvParam(IN HCRYPTPROV hProv,
                           IN DWORD dwParam,
                           IN BYTE *pbData,
                           IN DWORD dwFlags)
{

    return(CRYPT_SUCCEED);

}


/*
 -	CPGetProvParam
 -
 *	Purpose:
 *                Allows applications to get various aspects of the
 *                operations of a provider
 *
 *	Parameters:
 *               IN      hProv      -  Handle to a CSP
 *               IN      dwParam    -  Parameter number
 *               IN      pbData     -  Pointer to data
 *               IN      pdwDataLen -  Length of parameter data
 *               IN      dwFlags    -  Flags values
 *
 *	Returns:
 */
BOOL WINAPI CPGetProvParam(IN HCRYPTPROV hProv,
                           IN DWORD dwParam,
                           IN BYTE *pbData,
                           IN DWORD *pdwDataLen,
                           IN DWORD dwFlags)
{

    return(CRYPT_SUCCEED);

}



/*
 -	CPSetHashParam
 -
 *	Purpose:
 *                Allows applications to customize various aspects of the
 *                operations of a hash
 *
 *	Parameters:
 *               IN      hProv   -  Handle to a CSP
 *               IN      hHash   -  Handle to a hash
 *               IN      dwParam -  Parameter number
 *               IN      pbData  -  Pointer to data
 *               IN      dwFlags -  Flags values
 *
 *	Returns:
 */
BOOL WINAPI CPSetHashParam(IN HCRYPTPROV hProv,
                           IN HCRYPTHASH hHash,
                           IN DWORD dwParam,
                           IN BYTE *pbData,
                           IN DWORD dwFlags)
{

    return(CRYPT_SUCCEED);

}


/*
 -	CPGetHashParam
 -
 *	Purpose:
 *                Allows applications to get various aspects of the
 *                operations of a hash
 *
 *	Parameters:
 *               IN      hProv      -  Handle to a CSP
 *               IN      hHash      -  Handle to a hash
 *               IN      dwParam    -  Parameter number
 *               IN      pbData     -  Pointer to data
 *               IN      pdwDataLen -  Length of parameter data
 *               IN      dwFlags    -  Flags values
 *
 *	Returns:
 */
BOOL WINAPI CPGetHashParam(IN HCRYPTPROV hProv,
                           IN HCRYPTHASH hHash,
                           IN DWORD dwParam,
                           IN BYTE *pbData,
                           IN DWORD *pdwDataLen,
                           IN DWORD dwFlags)
{

    return(CRYPT_SUCCEED);

}


/*
 -	CPExportKey
 -
 *	Purpose:
 *                Export cryptographic keys out of a CSP in a secure manner
 *
 *
 *	Parameters:
 *               IN  hProv      - Handle to the CSP user
 *               IN  hKey       - Handle to the key to export
 *               IN  hPubKey    - Handle to the exchange public key value of
 *                                the destination user
 *               IN  dwBlobType - Type of key blob to be exported
 *               IN  dwFlags -    Flags values
 *               OUT pbData -     Key blob data
 *               OUT pdwDataLen - Length of key blob in bytes
 *
 *	Returns:

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?