Skip to content

Commit 8bf66bb

Browse files
committed
Added support for loading certificates and private key pairs from PKCS pocoproject#12 files, as well as loading certificates (without private key) from PEM or DER files. Some code restructuring and cleanup.
1 parent 7591917 commit 8bf66bb

53 files changed

Lines changed: 1802 additions & 395 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

NetSSL_Win/NetSSL_Win_CE_vs90.vcproj

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -452,8 +452,18 @@
452452
RelativePath=".\include\Poco\Net\Context.h"/>
453453
<File
454454
RelativePath=".\include\Poco\Net\InvalidCertificateHandler.h"/>
455+
<File
456+
RelativePath=".\include\Poco\Net\KeyConsoleHandler.h"/>
457+
<File
458+
RelativePath=".\include\Poco\Net\KeyFileHandler.h"/>
455459
<File
456460
RelativePath=".\include\Poco\Net\NetSSL.h"/>
461+
<File
462+
RelativePath=".\include\Poco\Net\PrivateKeyFactory.h"/>
463+
<File
464+
RelativePath=".\include\Poco\Net\PrivateKeyFactoryMgr.h"/>
465+
<File
466+
RelativePath=".\include\Poco\Net\PrivateKeyPassphraseHandler.h"/>
457467
<File
458468
RelativePath=".\include\Poco\Net\RejectCertificateHandler.h"/>
459469
<File
@@ -483,6 +493,16 @@
483493
RelativePath=".\src\Context.cpp"/>
484494
<File
485495
RelativePath=".\src\InvalidCertificateHandler.cpp"/>
496+
<File
497+
RelativePath=".\src\KeyConsoleHandler.cpp"/>
498+
<File
499+
RelativePath=".\src\KeyFileHandler.cpp"/>
500+
<File
501+
RelativePath=".\src\PrivateKeyFactory.cpp"/>
502+
<File
503+
RelativePath=".\src\PrivateKeyFactoryMgr.cpp"/>
504+
<File
505+
RelativePath=".\src\PrivateKeyPassphraseHandler.cpp"/>
486506
<File
487507
RelativePath=".\src\RejectCertificateHandler.cpp"/>
488508
<File

NetSSL_Win/NetSSL_Win_WEC2013_vs110.vcxproj

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,12 @@
266266
<ClInclude Include="include\Poco\Net\ConsoleCertificateHandler.h"/>
267267
<ClInclude Include="include\Poco\Net\Context.h"/>
268268
<ClInclude Include="include\Poco\Net\InvalidCertificateHandler.h"/>
269+
<ClInclude Include="include\Poco\Net\KeyConsoleHandler.h"/>
270+
<ClInclude Include="include\Poco\Net\KeyFileHandler.h"/>
269271
<ClInclude Include="include\Poco\Net\NetSSL.h"/>
272+
<ClInclude Include="include\Poco\Net\PrivateKeyFactory.h"/>
273+
<ClInclude Include="include\Poco\Net\PrivateKeyFactoryMgr.h"/>
274+
<ClInclude Include="include\Poco\Net\PrivateKeyPassphraseHandler.h"/>
270275
<ClInclude Include="include\Poco\Net\RejectCertificateHandler.h"/>
271276
<ClInclude Include="include\Poco\Net\Session.h"/>
272277
<ClInclude Include="include\Poco\Net\SSLException.h"/>
@@ -291,6 +296,11 @@
291296
<ClCompile Include="src\ConsoleCertificateHandler.cpp"/>
292297
<ClCompile Include="src\Context.cpp"/>
293298
<ClCompile Include="src\InvalidCertificateHandler.cpp"/>
299+
<ClCompile Include="src\KeyConsoleHandler.cpp"/>
300+
<ClCompile Include="src\KeyFileHandler.cpp"/>
301+
<ClCompile Include="src\PrivateKeyFactory.cpp"/>
302+
<ClCompile Include="src\PrivateKeyFactoryMgr.cpp"/>
303+
<ClCompile Include="src\PrivateKeyPassphraseHandler.cpp"/>
294304
<ClCompile Include="src\RejectCertificateHandler.cpp"/>
295305
<ClCompile Include="src\Session.cpp"/>
296306
<ClCompile Include="src\SSLException.cpp"/>

NetSSL_Win/NetSSL_Win_WEC2013_vs110.vcxproj.filters

Lines changed: 42 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,40 @@
22
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<ItemGroup>
44
<Filter Include="SSLCore">
5-
<UniqueIdentifier>{0de4c045-244a-4f3d-bbe0-6752e514e24e}</UniqueIdentifier>
5+
<UniqueIdentifier>{878fcba1-5071-4bbc-9808-ba399e5f47b2}</UniqueIdentifier>
66
</Filter>
77
<Filter Include="SSLCore\Header Files">
8-
<UniqueIdentifier>{ada49bc2-53fc-485b-af4b-d949b6ab27b6}</UniqueIdentifier>
8+
<UniqueIdentifier>{64ad3706-6090-4f59-a7d2-3ad8116fcbba}</UniqueIdentifier>
99
</Filter>
1010
<Filter Include="SSLCore\Source Files">
11-
<UniqueIdentifier>{737631db-8e42-4fc8-b5a1-cb271ceb3ef1}</UniqueIdentifier>
11+
<UniqueIdentifier>{42c9b776-e1b4-4c74-87d5-b16a75951435}</UniqueIdentifier>
1212
</Filter>
1313
<Filter Include="HTTPSClient">
14-
<UniqueIdentifier>{199d6a83-c25e-4398-9f16-16957df1ec5c}</UniqueIdentifier>
14+
<UniqueIdentifier>{4235c012-9e23-4d54-b8c6-1b08aa3a6a3d}</UniqueIdentifier>
1515
</Filter>
1616
<Filter Include="HTTPSClient\Header Files">
17-
<UniqueIdentifier>{ccfb091f-6c84-4b22-b938-2f6b32e12a87}</UniqueIdentifier>
17+
<UniqueIdentifier>{530dbfdf-75df-4fe4-88d9-85d9655dae95}</UniqueIdentifier>
1818
</Filter>
1919
<Filter Include="HTTPSClient\Source Files">
20-
<UniqueIdentifier>{57f513f0-beb5-4f2b-aed9-1f598a8dcc19}</UniqueIdentifier>
20+
<UniqueIdentifier>{547c4e14-71d8-4eed-bbf1-ee5322e24d9f}</UniqueIdentifier>
2121
</Filter>
2222
<Filter Include="SSLSockets">
23-
<UniqueIdentifier>{cf0e79e4-80cf-4bf1-af31-e2b85653dfa4}</UniqueIdentifier>
23+
<UniqueIdentifier>{70849ccf-117c-4166-beb2-653e442f8c44}</UniqueIdentifier>
2424
</Filter>
2525
<Filter Include="SSLSockets\Header Files">
26-
<UniqueIdentifier>{b0cd62ad-d71b-453a-a44f-3574bd25e1b8}</UniqueIdentifier>
26+
<UniqueIdentifier>{797700db-19bc-4dc9-9418-93ab59a55c59}</UniqueIdentifier>
2727
</Filter>
2828
<Filter Include="SSLSockets\Source Files">
29-
<UniqueIdentifier>{c46f75d0-ef5c-4dab-8cc6-5d85eb75868c}</UniqueIdentifier>
29+
<UniqueIdentifier>{edb78030-e579-4746-adc6-017d0b853fb2}</UniqueIdentifier>
3030
</Filter>
3131
<Filter Include="Mail">
32-
<UniqueIdentifier>{9d2f9d58-7cd4-4d21-b242-99a586ecbb8c}</UniqueIdentifier>
32+
<UniqueIdentifier>{78be0b04-6d64-4145-a996-bed7680652df}</UniqueIdentifier>
3333
</Filter>
3434
<Filter Include="Mail\Header Files">
35-
<UniqueIdentifier>{96ed50c7-25e8-488d-a74a-23010163ecb9}</UniqueIdentifier>
35+
<UniqueIdentifier>{c6454dbf-ff4f-458e-924f-a47ee413f36f}</UniqueIdentifier>
3636
</Filter>
3737
<Filter Include="Mail\Source Files">
38-
<UniqueIdentifier>{eb75171e-737a-49a4-b3ef-4912a3ff35fc}</UniqueIdentifier>
38+
<UniqueIdentifier>{6408e594-6faf-4cad-a766-49898fc6bd8b}</UniqueIdentifier>
3939
</Filter>
4040
</ItemGroup>
4141
<ItemGroup>
@@ -60,9 +60,24 @@
6060
<ClInclude Include="include\Poco\Net\InvalidCertificateHandler.h">
6161
<Filter>SSLCore\Header Files</Filter>
6262
</ClInclude>
63+
<ClInclude Include="include\Poco\Net\KeyConsoleHandler.h">
64+
<Filter>SSLCore\Header Files</Filter>
65+
</ClInclude>
66+
<ClInclude Include="include\Poco\Net\KeyFileHandler.h">
67+
<Filter>SSLCore\Header Files</Filter>
68+
</ClInclude>
6369
<ClInclude Include="include\Poco\Net\NetSSL.h">
6470
<Filter>SSLCore\Header Files</Filter>
6571
</ClInclude>
72+
<ClInclude Include="include\Poco\Net\PrivateKeyFactory.h">
73+
<Filter>SSLCore\Header Files</Filter>
74+
</ClInclude>
75+
<ClInclude Include="include\Poco\Net\PrivateKeyFactoryMgr.h">
76+
<Filter>SSLCore\Header Files</Filter>
77+
</ClInclude>
78+
<ClInclude Include="include\Poco\Net\PrivateKeyPassphraseHandler.h">
79+
<Filter>SSLCore\Header Files</Filter>
80+
</ClInclude>
6681
<ClInclude Include="include\Poco\Net\RejectCertificateHandler.h">
6782
<Filter>SSLCore\Header Files</Filter>
6883
</ClInclude>
@@ -131,6 +146,21 @@
131146
<ClCompile Include="src\InvalidCertificateHandler.cpp">
132147
<Filter>SSLCore\Source Files</Filter>
133148
</ClCompile>
149+
<ClCompile Include="src\KeyConsoleHandler.cpp">
150+
<Filter>SSLCore\Source Files</Filter>
151+
</ClCompile>
152+
<ClCompile Include="src\KeyFileHandler.cpp">
153+
<Filter>SSLCore\Source Files</Filter>
154+
</ClCompile>
155+
<ClCompile Include="src\PrivateKeyFactory.cpp">
156+
<Filter>SSLCore\Source Files</Filter>
157+
</ClCompile>
158+
<ClCompile Include="src\PrivateKeyFactoryMgr.cpp">
159+
<Filter>SSLCore\Source Files</Filter>
160+
</ClCompile>
161+
<ClCompile Include="src\PrivateKeyPassphraseHandler.cpp">
162+
<Filter>SSLCore\Source Files</Filter>
163+
</ClCompile>
134164
<ClCompile Include="src\RejectCertificateHandler.cpp">
135165
<Filter>SSLCore\Source Files</Filter>
136166
</ClCompile>

NetSSL_Win/NetSSL_Win_WEC2013_vs120.vcxproj

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,12 @@
269269
<ClInclude Include="include\Poco\Net\HTTPSSessionInstantiator.h"/>
270270
<ClInclude Include="include\Poco\Net\HTTPSStreamFactory.h"/>
271271
<ClInclude Include="include\Poco\Net\InvalidCertificateHandler.h"/>
272+
<ClInclude Include="include\Poco\Net\KeyConsoleHandler.h"/>
273+
<ClInclude Include="include\Poco\Net\KeyFileHandler.h"/>
272274
<ClInclude Include="include\Poco\Net\NetSSL.h"/>
275+
<ClInclude Include="include\Poco\Net\PrivateKeyFactory.h"/>
276+
<ClInclude Include="include\Poco\Net\PrivateKeyFactoryMgr.h"/>
277+
<ClInclude Include="include\Poco\Net\PrivateKeyPassphraseHandler.h"/>
273278
<ClInclude Include="include\Poco\Net\RejectCertificateHandler.h"/>
274279
<ClInclude Include="include\Poco\Net\SecureServerSocket.h"/>
275280
<ClInclude Include="include\Poco\Net\SecureServerSocketImpl.h"/>
@@ -294,6 +299,11 @@
294299
<ClCompile Include="src\HTTPSSessionInstantiator.cpp"/>
295300
<ClCompile Include="src\HTTPSStreamFactory.cpp"/>
296301
<ClCompile Include="src\InvalidCertificateHandler.cpp"/>
302+
<ClCompile Include="src\KeyConsoleHandler.cpp"/>
303+
<ClCompile Include="src\KeyFileHandler.cpp"/>
304+
<ClCompile Include="src\PrivateKeyFactory.cpp"/>
305+
<ClCompile Include="src\PrivateKeyFactoryMgr.cpp"/>
306+
<ClCompile Include="src\PrivateKeyPassphraseHandler.cpp"/>
297307
<ClCompile Include="src\RejectCertificateHandler.cpp"/>
298308
<ClCompile Include="src\SecureServerSocket.cpp"/>
299309
<ClCompile Include="src\SecureServerSocketImpl.cpp"/>

NetSSL_Win/NetSSL_Win_WEC2013_vs120.vcxproj.filters

Lines changed: 42 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,40 @@
22
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<ItemGroup>
44
<Filter Include="SSLCore">
5-
<UniqueIdentifier>{8a779d3f-ea3a-4ef9-8789-f392fabb6cdf}</UniqueIdentifier>
5+
<UniqueIdentifier>{4f9a490c-4ba0-4b3c-9b41-12ff62826512}</UniqueIdentifier>
66
</Filter>
77
<Filter Include="SSLCore\Header Files">
8-
<UniqueIdentifier>{eaa03a7b-b6d8-4110-8dd0-c85d218b6670}</UniqueIdentifier>
8+
<UniqueIdentifier>{89381472-4f3a-4a9e-bb4d-3aed565b472d}</UniqueIdentifier>
99
</Filter>
1010
<Filter Include="SSLCore\Source Files">
11-
<UniqueIdentifier>{0d93ccfa-eb51-4a64-9ff3-d7f9d0a17787}</UniqueIdentifier>
11+
<UniqueIdentifier>{71009931-c710-4852-bebf-caebfcd78782}</UniqueIdentifier>
1212
</Filter>
1313
<Filter Include="HTTPSClient">
14-
<UniqueIdentifier>{44a3be9b-137c-4d5c-a050-cff2bf85b6e4}</UniqueIdentifier>
14+
<UniqueIdentifier>{2bd1bb62-f00c-4b30-9465-a641a5433fe3}</UniqueIdentifier>
1515
</Filter>
1616
<Filter Include="HTTPSClient\Header Files">
17-
<UniqueIdentifier>{12151fea-3545-437f-ada6-f344b866395e}</UniqueIdentifier>
17+
<UniqueIdentifier>{15682e28-1edb-4bcb-a3a7-204c8033cd16}</UniqueIdentifier>
1818
</Filter>
1919
<Filter Include="HTTPSClient\Source Files">
20-
<UniqueIdentifier>{8f4abaa6-0008-4802-9c07-137e8c2d6a51}</UniqueIdentifier>
20+
<UniqueIdentifier>{ed8e7089-057d-4dde-a61f-3398336f867e}</UniqueIdentifier>
2121
</Filter>
2222
<Filter Include="SSLSockets">
23-
<UniqueIdentifier>{1e0dd904-b465-4ed6-8273-923e3b189570}</UniqueIdentifier>
23+
<UniqueIdentifier>{400b4e6a-2d12-4892-be3d-c4b4c5c92e8c}</UniqueIdentifier>
2424
</Filter>
2525
<Filter Include="SSLSockets\Header Files">
26-
<UniqueIdentifier>{ecb5d216-1b16-41f1-aa48-0fadadb24b9a}</UniqueIdentifier>
26+
<UniqueIdentifier>{97c9808d-cd80-4c04-8c1e-c0bbfb530610}</UniqueIdentifier>
2727
</Filter>
2828
<Filter Include="SSLSockets\Source Files">
29-
<UniqueIdentifier>{7241419b-98f6-45a7-a221-ef8ee00af75e}</UniqueIdentifier>
29+
<UniqueIdentifier>{6247b914-a430-44a5-97f4-dfee4addd4aa}</UniqueIdentifier>
3030
</Filter>
3131
<Filter Include="Mail">
32-
<UniqueIdentifier>{fabab372-cf09-4422-baf7-e638d55104ec}</UniqueIdentifier>
32+
<UniqueIdentifier>{aea80a4f-d26d-4769-9bae-f3cd9db6507b}</UniqueIdentifier>
3333
</Filter>
3434
<Filter Include="Mail\Header Files">
35-
<UniqueIdentifier>{b850bc99-1d30-4d99-be3b-4357b5b3172f}</UniqueIdentifier>
35+
<UniqueIdentifier>{cafd83fa-67e8-4779-aaa5-8befa9da9691}</UniqueIdentifier>
3636
</Filter>
3737
<Filter Include="Mail\Source Files">
38-
<UniqueIdentifier>{97df76b8-7e80-4173-9bf9-c67908b85b71}</UniqueIdentifier>
38+
<UniqueIdentifier>{52613ccb-eaea-4a69-a7d7-ad8d230ea387}</UniqueIdentifier>
3939
</Filter>
4040
</ItemGroup>
4141
<ItemGroup>
@@ -60,9 +60,24 @@
6060
<ClInclude Include="include\Poco\Net\InvalidCertificateHandler.h">
6161
<Filter>SSLCore\Header Files</Filter>
6262
</ClInclude>
63+
<ClInclude Include="include\Poco\Net\KeyConsoleHandler.h">
64+
<Filter>SSLCore\Header Files</Filter>
65+
</ClInclude>
66+
<ClInclude Include="include\Poco\Net\KeyFileHandler.h">
67+
<Filter>SSLCore\Header Files</Filter>
68+
</ClInclude>
6369
<ClInclude Include="include\Poco\Net\NetSSL.h">
6470
<Filter>SSLCore\Header Files</Filter>
6571
</ClInclude>
72+
<ClInclude Include="include\Poco\Net\PrivateKeyFactory.h">
73+
<Filter>SSLCore\Header Files</Filter>
74+
</ClInclude>
75+
<ClInclude Include="include\Poco\Net\PrivateKeyFactoryMgr.h">
76+
<Filter>SSLCore\Header Files</Filter>
77+
</ClInclude>
78+
<ClInclude Include="include\Poco\Net\PrivateKeyPassphraseHandler.h">
79+
<Filter>SSLCore\Header Files</Filter>
80+
</ClInclude>
6681
<ClInclude Include="include\Poco\Net\RejectCertificateHandler.h">
6782
<Filter>SSLCore\Header Files</Filter>
6883
</ClInclude>
@@ -131,6 +146,21 @@
131146
<ClCompile Include="src\InvalidCertificateHandler.cpp">
132147
<Filter>SSLCore\Source Files</Filter>
133148
</ClCompile>
149+
<ClCompile Include="src\KeyConsoleHandler.cpp">
150+
<Filter>SSLCore\Source Files</Filter>
151+
</ClCompile>
152+
<ClCompile Include="src\KeyFileHandler.cpp">
153+
<Filter>SSLCore\Source Files</Filter>
154+
</ClCompile>
155+
<ClCompile Include="src\PrivateKeyFactory.cpp">
156+
<Filter>SSLCore\Source Files</Filter>
157+
</ClCompile>
158+
<ClCompile Include="src\PrivateKeyFactoryMgr.cpp">
159+
<Filter>SSLCore\Source Files</Filter>
160+
</ClCompile>
161+
<ClCompile Include="src\PrivateKeyPassphraseHandler.cpp">
162+
<Filter>SSLCore\Source Files</Filter>
163+
</ClCompile>
134164
<ClCompile Include="src\RejectCertificateHandler.cpp">
135165
<Filter>SSLCore\Source Files</Filter>
136166
</ClCompile>

NetSSL_Win/NetSSL_Win_vs100.vcxproj

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,12 @@
282282
<ClInclude Include="include\Poco\Net\ConsoleCertificateHandler.h"/>
283283
<ClInclude Include="include\Poco\Net\Context.h"/>
284284
<ClInclude Include="include\Poco\Net\InvalidCertificateHandler.h"/>
285+
<ClInclude Include="include\Poco\Net\KeyConsoleHandler.h"/>
286+
<ClInclude Include="include\Poco\Net\KeyFileHandler.h"/>
285287
<ClInclude Include="include\Poco\Net\NetSSL.h"/>
288+
<ClInclude Include="include\Poco\Net\PrivateKeyFactory.h"/>
289+
<ClInclude Include="include\Poco\Net\PrivateKeyFactoryMgr.h"/>
290+
<ClInclude Include="include\Poco\Net\PrivateKeyPassphraseHandler.h"/>
286291
<ClInclude Include="include\Poco\Net\RejectCertificateHandler.h"/>
287292
<ClInclude Include="include\Poco\Net\Session.h"/>
288293
<ClInclude Include="include\Poco\Net\SSLException.h"/>
@@ -307,6 +312,11 @@
307312
<ClCompile Include="src\ConsoleCertificateHandler.cpp"/>
308313
<ClCompile Include="src\Context.cpp"/>
309314
<ClCompile Include="src\InvalidCertificateHandler.cpp"/>
315+
<ClCompile Include="src\KeyConsoleHandler.cpp"/>
316+
<ClCompile Include="src\KeyFileHandler.cpp"/>
317+
<ClCompile Include="src\PrivateKeyFactory.cpp"/>
318+
<ClCompile Include="src\PrivateKeyFactoryMgr.cpp"/>
319+
<ClCompile Include="src\PrivateKeyPassphraseHandler.cpp"/>
310320
<ClCompile Include="src\RejectCertificateHandler.cpp"/>
311321
<ClCompile Include="src\Session.cpp"/>
312322
<ClCompile Include="src\SSLException.cpp"/>

0 commit comments

Comments
 (0)