Skip to content

Commit d3d2f18

Browse files
committed
update docs for HTTPS user certificate feature
1 parent ed3cbe6 commit d3d2f18

39 files changed

Lines changed: 199 additions & 142 deletions

docs/index.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,10 @@ typedef struct {
117117
std::string username;
118118
std::string password;
119119
} basicAuth;
120+
121+
std::string certPath;
122+
std::string certType;
123+
std::string keyPath;
120124
std::string customUserAgent;
121125
struct {
122126
// total time of the last request in seconds Total time of previous
@@ -168,6 +172,21 @@ In order to provide an easy to use API, the simple usage via the static
168172
methods implicitly calls the curl global functions and is therefore also **not
169173
thread-safe**.
170174

175+
## HTTPS User Certificate
176+
177+
Simple wrapper functions are provided to allow clients to authenticate using certificates.
178+
Under the hood these wrappers set cURL options, e.g. `CURLOPT_SSLCERT`, using `curl_easy_setopt`.
179+
Note: currently `libcurl` compiled with `gnutls` (e.g. `libcurl4-gnutls-dev` on
180+
ubuntu) is buggy in that it returns a wrong error code when these options are set to invalid values.
181+
182+
```cpp
183+
// set CURLOPT_SSLCERT
184+
conn->SetCertPath(certPath);
185+
// set CURLOPT_SSLCERTTYPE
186+
conn->SetCertType(type);
187+
// set CURLOPT_SSLKEY
188+
conn->SetKeyPath(keyPath);
189+
```
171190
172191
## Dependencies
173192
- [libcurl][]

docs/ref/annotated.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@
102102
</div><!-- contents -->
103103
<!-- start footer part -->
104104
<hr class="footer"/><address class="footer"><small>
105-
Generated on Sun Nov 27 2016 21:27:11 for restclient-cpp by &#160;<a href="http://www.doxygen.org/index.html">
105+
Generated on Fri Dec 2 2016 10:53:09 for restclient-cpp by &#160;<a href="http://www.doxygen.org/index.html">
106106
<img class="footer" src="doxygen.png" alt="doxygen"/>
107107
</a> 1.8.9.1
108108
</small></address>

docs/ref/class_rest_client_1_1_connection-members.html

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@
9696
<p>This is the complete list of members for <a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a>, including all inherited members.</p>
9797
<table class="directory">
9898
<tr class="even"><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html#a60fd7521bfb4f604e6c7cdd278f038b3">AppendHeader</a>(const std::string &amp;key, const std::string &amp;value)</td><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a></td><td class="entry"></td></tr>
99-
<tr><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html#a42f991cc28f62deb120b96a50534884e">Connection</a>(const std::string baseUrl)</td><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
99+
<tr><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html#a658af2c6d1300c8a02e7f6436b43b4c9">Connection</a>(const std::string &amp;baseUrl)</td><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
100100
<tr class="even"><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html#a4a14035f66375a7291f9d16d87db41f2">del</a>(const std::string &amp;uri)</td><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a></td><td class="entry"></td></tr>
101101
<tr><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html#a77c9d405950492f9bcec21ce79edd2b3">FollowRedirects</a>(bool follow)</td><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a></td><td class="entry"></td></tr>
102102
<tr class="even"><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html#ad52e3500f995cb681b5f3d7f83d36418">get</a>(const std::string &amp;uri)</td><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a></td><td class="entry"></td></tr>
@@ -109,15 +109,18 @@
109109
<tr><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html#af1a30c5aa6a646e6bad4caf2abb7084c">put</a>(const std::string &amp;uri, const std::string &amp;data)</td><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a></td><td class="entry"></td></tr>
110110
<tr class="even"><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html#a9fdc2ee1b3b2cc2cca1f9fd29e6fd73f">SetBasicAuth</a>(const std::string &amp;username, const std::string &amp;password)</td><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a></td><td class="entry"></td></tr>
111111
<tr><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html#afd74a344a00b58fc6997e34c37dde834">SetCAInfoFilePath</a>(const std::string &amp;caInfoFilePath)</td><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a></td><td class="entry"></td></tr>
112+
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SetCertPath</b>(const std::string &amp;cert) (defined in <a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a>)</td><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a></td><td class="entry"></td></tr>
113+
<tr bgcolor="#f0f0f0"><td class="entry"><b>SetCertType</b>(const std::string &amp;type) (defined in <a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a>)</td><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a></td><td class="entry"></td></tr>
112114
<tr class="even"><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html#a6af41bf467a80deb83f20044f2c17344">SetHeaders</a>(RestClient::HeaderFields headers)</td><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a></td><td class="entry"></td></tr>
113-
<tr><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html#ad7b6f92f59861b4c8dc914d4d226d89d">SetTimeout</a>(int seconds)</td><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a></td><td class="entry"></td></tr>
114-
<tr class="even"><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html#a3e510fdf8291e9e277df72b0fae0a111">SetUserAgent</a>(const std::string &amp;userAgent)</td><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a></td><td class="entry"></td></tr>
115-
<tr bgcolor="#f0f0f0"><td class="entry"><b>username</b> (defined in <a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a>)</td><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a></td><td class="entry"></td></tr>
116-
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~Connection</b>() (defined in <a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a>)</td><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a></td><td class="entry"></td></tr>
115+
<tr bgcolor="#f0f0f0"><td class="entry"><b>SetKeyPath</b>(const std::string &amp;keyPath) (defined in <a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a>)</td><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a></td><td class="entry"></td></tr>
116+
<tr class="even"><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html#ad7b6f92f59861b4c8dc914d4d226d89d">SetTimeout</a>(int seconds)</td><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a></td><td class="entry"></td></tr>
117+
<tr><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html#a3e510fdf8291e9e277df72b0fae0a111">SetUserAgent</a>(const std::string &amp;userAgent)</td><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a></td><td class="entry"></td></tr>
118+
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>username</b> (defined in <a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a>)</td><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a></td><td class="entry"></td></tr>
119+
<tr bgcolor="#f0f0f0"><td class="entry"><b>~Connection</b>() (defined in <a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a>)</td><td class="entry"><a class="el" href="class_rest_client_1_1_connection.html">RestClient::Connection</a></td><td class="entry"></td></tr>
117120
</table></div><!-- contents -->
118121
<!-- start footer part -->
119122
<hr class="footer"/><address class="footer"><small>
120-
Generated on Sun Nov 27 2016 21:27:11 for restclient-cpp by &#160;<a href="http://www.doxygen.org/index.html">
123+
Generated on Fri Dec 2 2016 10:53:09 for restclient-cpp by &#160;<a href="http://www.doxygen.org/index.html">
121124
<img class="footer" src="doxygen.png" alt="doxygen"/>
122125
</a> 1.8.9.1
123126
</small></address>

docs/ref/class_rest_client_1_1_connection.html

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,9 @@
113113
</table><table class="memberdecls">
114114
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
115115
Public Member Functions</h2></td></tr>
116-
<tr class="memitem:a42f991cc28f62deb120b96a50534884e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_rest_client_1_1_connection.html#a42f991cc28f62deb120b96a50534884e">Connection</a> (const std::string baseUrl)</td></tr>
117-
<tr class="memdesc:a42f991cc28f62deb120b96a50534884e"><td class="mdescLeft">&#160;</td><td class="mdescRight">constructor for the <a class="el" href="class_rest_client_1_1_connection.html" title="Connection object for advanced usage. ">Connection</a> object <a href="#a42f991cc28f62deb120b96a50534884e">More...</a><br /></td></tr>
118-
<tr class="separator:a42f991cc28f62deb120b96a50534884e"><td class="memSeparator" colspan="2">&#160;</td></tr>
116+
<tr class="memitem:a658af2c6d1300c8a02e7f6436b43b4c9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_rest_client_1_1_connection.html#a658af2c6d1300c8a02e7f6436b43b4c9">Connection</a> (const std::string &amp;baseUrl)</td></tr>
117+
<tr class="memdesc:a658af2c6d1300c8a02e7f6436b43b4c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">constructor for the <a class="el" href="class_rest_client_1_1_connection.html" title="Connection object for advanced usage. ">Connection</a> object <a href="#a658af2c6d1300c8a02e7f6436b43b4c9">More...</a><br /></td></tr>
118+
<tr class="separator:a658af2c6d1300c8a02e7f6436b43b4c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
119119
<tr class="memitem:a9fdc2ee1b3b2cc2cca1f9fd29e6fd73f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_rest_client_1_1_connection.html#a9fdc2ee1b3b2cc2cca1f9fd29e6fd73f">SetBasicAuth</a> (const std::string &amp;username, const std::string &amp;password)</td></tr>
120120
<tr class="memdesc:a9fdc2ee1b3b2cc2cca1f9fd29e6fd73f"><td class="mdescLeft">&#160;</td><td class="mdescRight">set username and password for basic auth <a href="#a9fdc2ee1b3b2cc2cca1f9fd29e6fd73f">More...</a><br /></td></tr>
121121
<tr class="separator:a9fdc2ee1b3b2cc2cca1f9fd29e6fd73f"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -131,6 +131,15 @@
131131
<tr class="memitem:afd74a344a00b58fc6997e34c37dde834"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_rest_client_1_1_connection.html#afd74a344a00b58fc6997e34c37dde834">SetCAInfoFilePath</a> (const std::string &amp;caInfoFilePath)</td></tr>
132132
<tr class="memdesc:afd74a344a00b58fc6997e34c37dde834"><td class="mdescLeft">&#160;</td><td class="mdescRight">set custom Certificate Authority (CA) path <a href="#afd74a344a00b58fc6997e34c37dde834">More...</a><br /></td></tr>
133133
<tr class="separator:afd74a344a00b58fc6997e34c37dde834"><td class="memSeparator" colspan="2">&#160;</td></tr>
134+
<tr class="memitem:ac6d5285360d1b8a1e314768f57835ef0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac6d5285360d1b8a1e314768f57835ef0"></a>
135+
void&#160;</td><td class="memItemRight" valign="bottom"><b>SetCertPath</b> (const std::string &amp;cert)</td></tr>
136+
<tr class="separator:ac6d5285360d1b8a1e314768f57835ef0"><td class="memSeparator" colspan="2">&#160;</td></tr>
137+
<tr class="memitem:a9d05b4a8537707eeddd552d8af0ddd9f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9d05b4a8537707eeddd552d8af0ddd9f"></a>
138+
void&#160;</td><td class="memItemRight" valign="bottom"><b>SetCertType</b> (const std::string &amp;type)</td></tr>
139+
<tr class="separator:a9d05b4a8537707eeddd552d8af0ddd9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
140+
<tr class="memitem:a78b5512722642a0aaa1e3fecb5a3bd99"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a78b5512722642a0aaa1e3fecb5a3bd99"></a>
141+
void&#160;</td><td class="memItemRight" valign="bottom"><b>SetKeyPath</b> (const std::string &amp;keyPath)</td></tr>
142+
<tr class="separator:a78b5512722642a0aaa1e3fecb5a3bd99"><td class="memSeparator" colspan="2">&#160;</td></tr>
134143
<tr class="memitem:aa4353eb1df932b254aa02446f4ac3b32"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_rest_client_1_1_connection.html#aa4353eb1df932b254aa02446f4ac3b32">GetUserAgent</a> ()</td></tr>
135144
<tr class="memdesc:aa4353eb1df932b254aa02446f4ac3b32"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the user agent to add to the request <a href="#aa4353eb1df932b254aa02446f4ac3b32">More...</a><br /></td></tr>
136145
<tr class="separator:aa4353eb1df932b254aa02446f4ac3b32"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -165,7 +174,7 @@
165174
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
166175
<div class="textblock"><p><a class="el" href="class_rest_client_1_1_connection.html" title="Connection object for advanced usage. ">Connection</a> object for advanced usage. </p>
167176
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
168-
<a class="anchor" id="a42f991cc28f62deb120b96a50534884e"></a>
177+
<a class="anchor" id="a658af2c6d1300c8a02e7f6436b43b4c9"></a>
169178
<div class="memitem">
170179
<div class="memproto">
171180
<table class="mlabels">
@@ -175,7 +184,7 @@
175184
<tr>
176185
<td class="memname">RestClient::Connection::Connection </td>
177186
<td>(</td>
178-
<td class="paramtype">const std::string&#160;</td>
187+
<td class="paramtype">const std::string &amp;&#160;</td>
179188
<td class="paramname"><em>baseUrl</em></td><td>)</td>
180189
<td></td>
181190
</tr>
@@ -607,7 +616,7 @@ <h2 class="groupheader">Member Function Documentation</h2>
607616
</div><!-- contents -->
608617
<!-- start footer part -->
609618
<hr class="footer"/><address class="footer"><small>
610-
Generated on Sun Nov 27 2016 21:27:11 for restclient-cpp by &#160;<a href="http://www.doxygen.org/index.html">
619+
Generated on Fri Dec 2 2016 10:53:09 for restclient-cpp by &#160;<a href="http://www.doxygen.org/index.html">
611620
<img class="footer" src="doxygen.png" alt="doxygen"/>
612621
</a> 1.8.9.1
613622
</small></address>

docs/ref/classes.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@
104104
</div><!-- contents -->
105105
<!-- start footer part -->
106106
<hr class="footer"/><address class="footer"><small>
107-
Generated on Sun Nov 27 2016 21:27:11 for restclient-cpp by &#160;<a href="http://www.doxygen.org/index.html">
107+
Generated on Fri Dec 2 2016 10:53:09 for restclient-cpp by &#160;<a href="http://www.doxygen.org/index.html">
108108
<img class="footer" src="doxygen.png" alt="doxygen"/>
109109
</a> 1.8.9.1
110110
</small></address>

docs/ref/connection_8h.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@
131131
</div></div><!-- contents -->
132132
<!-- start footer part -->
133133
<hr class="footer"/><address class="footer"><small>
134-
Generated on Sun Nov 27 2016 21:27:11 for restclient-cpp by &#160;<a href="http://www.doxygen.org/index.html">
134+
Generated on Fri Dec 2 2016 10:53:09 for restclient-cpp by &#160;<a href="http://www.doxygen.org/index.html">
135135
<img class="footer" src="doxygen.png" alt="doxygen"/>
136136
</a> 1.8.9.1
137137
</small></address>

0 commit comments

Comments
 (0)