Всем привет! Пытаюсь написать TLS клиента с использованием CryptoAPI и есть подозрения, что я не правильно экспортирую pre-master key, делаю примерно так: lea ecx,hProv invoke CryptAcquireContext,ecx,0,0,PROV_RSA_SCHANNEL,CRYPT_VERIFYCONTEXT lea eax,hMasterKey invoke CryptGenKey,hProv,CALG_TLS1_MASTER,CRYPT_EXPORTABLE,eax Из полученного сертификата от сервера получаю его контекст, в edi указатель на сертификат в ecx его длина. invoke CertCreateCertificateContext,X509_ASN_ENCODING or PKCS_7_ASN_ENCODING,edi,ecx mov hCert,eax mov eax,[eax.CERT_CONTEXT].pCertInfo lea eax,[eax.CERT_INFO].SubjectPublicKeyInfo Импортирую публичный ключ из сертификата lea ecx,hPubKey invoke CryptImportPublicKeyInfo,hProv,X509_ASN_ENCODING or PKCS_7_ASN_ENCODING,eax,ecx Ну и делаю экспорт pre-master key шифруя его публичным ключом mov edx,esp push 140 invoke CryptExportKey,hMasterKey,hPubKey,SIMPLEBLOB,0,edx,esp pop eax lea esi,[esp+12] ; в esi указатель на зашифрованный pre-master key Ну собственно вопрос правильно ли я делаю экспорт или нужно просто выгружать pre-master key и шифровать его с помощью CrytpEncrypt или еще какие то действия нужно сделать с публичным ключом или сертификатом?