Skip to content

Commit 36f8777

Browse files
committed
Add PhHttpSocketSetSecurity
1 parent ce4e5f4 commit 36f8777

File tree

3 files changed

+51
-2
lines changed

3 files changed

+51
-2
lines changed

ProcessHacker/ProcessHacker.def

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -723,6 +723,7 @@ EXPORTS
723723
PhHttpSocketReadDataToBuffer
724724
PhHttpSocketDownloadString
725725
PhHttpSocketSetFeature
726+
PhHttpSocketSetSecurity
726727
PhHttpSocketParseUrl
727728
PhHttpSocketGetErrorMessage
728729
PhHttpSocketSetCredentials

phlib/http.c

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,13 @@ static const PH_FLAG_MAPPING PhpHttpFeatureMappings[] =
4343
{ PH_HTTP_FEATURE_KEEP_ALIVE, WINHTTP_DISABLE_KEEP_ALIVE },
4444
};
4545

46+
static const PH_FLAG_MAPPING PhpHttpSecurityFlagsMappings[] =
47+
{
48+
{ PH_HTTP_SECURITY_IGNORE_UNKNOWN_CA, SECURITY_FLAG_IGNORE_UNKNOWN_CA },
49+
{ PH_HTTP_SECURITY_IGNORE_CERT_DATE_INVALID, SECURITY_FLAG_IGNORE_CERT_DATE_INVALID },
50+
};
51+
52+
_Success_(return)
4653
BOOLEAN PhHttpSocketCreate(
4754
_Out_ PPH_HTTP_CONTEXT *HttpContext,
4855
_In_opt_ PWSTR HttpUserAgent
@@ -109,9 +116,12 @@ BOOLEAN PhHttpSocketCreate(
109116
}
110117

111118
VOID PhHttpSocketDestroy(
112-
_Frees_ptr_ PPH_HTTP_CONTEXT HttpContext
119+
_In_ _Frees_ptr_ PPH_HTTP_CONTEXT HttpContext
113120
)
114121
{
122+
if (!HttpContext)
123+
return;
124+
115125
if (HttpContext->RequestHandle)
116126
WinHttpCloseHandle(HttpContext->RequestHandle);
117127
if (HttpContext->ConnectionHandle)
@@ -402,6 +412,7 @@ PPH_STRING PhHttpSocketQueryHeaderString(
402412
return stringBuffer;
403413
}
404414

415+
_Success_(return)
405416
BOOLEAN PhHttpSocketQueryHeaderUlong(
406417
_In_ PPH_HTTP_CONTEXT HttpContext,
407418
_In_ ULONG QueryValue,
@@ -524,6 +535,7 @@ PPH_STRING PhHttpSocketQueryOptionString(
524535
return stringBuffer;
525536
}
526537

538+
_Success_(return)
527539
BOOLEAN PhHttpSocketReadDataToBuffer(
528540
_In_ PVOID RequestHandle,
529541
_Out_ PVOID *Buffer,
@@ -636,6 +648,28 @@ BOOLEAN PhHttpSocketSetFeature(
636648
);
637649
}
638650

651+
BOOLEAN PhHttpSocketSetSecurity(
652+
_In_ PPH_HTTP_CONTEXT HttpContext,
653+
_In_ ULONG Feature
654+
)
655+
{
656+
ULONG featureValue = 0;
657+
658+
PhMapFlags1(
659+
&featureValue,
660+
Feature,
661+
PhpHttpSecurityFlagsMappings,
662+
RTL_NUMBER_OF(PhpHttpSecurityFlagsMappings)
663+
);
664+
665+
return !!WinHttpSetOption(
666+
HttpContext->RequestHandle,
667+
WINHTTP_OPTION_SECURITY_FLAGS,
668+
&featureValue,
669+
sizeof(ULONG)
670+
);
671+
}
672+
639673
_Success_(return)
640674
BOOLEAN PhHttpSocketParseUrl(
641675
_In_ PPH_STRING Url,

phlib/include/phnet.h

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ typedef struct _PH_HTTP_CONTEXT
157157
PWSTR ServerName;
158158
} PH_HTTP_CONTEXT, *PPH_HTTP_CONTEXT;
159159

160+
_Success_(return)
160161
PHLIBAPI
161162
BOOLEAN
162163
NTAPI
@@ -169,7 +170,7 @@ PHLIBAPI
169170
VOID
170171
NTAPI
171172
PhHttpSocketDestroy(
172-
_Frees_ptr_ PPH_HTTP_CONTEXT HttpContext
173+
_In_ _Frees_ptr_ PPH_HTTP_CONTEXT HttpContext
173174
);
174175

175176
#define PH_HTTP_DEFAULT_PORT 0 // use the protocol-specific default port
@@ -268,6 +269,7 @@ PhHttpSocketQueryHeaderString(
268269
#define PH_HTTP_QUERY_CONTENT_LENGTH 0x1
269270
#define PH_HTTP_QUERY_STATUS_CODE 0x2
270271

272+
_Success_(return)
271273
PHLIBAPI
272274
BOOLEAN
273275
NTAPI
@@ -286,6 +288,7 @@ PhHttpSocketQueryOptionString(
286288
_In_ ULONG QueryOption
287289
);
288290

291+
_Success_(return)
289292
PHLIBAPI
290293
BOOLEAN
291294
NTAPI
@@ -315,6 +318,17 @@ PhHttpSocketSetFeature(
315318
_In_ BOOLEAN Enable
316319
);
317320

321+
#define PH_HTTP_SECURITY_IGNORE_UNKNOWN_CA 0x1
322+
#define PH_HTTP_SECURITY_IGNORE_CERT_DATE_INVALID 0x2
323+
324+
PHLIBAPI
325+
BOOLEAN
326+
NTAPI
327+
PhHttpSocketSetSecurity(
328+
_In_ PPH_HTTP_CONTEXT HttpContext,
329+
_In_ ULONG Feature
330+
);
331+
318332
_Success_(return)
319333
PHLIBAPI
320334
BOOLEAN

0 commit comments

Comments
 (0)