mirror of
https://github.com/morgan9e/FreeRDP
synced 2026-04-15 00:44:19 +09:00
libwinpr-sspi: fix build on Linux
This commit is contained in:
@@ -340,9 +340,25 @@ typedef const CERT_CONTEXT *PCCERT_CONTEXT;
|
||||
#define CERT_FIND_OR_CTL_USAGE_FLAG CERT_FIND_OR_ENHKEY_USAGE_FLAG
|
||||
#define CERT_FIND_VALID_CTL_USAGE_FLAG CERT_FIND_VALID_ENHKEY_USAGE_FLAG
|
||||
|
||||
#define CERT_NAME_EMAIL_TYPE 1
|
||||
#define CERT_NAME_RDN_TYPE 2
|
||||
#define CERT_NAME_ATTR_TYPE 3
|
||||
#define CERT_NAME_SIMPLE_DISPLAY_TYPE 4
|
||||
#define CERT_NAME_FRIENDLY_DISPLAY_TYPE 5
|
||||
#define CERT_NAME_DNS_TYPE 6
|
||||
#define CERT_NAME_URL_TYPE 7
|
||||
#define CERT_NAME_UPN_TYPE 8
|
||||
|
||||
#define CERT_NAME_ISSUER_FLAG 0x1
|
||||
#define CERT_NAME_DISABLE_IE4_UTF8_FLAG 0x00010000
|
||||
|
||||
#define CERT_NAME_SEARCH_ALL_NAMES_FLAG 0x2
|
||||
|
||||
WINPR_API HCERTSTORE CertOpenSystemStoreW(HCRYPTPROV_LEGACY hProv, LPCWSTR szSubsystemProtocol);
|
||||
WINPR_API HCERTSTORE CertOpenSystemStoreA(HCRYPTPROV_LEGACY hProv, LPCSTR szSubsystemProtocol);
|
||||
|
||||
WINPR_API BOOL CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags);
|
||||
|
||||
#ifdef UNICODE
|
||||
#define CertOpenSystemStore CertOpenSystemStoreW
|
||||
#else
|
||||
@@ -352,6 +368,19 @@ WINPR_API HCERTSTORE CertOpenSystemStoreA(HCRYPTPROV_LEGACY hProv, LPCSTR szSubs
|
||||
WINPR_API PCCERT_CONTEXT CertFindCertificateInStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType,
|
||||
DWORD dwFindFlags, DWORD dwFindType, const void* pvFindPara, PCCERT_CONTEXT pPrevCertContext);
|
||||
|
||||
WINPR_API PCCERT_CONTEXT CertEnumCertificatesInStore(HCERTSTORE hCertStore, PCCERT_CONTEXT pPrevCertContext);
|
||||
|
||||
DWORD CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType,
|
||||
DWORD dwFlags, void* pvTypePara, LPWSTR pszNameString, DWORD cchNameString);
|
||||
DWORD CertGetNameStringA(PCCERT_CONTEXT pCertContext, DWORD dwType,
|
||||
DWORD dwFlags, void* pvTypePara, LPSTR pszNameString, DWORD cchNameString);
|
||||
|
||||
#ifdef UNICODE
|
||||
#define CertGetNameString CertGetNameStringW
|
||||
#else
|
||||
#define CertGetNameString CertGetNameStringA
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* WINPR_CRYPTO_H */
|
||||
|
||||
@@ -162,11 +162,33 @@ HCERTSTORE CertOpenSystemStoreA(HCRYPTPROV_LEGACY hProv, LPCSTR szSubsystemProto
|
||||
return CertOpenSystemStoreW(hProv, NULL);
|
||||
}
|
||||
|
||||
BOOL CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
PCCERT_CONTEXT CertFindCertificateInStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType,
|
||||
DWORD dwFindFlags, DWORD dwFindType, const void* pvFindPara, PCCERT_CONTEXT pPrevCertContext)
|
||||
{
|
||||
return (PCCERT_CONTEXT) 1;
|
||||
}
|
||||
|
||||
PCCERT_CONTEXT CertEnumCertificatesInStore(HCERTSTORE hCertStore, PCCERT_CONTEXT pPrevCertContext)
|
||||
{
|
||||
return (PCCERT_CONTEXT) NULL;
|
||||
}
|
||||
|
||||
DWORD CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType,
|
||||
DWORD dwFlags, void* pvTypePara, LPWSTR pszNameString, DWORD cchNameString)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
DWORD CertGetNameStringA(PCCERT_CONTEXT pCertContext, DWORD dwType,
|
||||
DWORD dwFlags, void* pvTypePara, LPSTR pszNameString, DWORD cchNameString)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -44,6 +44,7 @@ char* openssl_get_ssl_error_string(int ssl_error)
|
||||
return "SSL_ERROR_SYSCALL";
|
||||
|
||||
case SSL_ERROR_SSL:
|
||||
ERR_print_errors_fp(stdout);
|
||||
return "SSL_ERROR_SSL";
|
||||
}
|
||||
|
||||
@@ -192,19 +193,17 @@ int schannel_openssl_server_init(SCHANNEL_OPENSSL* context)
|
||||
return -1;
|
||||
}
|
||||
|
||||
#if 0
|
||||
if (SSL_CTX_use_RSAPrivateKey_file(context->ctx, privatekey_file, SSL_FILETYPE_PEM) <= 0)
|
||||
if (SSL_CTX_use_RSAPrivateKey_file(context->ctx, "/tmp/localhost.key", SSL_FILETYPE_PEM) <= 0)
|
||||
{
|
||||
printf("SSL_CTX_use_RSAPrivateKey_file failed\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (SSL_use_certificate_file(context->ssl, certificate_file, SSL_FILETYPE_PEM) <= 0)
|
||||
if (SSL_use_certificate_file(context->ssl, "/tmp/localhost.crt", SSL_FILETYPE_PEM) <= 0)
|
||||
{
|
||||
printf("SSL_use_certificate_file failed\n");
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
|
||||
context->bioRead = BIO_new(BIO_s_mem());
|
||||
|
||||
@@ -308,6 +307,7 @@ SECURITY_STATUS schannel_openssl_server_process_tokens(SCHANNEL_OPENSSL* context
|
||||
if (pBuffer->BufferType != SECBUFFER_TOKEN)
|
||||
return SEC_E_INVALID_TOKEN;
|
||||
|
||||
printf("Server input: %d\n", pBuffer->cbBuffer);
|
||||
status = BIO_write(context->bioRead, pBuffer->pvBuffer, pBuffer->cbBuffer);
|
||||
|
||||
status = SSL_accept(context->ssl);
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include <winpr/sspi.h>
|
||||
#include <winpr/file.h>
|
||||
#include <winpr/pipe.h>
|
||||
#include <winpr/tchar.h>
|
||||
#include <winpr/print.h>
|
||||
#include <winpr/synch.h>
|
||||
#include <winpr/thread.h>
|
||||
|
||||
Reference in New Issue
Block a user