ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

rsaenh.c File Reference
#include "config.h"
#include "wine/port.h"
#include "wine/library.h"
#include "wine/debug.h"
#include <stdarg.h>
#include <stdio.h>
#include "windef.h"
#include "winbase.h"
#include "winreg.h"
#include "wincrypt.h"
#include "handle.h"
#include "implglue.h"
#include "objbase.h"
#include "rpcproxy.h"

Go to the source code of this file.

Data Structures

struct  RSAENH_TLS1PRF_PARAMS
struct  PCRYPTHASH
struct  RSAENH_SCHANNEL_INFO
struct  PCRYPTKEY
struct  KEYCONTAINER

Defines

#define RSAENH_MAGIC_HASH   0x85938417u
#define RSAENH_MAX_HASH_SIZE   104
#define RSAENH_HASHSTATE_HASHING   1
#define RSAENH_HASHSTATE_FINISHED   2
#define RSAENH_MAGIC_KEY   0x73620457u
#define RSAENH_MAX_KEY_SIZE   64
#define RSAENH_MAX_BLOCK_SIZE   24
#define RSAENH_KEYSTATE_IDLE   0
#define RSAENH_KEYSTATE_ENCRYPTING   1
#define RSAENH_KEYSTATE_MASTERKEY   2
#define RSAENH_PERSONALITY_BASE   0u
#define RSAENH_PERSONALITY_STRONG   1u
#define RSAENH_PERSONALITY_ENHANCED   2u
#define RSAENH_PERSONALITY_SCHANNEL   3u
#define RSAENH_PERSONALITY_AES   4u
#define RSAENH_MAGIC_CONTAINER   0x26384993u
#define RSAENH_ENCRYPT   1
#define RSAENH_DECRYPT   0
#define RSAENH_HMAC_DEF_IPAD_CHAR   0x36
#define RSAENH_HMAC_DEF_OPAD_CHAR   0x5c
#define RSAENH_HMAC_DEF_PAD_LEN   64
#define RSAENH_HMAC_BLOCK_LEN   64
#define RSAENH_DES_EFFECTIVE_KEYLEN   56
#define RSAENH_DES_STORAGE_KEYLEN   64
#define RSAENH_3DES112_EFFECTIVE_KEYLEN   112
#define RSAENH_3DES112_STORAGE_KEYLEN   128
#define RSAENH_3DES_EFFECTIVE_KEYLEN   168
#define RSAENH_3DES_STORAGE_KEYLEN   192
#define RSAENH_MAGIC_RSA2   0x32415352
#define RSAENH_MAGIC_RSA1   0x31415352
#define RSAENH_PKC_BLOCKTYPE   0x02
#define RSAENH_SSL3_VERSION_MAJOR   3
#define RSAENH_SSL3_VERSION_MINOR   0
#define RSAENH_TLS1_VERSION_MAJOR   3
#define RSAENH_TLS1_VERSION_MINOR   1
#define RSAENH_REGKEY   "Software\\Wine\\Crypto\\RSA\\%s"
#define RSAENH_MIN(a, b)   ((a)<(b)?(a):(b))
#define RSAENH_MAX_ENUMALGS   24
#define RSAENH_PCT1_SSL2_SSL3_TLS1   (CRYPT_FLAG_PCT1|CRYPT_FLAG_SSL2|CRYPT_FLAG_SSL3|CRYPT_FLAG_TLS1)

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (crypt)
BOOL WINAPI RSAENH_CPGetKeyParam (HCRYPTPROV hProv, HCRYPTKEY hKey, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags)
BOOL WINAPI RSAENH_CPEncrypt (HCRYPTPROV hProv, HCRYPTKEY hKey, HCRYPTHASH hHash, BOOL Final, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen, DWORD dwBufLen)
BOOL WINAPI RSAENH_CPCreateHash (HCRYPTPROV hProv, ALG_ID Algid, HCRYPTKEY hKey, DWORD dwFlags, HCRYPTHASH *phHash)
BOOL WINAPI RSAENH_CPSetHashParam (HCRYPTPROV hProv, HCRYPTHASH hHash, DWORD dwParam, BYTE *pbData, DWORD dwFlags)
BOOL WINAPI RSAENH_CPGetHashParam (HCRYPTPROV hProv, HCRYPTHASH hHash, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags)
BOOL WINAPI RSAENH_CPDestroyHash (HCRYPTPROV hProv, HCRYPTHASH hHash)
static BOOL crypt_export_key (CRYPTKEY *pCryptKey, HCRYPTKEY hPubKey, DWORD dwBlobType, DWORD dwFlags, BOOL force, BYTE *pbData, DWORD *pdwDataLen)
static BOOL import_key (HCRYPTPROV hProv, CONST BYTE *pbData, DWORD dwDataLen, HCRYPTKEY hPubKey, DWORD dwFlags, BOOL fStoreKey, HCRYPTKEY *phKey)
BOOL WINAPI RSAENH_CPHashData (HCRYPTPROV hProv, HCRYPTHASH hHash, CONST BYTE *pbData, DWORD dwDataLen, DWORD dwFlags)
int WINAPI DllMain (HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)
static BOOL copy_param (BYTE *pbBuffer, DWORD *pdwBufferSize, CONST BYTE *pbParam, DWORD dwParamSize)
static const PROV_ENUMALGS_EXget_algid_info (HCRYPTPROV hProv, ALG_ID algid)
static BOOL copy_data_blob (PCRYPT_DATA_BLOB dst, CONST PCRYPT_DATA_BLOB src)
static BOOL concat_data_blobs (PCRYPT_DATA_BLOB dst, CONST PCRYPT_DATA_BLOB src1, CONST PCRYPT_DATA_BLOB src2)
static void free_data_blob (PCRYPT_DATA_BLOB pBlob)
static void init_data_blob (PCRYPT_DATA_BLOB pBlob)
static void free_hmac_info (PHMAC_INFO hmac_info)
static BOOL copy_hmac_info (PHMAC_INFO *dst, const HMAC_INFO *src)
static void destroy_hash (OBJECTHDR *pObject)
static BOOL init_hash (CRYPTHASH *pCryptHash)
static void update_hash (CRYPTHASH *pCryptHash, CONST BYTE *pbData, DWORD dwDataLen)
static void finalize_hash (CRYPTHASH *pCryptHash)
static void destroy_key (OBJECTHDR *pObject)
static void setup_key (CRYPTKEY *pCryptKey)
static HCRYPTKEY new_key (HCRYPTPROV hProv, ALG_ID aiAlgid, DWORD dwFlags, CRYPTKEY **ppCryptKey)
static LPCSTR map_key_spec_to_key_pair_name (DWORD dwKeySpec)
static void store_key_pair (HCRYPTKEY hCryptKey, HKEY hKey, DWORD dwKeySpec, DWORD dwFlags)
static LPCSTR map_key_spec_to_permissions_name (DWORD dwKeySpec)
static void store_key_permissions (HCRYPTKEY hCryptKey, HKEY hKey, DWORD dwKeySpec)
static BOOL create_container_key (KEYCONTAINER *pKeyContainer, REGSAM sam, HKEY *phKey)
static BOOL open_container_key (LPCSTR pszContainerName, DWORD dwFlags, HKEY *phKey)
static BOOL delete_container_key (LPCSTR pszContainerName, DWORD dwFlags)
static void store_key_container_keys (KEYCONTAINER *pKeyContainer)
static void store_key_container_permissions (KEYCONTAINER *pKeyContainer)
static void release_key_container_keys (KEYCONTAINER *pKeyContainer)
static void destroy_key_container (OBJECTHDR *pObjectHdr)
static HCRYPTPROV new_key_container (PCCH pszContainerName, DWORD dwFlags, const VTableProvStruc *pVTable)
static BOOL read_key_value (HCRYPTPROV hKeyContainer, HKEY hKey, DWORD dwKeySpec, DWORD dwFlags, HCRYPTKEY *phCryptKey)
static HCRYPTPROV read_key_container (PCHAR pszContainerName, DWORD dwFlags, const VTableProvStruc *pVTable)
static BOOL build_hash_signature (BYTE *pbSignature, DWORD dwLen, ALG_ID aiAlgid, CONST BYTE *abHashValue, DWORD dwHashLen, DWORD dwFlags)
static BOOL tls1_p (HCRYPTHASH hHMAC, CONST PCRYPT_DATA_BLOB pblobSeed, PBYTE pbBuffer, DWORD dwBufferLen)
static BOOL tls1_prf (HCRYPTPROV hProv, HCRYPTPROV hSecret, CONST PCRYPT_DATA_BLOB pblobLabel, CONST PCRYPT_DATA_BLOB pblobSeed, PBYTE pbBuffer, DWORD dwBufferLen)
static BOOL pad_data (CONST BYTE *abData, DWORD dwDataLen, BYTE *abBuffer, DWORD dwBufferLen, DWORD dwFlags)
static BOOL unpad_data (CONST BYTE *abData, DWORD dwDataLen, BYTE *abBuffer, DWORD *dwBufferLen, DWORD dwFlags)
BOOL WINAPI RSAENH_CPAcquireContext (HCRYPTPROV *phProv, LPSTR pszContainer, DWORD dwFlags, PVTableProvStruc pVTable)
BOOL WINAPI RSAENH_CPDestroyKey (HCRYPTPROV hProv, HCRYPTKEY hKey)
BOOL WINAPI RSAENH_CPDuplicateHash (HCRYPTPROV hUID, HCRYPTHASH hHash, DWORD *pdwReserved, DWORD dwFlags, HCRYPTHASH *phHash)
BOOL WINAPI RSAENH_CPDuplicateKey (HCRYPTPROV hUID, HCRYPTKEY hKey, DWORD *pdwReserved, DWORD dwFlags, HCRYPTKEY *phKey)
BOOL WINAPI RSAENH_CPDecrypt (HCRYPTPROV hProv, HCRYPTKEY hKey, HCRYPTHASH hHash, BOOL Final, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen)
static BOOL crypt_export_simple (CRYPTKEY *pCryptKey, CRYPTKEY *pPubKey, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen)
static BOOL crypt_export_public_key (CRYPTKEY *pCryptKey, BYTE *pbData, DWORD *pdwDataLen)
static BOOL crypt_export_private_key (CRYPTKEY *pCryptKey, BOOL force, BYTE *pbData, DWORD *pdwDataLen)
static BOOL crypt_export_plaintext_key (CRYPTKEY *pCryptKey, BYTE *pbData, DWORD *pdwDataLen)
BOOL WINAPI RSAENH_CPExportKey (HCRYPTPROV hProv, HCRYPTKEY hKey, HCRYPTKEY hPubKey, DWORD dwBlobType, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen)
static void release_and_install_key (HCRYPTPROV hProv, HCRYPTKEY src, HCRYPTKEY *dest, DWORD fStoreKey)
static BOOL import_private_key (HCRYPTPROV hProv, CONST BYTE *pbData, DWORD dwDataLen, DWORD dwFlags, BOOL fStoreKey, HCRYPTKEY *phKey)
static BOOL import_public_key (HCRYPTPROV hProv, CONST BYTE *pbData, DWORD dwDataLen, DWORD dwFlags, BOOL fStoreKey, HCRYPTKEY *phKey)
static BOOL import_symmetric_key (HCRYPTPROV hProv, CONST BYTE *pbData, DWORD dwDataLen, HCRYPTKEY hPubKey, DWORD dwFlags, HCRYPTKEY *phKey)
static BOOL import_plaintext_key (HCRYPTPROV hProv, CONST BYTE *pbData, DWORD dwDataLen, DWORD dwFlags, HCRYPTKEY *phKey)
BOOL WINAPI RSAENH_CPImportKey (HCRYPTPROV hProv, CONST BYTE *pbData, DWORD dwDataLen, HCRYPTKEY hPubKey, DWORD dwFlags, HCRYPTKEY *phKey)
BOOL WINAPI RSAENH_CPGenKey (HCRYPTPROV hProv, ALG_ID Algid, DWORD dwFlags, HCRYPTKEY *phKey)
BOOL WINAPI RSAENH_CPGenRandom (HCRYPTPROV hProv, DWORD dwLen, BYTE *pbBuffer)
BOOL WINAPI RSAENH_CPSetKeyParam (HCRYPTPROV hProv, HCRYPTKEY hKey, DWORD dwParam, BYTE *pbData, DWORD dwFlags)
BOOL WINAPI RSAENH_CPGetProvParam (HCRYPTPROV hProv, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags)
BOOL WINAPI RSAENH_CPDeriveKey (HCRYPTPROV hProv, ALG_ID Algid, HCRYPTHASH hBaseData, DWORD dwFlags, HCRYPTKEY *phKey)
BOOL WINAPI RSAENH_CPGetUserKey (HCRYPTPROV hProv, DWORD dwKeySpec, HCRYPTKEY *phUserKey)
BOOL WINAPI RSAENH_CPHashSessionKey (HCRYPTPROV hProv, HCRYPTHASH hHash, HCRYPTKEY hKey, DWORD dwFlags)
BOOL WINAPI RSAENH_CPReleaseContext (HCRYPTPROV hProv, DWORD dwFlags)
BOOL WINAPI RSAENH_CPSetProvParam (HCRYPTPROV hProv, DWORD dwParam, BYTE *pbData, DWORD dwFlags)
BOOL WINAPI RSAENH_CPSignHash (HCRYPTPROV hProv, HCRYPTHASH hHash, DWORD dwKeySpec, LPCWSTR sDescription, DWORD dwFlags, BYTE *pbSignature, DWORD *pdwSigLen)
BOOL WINAPI RSAENH_CPVerifySignature (HCRYPTPROV hProv, HCRYPTHASH hHash, CONST BYTE *pbSignature, DWORD dwSigLen, HCRYPTKEY hPubKey, LPCWSTR sDescription, DWORD dwFlags)
HRESULT WINAPI DllRegisterServer (void)
HRESULT WINAPI DllUnregisterServer (void)

Variables

static HINSTANCE instance
static const PROV_ENUMALGS_EX aProvEnumAlgsEx [5][RSAENH_MAX_ENUMALGS+1]
static struct handle_table handle_table

Generated on Sat May 26 2012 05:16:36 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.