[cpp-sp] 05/05: more stuff
Rod Widdowson
rdw at steadingsoftware.com
Thu May 8 15:27:30 UTC 2025
This is an automated email from the git hooks/post-receive script.
rdw pushed a commit to branch dev/SPPSP-8-playpen
in repository cpp-sp.
View the commit online:
http://git.shibboleth.net/view/?p=cpp-sp.git;a=commit;h=51dc6669513d0aad1da8f3efc6a8d81b33daea44
commit 51dc6669513d0aad1da8f3efc6a8d81b33daea44
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Thu May 8 15:39:04 2025 +0100
more stuff
---
Projects/WinHttpProject/R10.crt | 29 ++++++++++++++++++
Projects/WinHttpProject/WinHttpProject.cpp | 48 ++++++++++++++++++++++++------
Projects/WinHttpProject/root.pem | 31 +++++++++++++++++++
3 files changed, 99 insertions(+), 9 deletions(-)
diff --git a/Projects/WinHttpProject/R10.crt b/Projects/WinHttpProject/R10.crt
new file mode 100644
index 00000000..4bfbe316
--- /dev/null
+++ b/Projects/WinHttpProject/R10.crt
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIFBTCCAu2gAwIBAgIQS6hSk/eaL6JzBkuoBI110DANBgkqhkiG9w0BAQsFADBP
+MQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFy
+Y2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMTAeFw0yNDAzMTMwMDAwMDBa
+Fw0yNzAzMTIyMzU5NTlaMDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBF
+bmNyeXB0MQwwCgYDVQQDEwNSMTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQDPV+XmxFQS7bRH/sknWHZGUCiMHT6I3wWd1bUYKb3dtVq/+vbOo76vACFL
+YlpaPAEvxVgD9on/jhFD68G14BQHlo9vH9fnuoE5CXVlt8KvGFs3Jijno/QHK20a
+/6tYvJWuQP/py1fEtVt/eA0YYbwX51TGu0mRzW4Y0YCF7qZlNrx06rxQTOr8IfM4
+FpOUurDTazgGzRYSespSdcitdrLCnF2YRVxvYXvGLe48E1KGAdlX5jgc3421H5KR
+mudKHMxFqHJV8LDmowfs/acbZp4/SItxhHFYyTr6717yW0QrPHTnj7JHwQdqzZq3
+DZb3EoEmUVQK7GH29/Xi8orIlQ2NAgMBAAGjgfgwgfUwDgYDVR0PAQH/BAQDAgGG
+MB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATASBgNVHRMBAf8ECDAGAQH/
+AgEAMB0GA1UdDgQWBBS7vMNHpeS8qcbDpHIMEI2iNeHI6DAfBgNVHSMEGDAWgBR5
+tFnme7bl5AFzgAiIyBpY9umbbjAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAKG
+Fmh0dHA6Ly94MS5pLmxlbmNyLm9yZy8wEwYDVR0gBAwwCjAIBgZngQwBAgEwJwYD
+VR0fBCAwHjAcoBqgGIYWaHR0cDovL3gxLmMubGVuY3Iub3JnLzANBgkqhkiG9w0B
+AQsFAAOCAgEAkrHnQTfreZ2B5s3iJeE6IOmQRJWjgVzPw139vaBw1bGWKCIL0vIo
+zwzn1OZDjCQiHcFCktEJr59L9MhwTyAWsVrdAfYf+B9haxQnsHKNY67u4s5Lzzfd
+u6PUzeetUK29v+PsPmI2cJkxp+iN3epi4hKu9ZzUPSwMqtCceb7qPVxEbpYxY1p9
+1n5PJKBLBX9eb9LU6l8zSxPWV7bK3lG4XaMJgnT9x3ies7msFtpKK5bDtotij/l0
+GaKeA97pb5uwD9KgWvaFXMIEt8jVTjLEvwRdvCn294GPDF08U8lAkIv7tghluaQh
+1QnlE4SEN4LOECj8dsIGJXpGUk3aU3KkJz9icKy+aUgA+2cP21uh6NcDIS3XyfaZ
+QjmDQ993ChII8SXWupQZVBiIpcWO4RqZk3lr7Bz5MUCwzDIA359e57SSq5CCkY0N
+4B6Vulk7LktfwrdGNVI5BsC9qqxSwSKgRJeZ9wygIaehbHFHFhcBaMDKpiZlBHyz
+rsnnlFXCb5s8HKn5LsUgGvB24L7sGNZP2CX7dhHov+YhD+jozLW2p9W4959Bz2Ei
+RmqDtmiXLnzqTpXbI+suyCsohKRg6Un0RC47+cpiVwHiXZAW+cn8eiNIjqbVgXLx
+KPpdzvvtTnOPlC7SQZSYmdunr3Bf9b77AiC/ZidstK36dRILKz7OA54=
+-----END CERTIFICATE-----
diff --git a/Projects/WinHttpProject/WinHttpProject.cpp b/Projects/WinHttpProject/WinHttpProject.cpp
index a3cacdd0..c5c64ed7 100644
--- a/Projects/WinHttpProject/WinHttpProject.cpp
+++ b/Projects/WinHttpProject/WinHttpProject.cpp
@@ -18,14 +18,21 @@ static
BOOLEAN
CheckCertCtx(PCCERT_CONTEXT context) {
- PCCERT_CONTEXT outCtx
+ CERT_CHAIN_PARA chainPara = {0};
+ chainPara.cbSize = sizeof(chainPara);
- = CertFindCertificateInStore(certStore, X509_ASN_ENCODING, 0, CERT_FIND_EXISTING, context, NULL);
+ PCCERT_CHAIN_CONTEXT chainContext;
/*
-// if (!CertGetCertificateChain(engine, context, NULL, context->hCertStore, &chainPara, 0, // No revocation checking
// if (!CertGetCertificateChain(NULL, context, NULL, context->hCertStore, &chainPara, 0, // No revocation checking
- if (!CertGetCertificateChain(NULL, context, NULL, certStore, &chainPara, 0, // No revocation checking
- NULL, &chainContext)) {
+// if (!CertGetCertificateChain(NULL, context, NULL, certStore, &chainPara, 0, // No revocation checking
+//
+*/
+
+
+
+ if (!CertGetCertificateChain(nullptr, context, NULL, context->hCertStore, &chainPara, CERT_CHAIN_CACHE_END_CERT /*Revocation*/, NULL, &chainContext)) { // No revocation checking
+
+
cout << "CertGetCertificateChain failed " << GetLastError() << endl;
return FALSE;
@@ -33,7 +40,9 @@ CheckCertCtx(PCCERT_CONTEXT context) {
CERT_SIMPLE_CHAIN* pSimpleChain = chainContext->rgpChain[0];
DWORD dwTrustErrorMask = ~(DWORD)(CERT_TRUST_IS_NOT_TIME_NESTED);
- dwTrustErrorMask = pSimpleChain->TrustStatus.dwErrorStatus;
+ dwTrustErrorMask = chainContext->rgpChain[0]->TrustStatus.dwErrorStatus;
+// dwTrustErrorMask = chainContext->rgpChain[1]->TrustStatus.dwErrorStatus;
+ // dwTrustErrorMask = chainContext->rgpChain[2]->TrustStatus.dwErrorStatus;
CertFreeCertificateChain(chainContext);
if (dwTrustErrorMask) {
@@ -43,7 +52,7 @@ CheckCertCtx(PCCERT_CONTEXT context) {
return FALSE;
}
- */
+
return TRUE;
}
@@ -57,6 +66,8 @@ static void Callback(
DWORD dwStatusInformationLength)
{
PCCERT_CONTEXT pCertCtx = NULL;
+ PCERT_CHAIN_CONTEXT ccCtx;
+// PCERT_SIMPLE_CHAIN ccc;
DWORD dwSize = sizeof(pCertCtx);
cout << "Handle " << hex << hInternet <<endl;
cout << "Context " << dec << dwContext << endl;
@@ -77,6 +88,14 @@ static void Callback(
CertFreeCertificateContext(pCertCtx);
}
+ if (!WinHttpQueryOption(hInternet, WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT, &ccCtx, &dwSize)) {
+ cout << "Gack " << GetLastError() << endl;
+ }
+ else {
+ DWORD dwTrustErrorMask = ccCtx->rgpChain[0]->TrustStatus.dwErrorStatus;
+ dwTrustErrorMask = ccCtx->rgpChain[1]->TrustStatus.dwErrorStatus;
+ dwTrustErrorMask = ccCtx->rgpChain[2]->TrustStatus.dwErrorStatus;
+ }
break;
case WINHTTP_CALLBACK_STATUS_READ_COMPLETE:
@@ -148,8 +167,10 @@ int main()
PCERT_CONTEXT certContext = NULL;
if (!CryptQueryObject(CERT_QUERY_OBJECT_FILE,
- L"V:\\perforce\\SP\\cpp-sp\\Projects\\WinHttpProject\\shib.cert",
- // L"V:\\perforce\\SP\\cpp-sp\\tests\\data\\remoting\\impl\\trustfile.pem",
+ //L"V:\\perforce\\SP\\cpp-sp\\Projects\\WinHttpProject\\shib.cert",
+ // L"c:\\users\\rdw\\desktop\\iis\\root.pem",
+ L"V:\\perforce\\SP\\cpp-sp\\Projects\\WinHttpProject\\r10.crt",
+ // L"V:\\perforce\\SP\\cpp-sp\\tests\\data\\remoting\\impl\\trustfile.pem",
CERT_QUERY_CONTENT_FLAG_CERT,
CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED,
0,
@@ -257,6 +278,15 @@ int main()
// Send a request.
if (hRequest)
+ if (!WinHttpSetCredentials(hRequest,
+ WINHTTP_AUTH_TARGET_SERVER,
+ WINHTTP_AUTH_SCHEME_BASIC, L"user", L"Pass",
+ nullptr)) {
+
+ cerr << "Urk " << GetLastError() << endl;
+ }
+
+
bResults = WinHttpSendRequest(hRequest,
WINHTTP_NO_ADDITIONAL_HEADERS, 0,
WINHTTP_NO_REQUEST_DATA, 0,
diff --git a/Projects/WinHttpProject/root.pem b/Projects/WinHttpProject/root.pem
new file mode 100644
index 00000000..b85c8037
--- /dev/null
+++ b/Projects/WinHttpProject/root.pem
@@ -0,0 +1,31 @@
+-----BEGIN CERTIFICATE-----
+MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
+TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
+cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
+WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
+ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
+MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
+h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
+0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
+A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
+T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
+B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
+B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
+KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
+OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
+jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
+qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
+rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
+hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
+ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
+3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
+NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
+ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
+TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
+jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
+oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
+4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
+mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
+emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
+-----END CERTIFICATE-----
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list