mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-08-04 03:07:07 -04:00
Partially works
This commit is contained in:
parent
51d0cd7779
commit
e995e54168
44
src/Certs.c
44
src/Certs.c
@ -305,16 +305,56 @@ int Certs_VerifyChain(struct X509CertContext* x509) {
|
||||
#include <wincrypt.h>
|
||||
*/
|
||||
/* Compatibility versions so compiling works on older Windows SDKs */
|
||||
#include "../misc/windows/min-wincrypt.h"
|
||||
//#include "../misc/windows/min-wincrypt.h"
|
||||
|
||||
#include <wincrypt.h>
|
||||
|
||||
void CertsBackend_Init(void) {
|
||||
Crypt32_LoadDynamicFuncs();
|
||||
//Crypt32_LoadDynamicFuncs();
|
||||
}
|
||||
|
||||
int Certs_VerifyChain(struct X509CertContext* x509) {
|
||||
struct X509Cert* cert = &x509->certs[0];
|
||||
int i;
|
||||
|
||||
HCERTSTORE store = CertOpenStore(CERT_STORE_PROV_MEMORY, 0, NULL,
|
||||
CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG, NULL);
|
||||
if (!store) return ERR_NOT_SUPPORTED;
|
||||
|
||||
PCCERT_CONTEXT primary_cert = NULL;
|
||||
BOOL ok = CertAddEncodedCertificateToStore(store, X509_ASN_ENCODING, cert->data, cert->offset,
|
||||
CERT_STORE_ADD_ALWAYS, &primary_cert);
|
||||
if (!ok || !primary_cert)
|
||||
return -1;
|
||||
|
||||
for (i = 1; i < x509->numCerts; i++)
|
||||
{
|
||||
cert = &x509->certs[i];
|
||||
ok = CertAddEncodedCertificateToStore(store, X509_ASN_ENCODING, cert->data, cert->offset,
|
||||
CERT_STORE_ADD_ALWAYS, NULL);
|
||||
}
|
||||
//if (!_CertGetCertificateChain) return ERR_NOT_SUPPORTED;
|
||||
|
||||
static const LPCSTR usage[] = {
|
||||
szOID_PKIX_KP_SERVER_AUTH,
|
||||
szOID_SERVER_GATED_CRYPTO,
|
||||
szOID_SGC_NETSCAPE
|
||||
};
|
||||
|
||||
CERT_CHAIN_PARA para = { 0 };
|
||||
para.cbSize = sizeof(para);
|
||||
|
||||
para.RequestedUsage.dwType = USAGE_MATCH_TYPE_OR;
|
||||
para.RequestedUsage.Usage.cUsageIdentifier = Array_Elems(usage);
|
||||
para.RequestedUsage.Usage.rgpszUsageIdentifier = usage;
|
||||
|
||||
PCCERT_CHAIN_CONTEXT chain = NULL;
|
||||
ok = CertGetCertificateChain(NULL, primary_cert, NULL, NULL, ¶, 0, NULL, &chain);
|
||||
//_CertGetCertificateChain(NULL, PCCERT_CONTEXT certContext, NULL, HCERTSTORE additionalStore, PCERT_CHAIN_PARA chainPara, DWORD flags, PVOID reserved, PCCERT_CHAIN_CONTEXT* chainContext);
|
||||
|
||||
CertFreeCertificateChain(chain);
|
||||
ok = CertFreeCertificateContext(primary_cert);
|
||||
ok = CertCloseStore(store, CERT_CLOSE_STORE_CHECK_FLAG);
|
||||
return ERR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
|
@ -188,7 +188,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<MinimumRequiredVersion>5.02</MinimumRequiredVersion>
|
||||
<EntryPointSymbol>main</EntryPointSymbol>
|
||||
<AdditionalDependencies>opengl32.lib;Winmm.lib;crypt32.lib;ucrtd.lib;vcruntimed.lib;msvcrtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>crypt32.lib;Winmm.lib;crypt32.lib;ucrtd.lib;vcruntimed.lib;msvcrtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
@ -208,7 +208,7 @@
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EntryPointSymbol>main</EntryPointSymbol>
|
||||
<AdditionalDependencies>opengl32.lib;Winmm.lib;ucrtd.lib;vcruntimed.lib;msvcrtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>crypt32.lib;Winmm.lib;ucrtd.lib;vcruntimed.lib;msvcrtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
||||
@ -230,7 +230,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<MinimumRequiredVersion>5.02</MinimumRequiredVersion>
|
||||
<EntryPointSymbol>main</EntryPointSymbol>
|
||||
<AdditionalDependencies>opengl32.lib;Winmm.lib;ucrtd.lib;vcruntimed.lib;msvcrtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>crypt32.lib;Winmm.lib;ucrtd.lib;vcruntimed.lib;msvcrtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
|
||||
@ -252,7 +252,7 @@
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<MinimumRequiredVersion>5.02</MinimumRequiredVersion>
|
||||
<EntryPointSymbol>main</EntryPointSymbol>
|
||||
<AdditionalDependencies>opengl32.lib;Winmm.lib;ucrtd.lib;vcruntimed.lib;msvcrtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>crypt32.lib;Winmm.lib;ucrtd.lib;vcruntimed.lib;msvcrtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
@ -281,7 +281,7 @@
|
||||
<MinimumRequiredVersion>5.02</MinimumRequiredVersion>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<EntryPointSymbol>main</EntryPointSymbol>
|
||||
<AdditionalDependencies>opengl32.lib;Winmm.lib;libucrt.lib;libvcruntime.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>crypt32.lib;Winmm.lib;libucrt.lib;libvcruntime.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
@ -308,7 +308,7 @@
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EntryPointSymbol>main</EntryPointSymbol>
|
||||
<AdditionalDependencies>opengl32.lib;Winmm.lib;libucrt.lib;libvcruntime.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>crypt32.lib;Winmm.lib;libucrt.lib;libvcruntime.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
|
||||
@ -338,7 +338,7 @@
|
||||
<MinimumRequiredVersion>5.02</MinimumRequiredVersion>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<EntryPointSymbol>main</EntryPointSymbol>
|
||||
<AdditionalDependencies>opengl32.lib;Winmm.lib;libucrt.lib;libvcruntime.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>crypt32.lib;Winmm.lib;libucrt.lib;libvcruntime.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
|
||||
@ -368,7 +368,7 @@
|
||||
<MinimumRequiredVersion>5.02</MinimumRequiredVersion>
|
||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
||||
<EntryPointSymbol>main</EntryPointSymbol>
|
||||
<AdditionalDependencies>opengl32.lib;Winmm.lib;libucrt.lib;libvcruntime.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>crypt32.lib;Winmm.lib;libucrt.lib;libvcruntime.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
|
Loading…
x
Reference in New Issue
Block a user