Skip to content

Commit 36dba99

Browse files
APokornyme-no-dev
authored andcommitted
Extend HTTPClient to allow connecting with a client certificate (espressif#788)
* Forward client certificate to wificlient secure * remove comment
1 parent 0768590 commit 36dba99

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

‎libraries/HTTPClient/src/HTTPClient.cpp‎

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ class TransportTraits
5454
classTLSTraits : publicTransportTraits
5555
{
5656
public:
57-
TLSTraits(constchar* CAcert) :
58-
_cacert(CAcert)
57+
TLSTraits(constchar* CAcert, constchar* clicert = nullptr, constchar* clikey = nullptr) :
58+
_cacert(CAcert), _clicert(clicert), _clikey(clikey)
5959
{
6060
}
6161

@@ -67,12 +67,16 @@ class TLSTraits : public TransportTraits
6767
boolverify(WiFiClient& client, constchar* host) override
6868
{
6969
WiFiClientSecure& wcs = static_cast<WiFiClientSecure&>(client);
70-
wcs.setCACert(_cacert);
70+
wcs.setCACert(_cacert);
71+
wcs.setCertificate(_clicert);
72+
wcs.setPrivateKey(_clikey);
7173
returntrue;
7274
}
7375

7476
protected:
7577
constchar* _cacert;
78+
constchar* _clicert;
79+
constchar* _clikey;
7680
};
7781

7882
/**
@@ -203,6 +207,20 @@ bool HTTPClient::begin(String host, uint16_t port, String uri, const char* CAcer
203207
returntrue;
204208
}
205209

210+
boolHTTPClient::begin(String host, uint16_t port, String uri, constchar* CAcert, constchar* cli_cert, constchar* cli_key)
211+
{
212+
clear();
213+
_host = host;
214+
_port = port;
215+
_uri = uri;
216+
217+
if (strlen(CAcert) == 0){
218+
returnfalse;
219+
}
220+
_transportTraits = TransportTraitsPtr(newTLSTraits(CAcert, cli_cert, cli_key));
221+
returntrue;
222+
}
223+
206224
/**
207225
* end
208226
* called after the payload is handled

‎libraries/HTTPClient/src/HTTPClient.h‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ class HTTPClient
129129
boolbegin(String url, constchar* CAcert);
130130
boolbegin(String host, uint16_t port, String uri = "/");
131131
boolbegin(String host, uint16_t port, String uri, constchar* CAcert);
132+
boolbegin(String host, uint16_t port, String uri, constchar* CAcert, constchar* cli_cert, constchar* cli_key);
132133

133134
voidend(void);
134135

0 commit comments

Comments
(0)