1.12.2 release merge (#3695)

* chore: 1.12.2 versions and notes

* chore: spelling fix

* fix(): Linking Crypto-testrunner fails #3688

* fix(Event): POSIX Event state need not be atomic #3699

* fix(OpenSSLInitializer): SIGABRT in OSSL_PROVIDER_unload with static OpenSSL3 #3698

* #3700: Release script must include build_vs170.cmd

* fix(mingw): lowercase winsock2 and iphlpapi to allow cross compile #3711

* fix(PollSet): wakeup fd is never read #3708

* fix(PollSet): wakeup fd is never read (windows portion and some other optimizations) #3708

* fix(PollSet): wakeup fd is never read #3708

* fix(PollSet): Compiling with clang_cl_x64_x64 on Visual Studio 2022 failed #3716

* fix(SpinlockMutex): VS2022 compilation issues #3693

* Only support extracting JSON fields when the SDK supports it (#3717)

* Added preprocessor defined to detect support for JSON

* Only support extracting JSON fields when the SDK supports it

* Fix version comparison

* fix(MSVC): PocoNet Project File does not support Visual Studio 2022 #3719

* Update max MSVC version information (#3720)

add visual studio 2022 support

* Added missing Crypto Header to ProGen source (#3722)

* fix(Crypto): fails to build with Visual Studio projects #3721

* Crypto: Progen again to add new files and bring back ARM64 configuration (#3724)

* Progen Crypto to re-add ARM64

* Add new files

* Add how to install using Conan section on README (#3727)

Signed-off-by: Uilian Ries <uilianries@gmail.com>

* fix(Platform): LoongArch support #3460

* fix(format): Poco::format and C++20 #3733

* fix: g++ C++20 warnings #3734

* core(CI): add c++20

* fix(CI): skip MySQL tests for c++20

* release 1.12.2

Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
Co-authored-by: Hernan Martinez <hernan.c.martinez@gmail.com>
Co-authored-by: Byungjun Lee <40881444+OneTop4458@users.noreply.github.com>
Co-authored-by: Hernan Martinez <hmartinez@malwarebytes.com>
Co-authored-by: Uilian Ries <uilianries@gmail.com>
This commit is contained in:
Aleksandar Fabijanic
2022-08-07 12:10:18 +02:00
committed by GitHub
parent 161054e777
commit be19dc4a2f
59 changed files with 597 additions and 255 deletions

View File

@@ -30,7 +30,7 @@ jobs:
- run: ./configure --config=Linux-c++20 --everything --omit=PDF && make all -s -j4 && sudo make install - run: ./configure --config=Linux-c++20 --everything --omit=PDF && make all -s -j4 && sudo make install
- run: >- - run: >-
sudo -s sudo -s
EXCLUDE_TESTS="Data/ODBC Data/PostgreSQL MongoDB" EXCLUDE_TESTS="Data/ODBC Data/MySQL Data/PostgreSQL MongoDB"
./ci/runtests.sh ./ci/runtests.sh
linux-gcc-make-asan: linux-gcc-make-asan:

View File

@@ -1,5 +1,28 @@
This is the changelog file for the POCO C++ Libraries. This is the changelog file for the POCO C++ Libraries.
Release 1.12.2 (2022-08-08)
===========================
- GH #3460 fix(Platform): LoongArch support
- GH #3688 Linking Crypto-testrunner fails
- GH #3693 VS2022 compilation issues
- GH #3698 SIGABRT in OSSL_PROVIDER_unload with static OpenSSL3
- GH #3699 POSIX Event state need not be atomic
- GH #3700 Release script must include build_vs170.cmd
- GH #3708 wakeup fd is never read
- GH #3711 lowercase winsock2 and iphlpapi to allow cross compile
- GH #3716 Compiling with clang_cl_x64_x64 on Visual Studio 2022 failed
- GH #3717 Only support extracting JSON fields when the SDK supports it
- GH #3719 PocoNet Project File does not support Visual Studio 2022
- GH #3720 Update max MSVC version information
- GH #3721 fails to build with Visual Studio projects
- GH #3722 Added missing Crypto Header to ProGen source
- GH #3724 Crypto: Progen again to add new files and bring back ARM64 configuration
- GH #3727 Add how to install using Conan section on README
- GH #3733 Poco::format and C++20
- GH #3734 g++ C++20 warnings
Release 1.12.1 (2022-07-18) Release 1.12.1 (2022-07-18)
=========================== ===========================

View File

@@ -51,3 +51,5 @@ Martin Osborne
Björn Schramke Björn Schramke
Francis Andre Francis Andre
Kacper Piwiński Kacper Piwiński
Hernan Martinez
Jacky Woo

View File

@@ -653,6 +653,10 @@
RelativePath=".\include\Poco\Crypto\CryptoException.h" RelativePath=".\include\Poco\Crypto\CryptoException.h"
> >
</File> </File>
<File
RelativePath=".\include\Poco\Crypto\EVPCipherImpl.h"
>
</File>
<File <File
RelativePath=".\include\Poco\Crypto\EVPPKey.h" RelativePath=".\include\Poco\Crypto\EVPPKey.h"
> >
@@ -677,6 +681,10 @@
RelativePath=".\src\CryptoException.cpp" RelativePath=".\src\CryptoException.cpp"
> >
</File> </File>
<File
RelativePath=".\src\EVPCipherImpl.cpp"
>
</File>
<File <File
RelativePath=".\src\EVPPKey.cpp" RelativePath=".\src\EVPPKey.cpp"
> >
@@ -733,6 +741,10 @@
RelativePath=".\include\Poco\Crypto\ECKeyImpl.h" RelativePath=".\include\Poco\Crypto\ECKeyImpl.h"
> >
</File> </File>
<File
RelativePath=".\include\Poco\Crypto\Envelope.h"
>
</File>
</Filter> </Filter>
<Filter <Filter
Name="Source Files" Name="Source Files"
@@ -749,6 +761,10 @@
RelativePath=".\src\ECKeyImpl.cpp" RelativePath=".\src\ECKeyImpl.cpp"
> >
</File> </File>
<File
RelativePath=".\src\Envelope.cpp"
>
</File>
</Filter> </Filter>
</Filter> </Filter>
<File <File

View File

@@ -559,6 +559,8 @@
<ClInclude Include="include\Poco\Crypto\ECDSADigestEngine.h"/> <ClInclude Include="include\Poco\Crypto\ECDSADigestEngine.h"/>
<ClInclude Include="include\Poco\Crypto\ECKey.h"/> <ClInclude Include="include\Poco\Crypto\ECKey.h"/>
<ClInclude Include="include\Poco\Crypto\ECKeyImpl.h"/> <ClInclude Include="include\Poco\Crypto\ECKeyImpl.h"/>
<ClInclude Include="include\Poco\Crypto\Envelope.h"/>
<ClInclude Include="include\Poco\Crypto\EVPCipherImpl.h"/>
<ClInclude Include="include\Poco\Crypto\EVPPKey.h"/> <ClInclude Include="include\Poco\Crypto\EVPPKey.h"/>
<ClInclude Include="include\Poco\Crypto\KeyPair.h"/> <ClInclude Include="include\Poco\Crypto\KeyPair.h"/>
<ClInclude Include="include\Poco\Crypto\KeyPairImpl.h"/> <ClInclude Include="include\Poco\Crypto\KeyPairImpl.h"/>
@@ -607,6 +609,12 @@
<ClCompile Include="src\ECKeyImpl.cpp"> <ClCompile Include="src\ECKeyImpl.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<ClCompile Include="src\Envelope.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ClCompile Include="src\EVPCipherImpl.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ClCompile Include="src\EVPPKey.cpp"> <ClCompile Include="src\EVPPKey.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>

View File

@@ -2,58 +2,58 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup> <ItemGroup>
<Filter Include="Cipher"> <Filter Include="Cipher">
<UniqueIdentifier>{04b70b04-697e-42a9-9aeb-e9ce6c343be9}</UniqueIdentifier> <UniqueIdentifier>{60a8c7e2-2faa-4d2f-9395-a8a7b0b27799}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Cipher\Header Files"> <Filter Include="Cipher\Header Files">
<UniqueIdentifier>{75a7f23f-980b-4c33-b078-16605d946917}</UniqueIdentifier> <UniqueIdentifier>{5810f1ac-f1a0-4eec-805c-4f10c8731258}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Cipher\Source Files"> <Filter Include="Cipher\Source Files">
<UniqueIdentifier>{af502e4d-9e80-4ff0-8e62-177ccd345d80}</UniqueIdentifier> <UniqueIdentifier>{079a0514-d9e9-4c7e-814e-7bc6941f7492}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="RSA"> <Filter Include="RSA">
<UniqueIdentifier>{ee9d5c88-630f-41f3-9e82-4c7dd16e8125}</UniqueIdentifier> <UniqueIdentifier>{d9e32eb5-0f20-4262-8c04-ce30a11b5278}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="RSA\Header Files"> <Filter Include="RSA\Header Files">
<UniqueIdentifier>{ac0454d9-cb57-4244-b7be-2dc1b78415bd}</UniqueIdentifier> <UniqueIdentifier>{4d5ddd1e-5b34-493d-b3e6-696b3950239d}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="RSA\Source Files"> <Filter Include="RSA\Source Files">
<UniqueIdentifier>{9356d389-2a2b-4bbb-9a48-0069ebce4ac6}</UniqueIdentifier> <UniqueIdentifier>{52e2d122-9409-4b00-bb5d-8596e350271f}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Certificate"> <Filter Include="Certificate">
<UniqueIdentifier>{9edcc672-ed8e-493a-8a98-716bcc14c6e9}</UniqueIdentifier> <UniqueIdentifier>{dc9887bc-80fa-4400-8ae3-798d0216e70e}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Certificate\Header Files"> <Filter Include="Certificate\Header Files">
<UniqueIdentifier>{e07cca81-0e0c-45ca-85f7-901a3ad549de}</UniqueIdentifier> <UniqueIdentifier>{9af8f56b-58e6-471c-99dd-649f82bb513d}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Certificate\Source Files"> <Filter Include="Certificate\Source Files">
<UniqueIdentifier>{3cb68e52-e52f-453e-b02a-e88618254bcb}</UniqueIdentifier> <UniqueIdentifier>{e986c9a0-8d5f-4ece-b226-97b00f75c36b}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="CryptoCore"> <Filter Include="CryptoCore">
<UniqueIdentifier>{4ad478a3-34ab-4eb5-aff3-f3c6c93f4c5d}</UniqueIdentifier> <UniqueIdentifier>{815003c3-868c-4edb-b8fc-71239f111d12}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="CryptoCore\Header Files"> <Filter Include="CryptoCore\Header Files">
<UniqueIdentifier>{2af5aa00-cfb8-4d7a-9aed-fed3ee3f9ca1}</UniqueIdentifier> <UniqueIdentifier>{83254184-d4b3-4e90-aaf8-6185be913f80}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="CryptoCore\Source Files"> <Filter Include="CryptoCore\Source Files">
<UniqueIdentifier>{7cec80c3-6ea2-43cc-ada1-53605f124468}</UniqueIdentifier> <UniqueIdentifier>{975ee625-4d9c-42c8-a51a-5ae6c152f3f7}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Digest"> <Filter Include="Digest">
<UniqueIdentifier>{f76416de-9deb-4dba-b54f-35ed9e474073}</UniqueIdentifier> <UniqueIdentifier>{3ab5ac8f-2b83-4dfc-9603-0dac69d52013}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Digest\Header Files"> <Filter Include="Digest\Header Files">
<UniqueIdentifier>{696a1fff-7f4d-4595-9c40-e6596ef086b6}</UniqueIdentifier> <UniqueIdentifier>{8b978dca-eb5f-4437-a1c2-4491c531c24e}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Digest\Source Files"> <Filter Include="Digest\Source Files">
<UniqueIdentifier>{9e86ecc5-a026-4432-8b10-45b575c1fa87}</UniqueIdentifier> <UniqueIdentifier>{0a3d66e4-a2fd-41a2-b579-95aa9bd44595}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="EC"> <Filter Include="EC">
<UniqueIdentifier>{edffd197-3071-4677-bdff-b0a00c7a014a}</UniqueIdentifier> <UniqueIdentifier>{a612ef80-bf86-4cd6-912c-ba726353cc2a}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="EC\Header Files"> <Filter Include="EC\Header Files">
<UniqueIdentifier>{dc754ea7-075d-48ff-9777-ff9aa6c9ddac}</UniqueIdentifier> <UniqueIdentifier>{c46a2637-5bab-4cf6-93c0-d09d784e65f6}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="EC\Source Files"> <Filter Include="EC\Source Files">
<UniqueIdentifier>{7a39a221-fafa-4375-9b1b-19488f30606b}</UniqueIdentifier> <UniqueIdentifier>{e84f7326-3466-4a9e-bba3-1b0c4885717a}</UniqueIdentifier>
</Filter> </Filter>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -102,6 +102,9 @@
<ClInclude Include="include\Poco\Crypto\CryptoException.h"> <ClInclude Include="include\Poco\Crypto\CryptoException.h">
<Filter>CryptoCore\Header Files</Filter> <Filter>CryptoCore\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="include\Poco\Crypto\EVPCipherImpl.h">
<Filter>CryptoCore\Header Files</Filter>
</ClInclude>
<ClInclude Include="include\Poco\Crypto\EVPPKey.h"> <ClInclude Include="include\Poco\Crypto\EVPPKey.h">
<Filter>CryptoCore\Header Files</Filter> <Filter>CryptoCore\Header Files</Filter>
</ClInclude> </ClInclude>
@@ -126,6 +129,9 @@
<ClInclude Include="include\Poco\Crypto\ECKeyImpl.h"> <ClInclude Include="include\Poco\Crypto\ECKeyImpl.h">
<Filter>EC\Header Files</Filter> <Filter>EC\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="include\Poco\Crypto\Envelope.h">
<Filter>EC\Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="src\Cipher.cpp"> <ClCompile Include="src\Cipher.cpp">
@@ -170,6 +176,9 @@
<ClCompile Include="src\CryptoException.cpp"> <ClCompile Include="src\CryptoException.cpp">
<Filter>CryptoCore\Source Files</Filter> <Filter>CryptoCore\Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\EVPCipherImpl.cpp">
<Filter>CryptoCore\Source Files</Filter>
</ClCompile>
<ClCompile Include="src\EVPPKey.cpp"> <ClCompile Include="src\EVPPKey.cpp">
<Filter>CryptoCore\Source Files</Filter> <Filter>CryptoCore\Source Files</Filter>
</ClCompile> </ClCompile>
@@ -194,6 +203,9 @@
<ClCompile Include="src\ECKeyImpl.cpp"> <ClCompile Include="src\ECKeyImpl.cpp">
<Filter>EC\Source Files</Filter> <Filter>EC\Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\Envelope.cpp">
<Filter>EC\Source Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="..\DLLVersion.rc" /> <ResourceCompile Include="..\DLLVersion.rc" />

View File

@@ -559,6 +559,8 @@
<ClInclude Include="include\Poco\Crypto\ECDSADigestEngine.h"/> <ClInclude Include="include\Poco\Crypto\ECDSADigestEngine.h"/>
<ClInclude Include="include\Poco\Crypto\ECKey.h"/> <ClInclude Include="include\Poco\Crypto\ECKey.h"/>
<ClInclude Include="include\Poco\Crypto\ECKeyImpl.h"/> <ClInclude Include="include\Poco\Crypto\ECKeyImpl.h"/>
<ClInclude Include="include\Poco\Crypto\Envelope.h"/>
<ClInclude Include="include\Poco\Crypto\EVPCipherImpl.h"/>
<ClInclude Include="include\Poco\Crypto\EVPPKey.h"/> <ClInclude Include="include\Poco\Crypto\EVPPKey.h"/>
<ClInclude Include="include\Poco\Crypto\KeyPair.h"/> <ClInclude Include="include\Poco\Crypto\KeyPair.h"/>
<ClInclude Include="include\Poco\Crypto\KeyPairImpl.h"/> <ClInclude Include="include\Poco\Crypto\KeyPairImpl.h"/>
@@ -607,6 +609,12 @@
<ClCompile Include="src\ECKeyImpl.cpp"> <ClCompile Include="src\ECKeyImpl.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<ClCompile Include="src\Envelope.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ClCompile Include="src\EVPCipherImpl.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ClCompile Include="src\EVPPKey.cpp"> <ClCompile Include="src\EVPPKey.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>

View File

@@ -2,58 +2,58 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup> <ItemGroup>
<Filter Include="Cipher"> <Filter Include="Cipher">
<UniqueIdentifier>{d9c44334-4a59-4b62-9f69-ceece97c18ed}</UniqueIdentifier> <UniqueIdentifier>{75698788-03bc-4370-ab55-99d48c973dce}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Cipher\Header Files"> <Filter Include="Cipher\Header Files">
<UniqueIdentifier>{b8ed2f18-0b9c-4769-bc96-7a08bbdf8467}</UniqueIdentifier> <UniqueIdentifier>{bcaac4d6-7340-4f39-9b36-724a1408f06c}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Cipher\Source Files"> <Filter Include="Cipher\Source Files">
<UniqueIdentifier>{42d8ab87-49fa-462d-8eab-709bb5c01557}</UniqueIdentifier> <UniqueIdentifier>{e455849b-48cb-431b-983f-30c955a93552}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="RSA"> <Filter Include="RSA">
<UniqueIdentifier>{b9a6f7a6-4b5c-4098-9d5c-65c2c2c394ef}</UniqueIdentifier> <UniqueIdentifier>{b3905243-9455-4c38-a56e-1edaf52d18c3}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="RSA\Header Files"> <Filter Include="RSA\Header Files">
<UniqueIdentifier>{29984b35-3df8-42a1-a712-2aecf201add5}</UniqueIdentifier> <UniqueIdentifier>{8541c53c-aa29-4062-9029-6ba5ab950d9a}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="RSA\Source Files"> <Filter Include="RSA\Source Files">
<UniqueIdentifier>{d33e4790-ed28-418b-9833-4bc1076e96f5}</UniqueIdentifier> <UniqueIdentifier>{43690a3d-2085-46bd-8722-a153c2170f3e}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Certificate"> <Filter Include="Certificate">
<UniqueIdentifier>{646c27d1-6e6e-4637-88b3-4319186e3c55}</UniqueIdentifier> <UniqueIdentifier>{c7c75237-17b5-443e-b48d-d276bedafb7e}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Certificate\Header Files"> <Filter Include="Certificate\Header Files">
<UniqueIdentifier>{3524e378-6f24-42ad-b273-c566e755b3ef}</UniqueIdentifier> <UniqueIdentifier>{ca5d30c0-a95e-413d-a182-8ee7dfed0bff}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Certificate\Source Files"> <Filter Include="Certificate\Source Files">
<UniqueIdentifier>{47293d8d-14cd-43a0-b269-750216980bf1}</UniqueIdentifier> <UniqueIdentifier>{cd24b06b-7900-4c1f-b1a3-8d5b2110ef46}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="CryptoCore"> <Filter Include="CryptoCore">
<UniqueIdentifier>{e7a8b613-2fca-4175-8c42-19f40617fff7}</UniqueIdentifier> <UniqueIdentifier>{ef3bafde-f2e0-4779-b50a-bcb066c09583}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="CryptoCore\Header Files"> <Filter Include="CryptoCore\Header Files">
<UniqueIdentifier>{b9e2d34e-d0d6-49c5-912b-745b2d6aef07}</UniqueIdentifier> <UniqueIdentifier>{deb5208b-9e44-47da-b191-718552850f5f}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="CryptoCore\Source Files"> <Filter Include="CryptoCore\Source Files">
<UniqueIdentifier>{e07d97b9-8fd9-4c1d-bf49-65bce81a160d}</UniqueIdentifier> <UniqueIdentifier>{01df9f00-078a-4cca-829a-d7421dfe4a43}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Digest"> <Filter Include="Digest">
<UniqueIdentifier>{cb31088c-c4cd-4a55-85a2-b59ac56cdecf}</UniqueIdentifier> <UniqueIdentifier>{08b5b434-275e-46a4-a528-b6da06cc5691}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Digest\Header Files"> <Filter Include="Digest\Header Files">
<UniqueIdentifier>{9fc80937-4552-4263-b935-d62b68bfb981}</UniqueIdentifier> <UniqueIdentifier>{d7cb049c-8340-4eda-899a-27c4d0ff3746}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Digest\Source Files"> <Filter Include="Digest\Source Files">
<UniqueIdentifier>{45c655ac-89aa-41b9-8d45-22b15ae4d07e}</UniqueIdentifier> <UniqueIdentifier>{7e05b39f-e6ff-4225-8527-eb37bbcdfb18}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="EC"> <Filter Include="EC">
<UniqueIdentifier>{ed9f6c2f-b58a-4306-b9aa-2142ebb895dd}</UniqueIdentifier> <UniqueIdentifier>{3c7f4c55-1189-43b5-a9f6-5debd66906ba}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="EC\Header Files"> <Filter Include="EC\Header Files">
<UniqueIdentifier>{61b07ccd-ce5a-4b1b-9254-8925309edbda}</UniqueIdentifier> <UniqueIdentifier>{c3c69023-452b-455e-902a-684735fc89c7}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="EC\Source Files"> <Filter Include="EC\Source Files">
<UniqueIdentifier>{3daecefa-a485-48f9-8297-854d4ca4b2ae}</UniqueIdentifier> <UniqueIdentifier>{f3238968-0490-44f5-8031-00edec99904c}</UniqueIdentifier>
</Filter> </Filter>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -102,6 +102,9 @@
<ClInclude Include="include\Poco\Crypto\CryptoException.h"> <ClInclude Include="include\Poco\Crypto\CryptoException.h">
<Filter>CryptoCore\Header Files</Filter> <Filter>CryptoCore\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="include\Poco\Crypto\EVPCipherImpl.h">
<Filter>CryptoCore\Header Files</Filter>
</ClInclude>
<ClInclude Include="include\Poco\Crypto\EVPPKey.h"> <ClInclude Include="include\Poco\Crypto\EVPPKey.h">
<Filter>CryptoCore\Header Files</Filter> <Filter>CryptoCore\Header Files</Filter>
</ClInclude> </ClInclude>
@@ -126,6 +129,9 @@
<ClInclude Include="include\Poco\Crypto\ECKeyImpl.h"> <ClInclude Include="include\Poco\Crypto\ECKeyImpl.h">
<Filter>EC\Header Files</Filter> <Filter>EC\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="include\Poco\Crypto\Envelope.h">
<Filter>EC\Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="src\Cipher.cpp"> <ClCompile Include="src\Cipher.cpp">
@@ -170,6 +176,9 @@
<ClCompile Include="src\CryptoException.cpp"> <ClCompile Include="src\CryptoException.cpp">
<Filter>CryptoCore\Source Files</Filter> <Filter>CryptoCore\Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\EVPCipherImpl.cpp">
<Filter>CryptoCore\Source Files</Filter>
</ClCompile>
<ClCompile Include="src\EVPPKey.cpp"> <ClCompile Include="src\EVPPKey.cpp">
<Filter>CryptoCore\Source Files</Filter> <Filter>CryptoCore\Source Files</Filter>
</ClCompile> </ClCompile>
@@ -194,6 +203,9 @@
<ClCompile Include="src\ECKeyImpl.cpp"> <ClCompile Include="src\ECKeyImpl.cpp">
<Filter>EC\Source Files</Filter> <Filter>EC\Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\Envelope.cpp">
<Filter>EC\Source Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="..\DLLVersion.rc" /> <ResourceCompile Include="..\DLLVersion.rc" />

View File

@@ -559,6 +559,8 @@
<ClInclude Include="include\Poco\Crypto\ECDSADigestEngine.h"/> <ClInclude Include="include\Poco\Crypto\ECDSADigestEngine.h"/>
<ClInclude Include="include\Poco\Crypto\ECKey.h"/> <ClInclude Include="include\Poco\Crypto\ECKey.h"/>
<ClInclude Include="include\Poco\Crypto\ECKeyImpl.h"/> <ClInclude Include="include\Poco\Crypto\ECKeyImpl.h"/>
<ClInclude Include="include\Poco\Crypto\Envelope.h"/>
<ClInclude Include="include\Poco\Crypto\EVPCipherImpl.h"/>
<ClInclude Include="include\Poco\Crypto\EVPPKey.h"/> <ClInclude Include="include\Poco\Crypto\EVPPKey.h"/>
<ClInclude Include="include\Poco\Crypto\KeyPair.h"/> <ClInclude Include="include\Poco\Crypto\KeyPair.h"/>
<ClInclude Include="include\Poco\Crypto\KeyPairImpl.h"/> <ClInclude Include="include\Poco\Crypto\KeyPairImpl.h"/>
@@ -607,6 +609,12 @@
<ClCompile Include="src\ECKeyImpl.cpp"> <ClCompile Include="src\ECKeyImpl.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<ClCompile Include="src\Envelope.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ClCompile Include="src\EVPCipherImpl.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ClCompile Include="src\EVPPKey.cpp"> <ClCompile Include="src\EVPPKey.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>

View File

@@ -2,58 +2,58 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup> <ItemGroup>
<Filter Include="Cipher"> <Filter Include="Cipher">
<UniqueIdentifier>{3ecf5332-c0c0-4122-b6e6-5dfabcb3b7fa}</UniqueIdentifier> <UniqueIdentifier>{3e947499-e07e-49ae-9368-67ebdce7e2d9}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Cipher\Header Files"> <Filter Include="Cipher\Header Files">
<UniqueIdentifier>{4f8087f2-96ea-4728-8555-d1188d7dc40a}</UniqueIdentifier> <UniqueIdentifier>{56cd8b79-7799-4706-be30-2f2551da9b06}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Cipher\Source Files"> <Filter Include="Cipher\Source Files">
<UniqueIdentifier>{546fc14e-2cad-438b-9670-e97a20c93227}</UniqueIdentifier> <UniqueIdentifier>{ba015481-3cdc-4b4e-979f-73af16c9f113}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="RSA"> <Filter Include="RSA">
<UniqueIdentifier>{78b6b52e-8707-4bad-8e63-a00446e610b5}</UniqueIdentifier> <UniqueIdentifier>{29330975-8f63-4932-ae8b-2fc823bb5729}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="RSA\Header Files"> <Filter Include="RSA\Header Files">
<UniqueIdentifier>{8da8d37c-0726-4c66-8375-9c2215bfdb6e}</UniqueIdentifier> <UniqueIdentifier>{0de2d2fa-d52e-4b93-8429-1cc40ac5d89c}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="RSA\Source Files"> <Filter Include="RSA\Source Files">
<UniqueIdentifier>{b33478ac-7764-436b-9419-797b445d9e83}</UniqueIdentifier> <UniqueIdentifier>{73da9949-c7b1-450e-bfca-78e4fbaf01d0}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Certificate"> <Filter Include="Certificate">
<UniqueIdentifier>{9f50f3b5-a45f-45cd-a667-5c287f5f9025}</UniqueIdentifier> <UniqueIdentifier>{56b61611-cae5-4a96-bec3-89dce21181c0}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Certificate\Header Files"> <Filter Include="Certificate\Header Files">
<UniqueIdentifier>{9d19bec5-a10f-4327-b252-0d33d1b4364f}</UniqueIdentifier> <UniqueIdentifier>{7c16cc60-1306-47e1-aebf-18a33bbc40d3}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Certificate\Source Files"> <Filter Include="Certificate\Source Files">
<UniqueIdentifier>{d4e7ac76-ba3e-42d8-a8fb-1657f654d44b}</UniqueIdentifier> <UniqueIdentifier>{15ccacc4-e673-4461-979f-862c147d2d0b}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="CryptoCore"> <Filter Include="CryptoCore">
<UniqueIdentifier>{c0e23a57-a0d8-46aa-b1c5-977e4e8f95d1}</UniqueIdentifier> <UniqueIdentifier>{26ce3381-5dc3-4241-8d27-09e14c4043b6}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="CryptoCore\Header Files"> <Filter Include="CryptoCore\Header Files">
<UniqueIdentifier>{20f51cfd-b923-4182-a7ab-31806eccc848}</UniqueIdentifier> <UniqueIdentifier>{9c578c8e-c65f-4088-9ca6-7609d2e7ebc0}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="CryptoCore\Source Files"> <Filter Include="CryptoCore\Source Files">
<UniqueIdentifier>{765d54fc-025a-4e99-9274-a88d057bb402}</UniqueIdentifier> <UniqueIdentifier>{418ebbbe-2a7d-4015-adf8-2e86566935a2}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Digest"> <Filter Include="Digest">
<UniqueIdentifier>{f5523a96-c1d3-493a-bc12-5033ec02d098}</UniqueIdentifier> <UniqueIdentifier>{0a5aa58f-8179-480c-8805-7b64cb7c282a}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Digest\Header Files"> <Filter Include="Digest\Header Files">
<UniqueIdentifier>{ae54a1d7-7704-4a81-a841-ea05b0dc149c}</UniqueIdentifier> <UniqueIdentifier>{66cbfe0e-ff30-42fe-9736-9fe8afad9463}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Digest\Source Files"> <Filter Include="Digest\Source Files">
<UniqueIdentifier>{e5b2f762-c12e-4cb6-9800-3df0cfcf2359}</UniqueIdentifier> <UniqueIdentifier>{5ef84937-9e64-4f4a-af40-1118ac399fdc}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="EC"> <Filter Include="EC">
<UniqueIdentifier>{95bc93c4-7fa9-4859-81b8-e7e886e927fe}</UniqueIdentifier> <UniqueIdentifier>{59903614-4362-40ca-90f9-61958a40bf02}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="EC\Header Files"> <Filter Include="EC\Header Files">
<UniqueIdentifier>{a996aa2c-ddc3-433f-9c82-a45e8e2ed763}</UniqueIdentifier> <UniqueIdentifier>{6f907377-ea23-41d7-8008-63bf458c1a99}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="EC\Source Files"> <Filter Include="EC\Source Files">
<UniqueIdentifier>{f39359ba-7374-4c3a-a42e-d9bafcf29f3e}</UniqueIdentifier> <UniqueIdentifier>{e724e3f7-8adc-4738-8be3-fb6edbd76351}</UniqueIdentifier>
</Filter> </Filter>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -102,6 +102,9 @@
<ClInclude Include="include\Poco\Crypto\CryptoException.h"> <ClInclude Include="include\Poco\Crypto\CryptoException.h">
<Filter>CryptoCore\Header Files</Filter> <Filter>CryptoCore\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="include\Poco\Crypto\EVPCipherImpl.h">
<Filter>CryptoCore\Header Files</Filter>
</ClInclude>
<ClInclude Include="include\Poco\Crypto\EVPPKey.h"> <ClInclude Include="include\Poco\Crypto\EVPPKey.h">
<Filter>CryptoCore\Header Files</Filter> <Filter>CryptoCore\Header Files</Filter>
</ClInclude> </ClInclude>
@@ -126,6 +129,9 @@
<ClInclude Include="include\Poco\Crypto\ECKeyImpl.h"> <ClInclude Include="include\Poco\Crypto\ECKeyImpl.h">
<Filter>EC\Header Files</Filter> <Filter>EC\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="include\Poco\Crypto\Envelope.h">
<Filter>EC\Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="src\Cipher.cpp"> <ClCompile Include="src\Cipher.cpp">
@@ -170,6 +176,9 @@
<ClCompile Include="src\CryptoException.cpp"> <ClCompile Include="src\CryptoException.cpp">
<Filter>CryptoCore\Source Files</Filter> <Filter>CryptoCore\Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\EVPCipherImpl.cpp">
<Filter>CryptoCore\Source Files</Filter>
</ClCompile>
<ClCompile Include="src\EVPPKey.cpp"> <ClCompile Include="src\EVPPKey.cpp">
<Filter>CryptoCore\Source Files</Filter> <Filter>CryptoCore\Source Files</Filter>
</ClCompile> </ClCompile>
@@ -194,6 +203,9 @@
<ClCompile Include="src\ECKeyImpl.cpp"> <ClCompile Include="src\ECKeyImpl.cpp">
<Filter>EC\Source Files</Filter> <Filter>EC\Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\Envelope.cpp">
<Filter>EC\Source Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="..\DLLVersion.rc" /> <ResourceCompile Include="..\DLLVersion.rc" />

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Project DefaultTargets="Build" ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="debug_shared|ARM64"> <ProjectConfiguration Include="debug_shared|ARM64">
<Configuration>debug_shared</Configuration> <Configuration>debug_shared</Configuration>
@@ -75,7 +75,6 @@
</ProjectConfiguration> </ProjectConfiguration>
</ItemGroup> </ItemGroup>
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<VCProjectVersion>17.0</VCProjectVersion>
<ProjectName>Crypto</ProjectName> <ProjectName>Crypto</ProjectName>
<ProjectGuid>{EEEE7259-32E9-4D56-B023-C733940AB2A0}</ProjectGuid> <ProjectGuid>{EEEE7259-32E9-4D56-B023-C733940AB2A0}</ProjectGuid>
<RootNamespace>Crypto</RootNamespace> <RootNamespace>Crypto</RootNamespace>
@@ -230,7 +229,7 @@
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros"/> <PropertyGroup Label="UserMacros"/>
<PropertyGroup> <PropertyGroup>
<_ProjectFileVersion>17.0.32505.173</_ProjectFileVersion> <_ProjectFileVersion>16.0.32629.160</_ProjectFileVersion>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|ARM64'">PocoCryptoA64d</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|ARM64'">PocoCryptoA64d</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_md|ARM64'">PocoCryptomdd</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_md|ARM64'">PocoCryptomdd</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|ARM64'">PocoCryptomtd</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|ARM64'">PocoCryptomtd</TargetName>
@@ -824,6 +823,8 @@
<ClInclude Include="include\Poco\Crypto\ECDSADigestEngine.h"/> <ClInclude Include="include\Poco\Crypto\ECDSADigestEngine.h"/>
<ClInclude Include="include\Poco\Crypto\ECKey.h"/> <ClInclude Include="include\Poco\Crypto\ECKey.h"/>
<ClInclude Include="include\Poco\Crypto\ECKeyImpl.h"/> <ClInclude Include="include\Poco\Crypto\ECKeyImpl.h"/>
<ClInclude Include="include\Poco\Crypto\Envelope.h"/>
<ClInclude Include="include\Poco\Crypto\EVPCipherImpl.h"/>
<ClInclude Include="include\Poco\Crypto\EVPPKey.h"/> <ClInclude Include="include\Poco\Crypto\EVPPKey.h"/>
<ClInclude Include="include\Poco\Crypto\KeyPair.h"/> <ClInclude Include="include\Poco\Crypto\KeyPair.h"/>
<ClInclude Include="include\Poco\Crypto\KeyPairImpl.h"/> <ClInclude Include="include\Poco\Crypto\KeyPairImpl.h"/>
@@ -872,6 +873,12 @@
<ClCompile Include="src\ECKeyImpl.cpp"> <ClCompile Include="src\ECKeyImpl.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<ClCompile Include="src\Envelope.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ClCompile Include="src\EVPCipherImpl.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ClCompile Include="src\EVPPKey.cpp"> <ClCompile Include="src\EVPPKey.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>

View File

@@ -2,58 +2,58 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup> <ItemGroup>
<Filter Include="Cipher"> <Filter Include="Cipher">
<UniqueIdentifier>{34bbacdf-fe33-4bd3-9426-3bc26ade9b94}</UniqueIdentifier> <UniqueIdentifier>{956bb6d7-1946-4d8e-a988-6f840553f433}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Cipher\Header Files"> <Filter Include="Cipher\Header Files">
<UniqueIdentifier>{5d80018e-2cc9-4741-bf05-930dd617444a}</UniqueIdentifier> <UniqueIdentifier>{ac7c9562-5031-4fd3-bf00-58ee2afd58f1}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Cipher\Source Files"> <Filter Include="Cipher\Source Files">
<UniqueIdentifier>{0a531e76-fe1e-4f3f-81b0-68b751b255ff}</UniqueIdentifier> <UniqueIdentifier>{bc2c461a-a460-43c5-9dda-e1ac05590b4a}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="RSA"> <Filter Include="RSA">
<UniqueIdentifier>{18b9cc08-9f8f-4054-b083-30cc3c4fb631}</UniqueIdentifier> <UniqueIdentifier>{6f66dac0-646c-425e-98f9-0443b14bea15}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="RSA\Header Files"> <Filter Include="RSA\Header Files">
<UniqueIdentifier>{1f2b177f-bc05-4046-bd13-d0eba7040221}</UniqueIdentifier> <UniqueIdentifier>{3cd7a042-61b8-4430-88a3-96de91011504}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="RSA\Source Files"> <Filter Include="RSA\Source Files">
<UniqueIdentifier>{dec8e5e1-0478-4ab2-b9a7-f8ce2553beb3}</UniqueIdentifier> <UniqueIdentifier>{5480a739-70e8-4989-9388-858bc73745bf}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Certificate"> <Filter Include="Certificate">
<UniqueIdentifier>{93c35b55-d82d-4c54-a768-cacc2338318a}</UniqueIdentifier> <UniqueIdentifier>{10a1798e-fd19-4a4b-a4fa-078316b35b4a}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Certificate\Header Files"> <Filter Include="Certificate\Header Files">
<UniqueIdentifier>{20ccf5ae-68a5-49be-85e8-fb0eac59c086}</UniqueIdentifier> <UniqueIdentifier>{948b072b-d50b-4e17-bed4-3bae8345be51}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Certificate\Source Files"> <Filter Include="Certificate\Source Files">
<UniqueIdentifier>{d1864542-e04e-4829-b119-802d2fefe699}</UniqueIdentifier> <UniqueIdentifier>{984e69ae-d972-430f-84ad-885ce648930e}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="CryptoCore"> <Filter Include="CryptoCore">
<UniqueIdentifier>{e634f764-4976-4869-a6ae-e7d6be341199}</UniqueIdentifier> <UniqueIdentifier>{c4a637d7-9aad-4d1b-b9ce-b00a3a9bf47c}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="CryptoCore\Header Files"> <Filter Include="CryptoCore\Header Files">
<UniqueIdentifier>{7640a028-9ec4-47e6-9e54-e9832ca6fa8e}</UniqueIdentifier> <UniqueIdentifier>{ef263eac-80d3-4c1a-abee-af439456b293}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="CryptoCore\Source Files"> <Filter Include="CryptoCore\Source Files">
<UniqueIdentifier>{a137182c-8f17-4807-865a-c599fdcab1fd}</UniqueIdentifier> <UniqueIdentifier>{2af1dbe7-277e-4ab3-b8ad-255c4cf4f3ac}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Digest"> <Filter Include="Digest">
<UniqueIdentifier>{2ecfa06f-6c01-4bbd-89be-ecbe4ea42f71}</UniqueIdentifier> <UniqueIdentifier>{8d350d20-818d-4e10-8a87-6df008441927}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Digest\Header Files"> <Filter Include="Digest\Header Files">
<UniqueIdentifier>{52707f46-92c1-456e-9b3f-979119fa2765}</UniqueIdentifier> <UniqueIdentifier>{a6bd57e4-6d39-4a42-aa3d-4b1ad9e262fa}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Digest\Source Files"> <Filter Include="Digest\Source Files">
<UniqueIdentifier>{c0dea038-b0d7-4230-ae2a-6109a956d171}</UniqueIdentifier> <UniqueIdentifier>{1c3b1b7c-2a2b-4eba-bc22-cedfdcc12b48}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="EC"> <Filter Include="EC">
<UniqueIdentifier>{139e856e-92e1-4ab0-8a01-0f4e5187d1da}</UniqueIdentifier> <UniqueIdentifier>{a692dced-8e66-4531-9567-6b57a3f9d89f}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="EC\Header Files"> <Filter Include="EC\Header Files">
<UniqueIdentifier>{034d828f-2206-4327-808c-4a8bec130031}</UniqueIdentifier> <UniqueIdentifier>{d6b09c46-8d74-4ab2-99b0-31923c880bed}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="EC\Source Files"> <Filter Include="EC\Source Files">
<UniqueIdentifier>{aedbce70-7a08-408c-9a8e-99ab85222508}</UniqueIdentifier> <UniqueIdentifier>{b0414365-c964-4c45-a80e-8539c5fe0b5b}</UniqueIdentifier>
</Filter> </Filter>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -102,6 +102,9 @@
<ClInclude Include="include\Poco\Crypto\CryptoException.h"> <ClInclude Include="include\Poco\Crypto\CryptoException.h">
<Filter>CryptoCore\Header Files</Filter> <Filter>CryptoCore\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="include\Poco\Crypto\EVPCipherImpl.h">
<Filter>CryptoCore\Header Files</Filter>
</ClInclude>
<ClInclude Include="include\Poco\Crypto\EVPPKey.h"> <ClInclude Include="include\Poco\Crypto\EVPPKey.h">
<Filter>CryptoCore\Header Files</Filter> <Filter>CryptoCore\Header Files</Filter>
</ClInclude> </ClInclude>
@@ -126,6 +129,9 @@
<ClInclude Include="include\Poco\Crypto\ECKeyImpl.h"> <ClInclude Include="include\Poco\Crypto\ECKeyImpl.h">
<Filter>EC\Header Files</Filter> <Filter>EC\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="include\Poco\Crypto\Envelope.h">
<Filter>EC\Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="src\Cipher.cpp"> <ClCompile Include="src\Cipher.cpp">
@@ -170,6 +176,9 @@
<ClCompile Include="src\CryptoException.cpp"> <ClCompile Include="src\CryptoException.cpp">
<Filter>CryptoCore\Source Files</Filter> <Filter>CryptoCore\Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\EVPCipherImpl.cpp">
<Filter>CryptoCore\Source Files</Filter>
</ClCompile>
<ClCompile Include="src\EVPPKey.cpp"> <ClCompile Include="src\EVPPKey.cpp">
<Filter>CryptoCore\Source Files</Filter> <Filter>CryptoCore\Source Files</Filter>
</ClCompile> </ClCompile>
@@ -194,6 +203,9 @@
<ClCompile Include="src\ECKeyImpl.cpp"> <ClCompile Include="src\ECKeyImpl.cpp">
<Filter>EC\Source Files</Filter> <Filter>EC\Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\Envelope.cpp">
<Filter>EC\Source Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="..\DLLVersion.rc" /> <ResourceCompile Include="..\DLLVersion.rc" />

View File

@@ -150,13 +150,13 @@ inline std::string Envelope::openAsString(const EVPPKey& privKey, const ByteVec&
} }
const Envelope::ByteVec& Envelope::getContent() const inline const Envelope::ByteVec& Envelope::getContent() const
{ {
return _encContent; return _encContent;
} }
void Envelope::setContent(const ByteVec& enc) inline void Envelope::setContent(const ByteVec& enc)
{ {
_encContent = enc; _encContent = enc;
} }

View File

@@ -92,8 +92,8 @@ private:
#endif #endif
#if OPENSSL_VERSION_NUMBER >= 0x30000000L #if OPENSSL_VERSION_NUMBER >= 0x30000000L
static std::atomic<OSSL_PROVIDER*> _defaultProvider; static OSSL_PROVIDER* _defaultProvider;
static std::atomic<OSSL_PROVIDER*> _legacyProvider; static OSSL_PROVIDER* _legacyProvider;
#endif #endif
}; };

View File

@@ -66,8 +66,8 @@ Poco::FastMutex* OpenSSLInitializer::_mutexes(0);
#endif #endif
#if OPENSSL_VERSION_NUMBER >= 0x30000000L #if OPENSSL_VERSION_NUMBER >= 0x30000000L
std::atomic<OSSL_PROVIDER*> OpenSSLInitializer::_defaultProvider(0); OSSL_PROVIDER* OpenSSLInitializer::_defaultProvider(0);
std::atomic<OSSL_PROVIDER*> OpenSSLInitializer::_legacyProvider(0); OSSL_PROVIDER* OpenSSLInitializer::_legacyProvider(0);
#endif #endif

View File

@@ -582,6 +582,10 @@
RelativePath=".\src\PKCS12ContainerTest.h" RelativePath=".\src\PKCS12ContainerTest.h"
> >
</File> </File>
<File
RelativePath=".\src\EnvelopeTest.h"
>
</File>
<File <File
RelativePath=".\src\RSATest.h" RelativePath=".\src\RSATest.h"
> >
@@ -610,6 +614,10 @@
RelativePath=".\src\PKCS12ContainerTest.cpp" RelativePath=".\src\PKCS12ContainerTest.cpp"
> >
</File> </File>
<File
RelativePath=".\src\EnvelopeTest.cpp"
>
</File>
<File <File
RelativePath=".\src\RSATest.cpp" RelativePath=".\src\RSATest.cpp"
> >

View File

@@ -602,6 +602,7 @@
<ClInclude Include="src\CryptoTestSuite.h"/> <ClInclude Include="src\CryptoTestSuite.h"/>
<ClInclude Include="src\DigestEngineTest.h"/> <ClInclude Include="src\DigestEngineTest.h"/>
<ClInclude Include="src\ECTest.h"/> <ClInclude Include="src\ECTest.h"/>
<ClInclude Include="src\EnvelopeTest.h"/>
<ClInclude Include="src\EVPTest.h"/> <ClInclude Include="src\EVPTest.h"/>
<ClInclude Include="src\PKCS12ContainerTest.h"/> <ClInclude Include="src\PKCS12ContainerTest.h"/>
<ClInclude Include="src\RSATest.h"/> <ClInclude Include="src\RSATest.h"/>
@@ -622,6 +623,9 @@
<ClCompile Include="src\ECTest.cpp"> <ClCompile Include="src\ECTest.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<ClCompile Include="src\EnvelopeTest.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ClCompile Include="src\EVPTest.cpp"> <ClCompile Include="src\EVPTest.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>

View File

@@ -2,28 +2,28 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup> <ItemGroup>
<Filter Include="Crypto"> <Filter Include="Crypto">
<UniqueIdentifier>{0307e461-0372-4b61-b88a-24f59d5291f5}</UniqueIdentifier> <UniqueIdentifier>{9dff95b8-7a0a-42a2-882d-240353eebc86}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Crypto\Header Files"> <Filter Include="Crypto\Header Files">
<UniqueIdentifier>{ea60f0b1-8f41-4785-b21c-ea51871b27b6}</UniqueIdentifier> <UniqueIdentifier>{c461d935-f1d4-468f-8e89-a06090c1b7d6}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Crypto\Source Files"> <Filter Include="Crypto\Source Files">
<UniqueIdentifier>{73a5e4b2-0a40-4682-adcd-f76a09839671}</UniqueIdentifier> <UniqueIdentifier>{dcfe4ffa-6b62-4c48-9625-6fa8d16841f6}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="_Suite"> <Filter Include="_Suite">
<UniqueIdentifier>{1cf95bad-cc85-45a5-82db-4348109089a6}</UniqueIdentifier> <UniqueIdentifier>{66610ad9-d08d-4cd7-b3d2-d6d71a7d9ac5}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="_Suite\Header Files"> <Filter Include="_Suite\Header Files">
<UniqueIdentifier>{e596f9e4-e909-41be-9311-df2d6d3747aa}</UniqueIdentifier> <UniqueIdentifier>{0cfb4e9f-5fe7-42dd-96f1-3dc5e779bf88}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="_Suite\Source Files"> <Filter Include="_Suite\Source Files">
<UniqueIdentifier>{4484ecb8-1194-4fc5-bb53-264ad9a608b2}</UniqueIdentifier> <UniqueIdentifier>{0cd7e466-afb0-40c7-abff-08147e0e6da7}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="_Driver"> <Filter Include="_Driver">
<UniqueIdentifier>{4d620dde-5cd7-4b0e-a142-d965960c8a72}</UniqueIdentifier> <UniqueIdentifier>{89a0f0f0-fd2a-49aa-91f2-5b766adcd945}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="_Driver\Source Files"> <Filter Include="_Driver\Source Files">
<UniqueIdentifier>{be860c27-4ecf-4076-bf9a-214fec9a6bb5}</UniqueIdentifier> <UniqueIdentifier>{e110d68e-1724-4d5e-8ab5-f774c2735147}</UniqueIdentifier>
</Filter> </Filter>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -42,6 +42,9 @@
<ClInclude Include="src\PKCS12ContainerTest.h"> <ClInclude Include="src\PKCS12ContainerTest.h">
<Filter>Crypto\Header Files</Filter> <Filter>Crypto\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="src\EnvelopeTest.h">
<Filter>Crypto\Header Files</Filter>
</ClInclude>
<ClInclude Include="src\RSATest.h"> <ClInclude Include="src\RSATest.h">
<Filter>Crypto\Header Files</Filter> <Filter>Crypto\Header Files</Filter>
</ClInclude> </ClInclude>
@@ -65,6 +68,9 @@
<ClCompile Include="src\PKCS12ContainerTest.cpp"> <ClCompile Include="src\PKCS12ContainerTest.cpp">
<Filter>Crypto\Source Files</Filter> <Filter>Crypto\Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\EnvelopeTest.cpp">
<Filter>Crypto\Source Files</Filter>
</ClCompile>
<ClCompile Include="src\RSATest.cpp"> <ClCompile Include="src\RSATest.cpp">
<Filter>Crypto\Source Files</Filter> <Filter>Crypto\Source Files</Filter>
</ClCompile> </ClCompile>

View File

@@ -602,6 +602,7 @@
<ClInclude Include="src\CryptoTestSuite.h"/> <ClInclude Include="src\CryptoTestSuite.h"/>
<ClInclude Include="src\DigestEngineTest.h"/> <ClInclude Include="src\DigestEngineTest.h"/>
<ClInclude Include="src\ECTest.h"/> <ClInclude Include="src\ECTest.h"/>
<ClInclude Include="src\EnvelopeTest.h"/>
<ClInclude Include="src\EVPTest.h"/> <ClInclude Include="src\EVPTest.h"/>
<ClInclude Include="src\PKCS12ContainerTest.h"/> <ClInclude Include="src\PKCS12ContainerTest.h"/>
<ClInclude Include="src\RSATest.h"/> <ClInclude Include="src\RSATest.h"/>
@@ -622,6 +623,9 @@
<ClCompile Include="src\ECTest.cpp"> <ClCompile Include="src\ECTest.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<ClCompile Include="src\EnvelopeTest.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ClCompile Include="src\EVPTest.cpp"> <ClCompile Include="src\EVPTest.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>

View File

@@ -2,28 +2,28 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup> <ItemGroup>
<Filter Include="Crypto"> <Filter Include="Crypto">
<UniqueIdentifier>{2bb088de-648b-44f3-a6da-7e01203baa0c}</UniqueIdentifier> <UniqueIdentifier>{c36620ad-ed1f-44db-b632-628f09517b5a}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Crypto\Header Files"> <Filter Include="Crypto\Header Files">
<UniqueIdentifier>{b0434cc3-d68a-4a24-a60e-ba34498152ea}</UniqueIdentifier> <UniqueIdentifier>{93ac862f-ef66-4c96-82c6-82f03c87b786}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Crypto\Source Files"> <Filter Include="Crypto\Source Files">
<UniqueIdentifier>{c7b2facf-5022-4c9b-85b2-55ca7ff19a47}</UniqueIdentifier> <UniqueIdentifier>{c59358e6-8395-4e21-b952-d8f99d0805c9}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="_Suite"> <Filter Include="_Suite">
<UniqueIdentifier>{cbd4a023-92b8-4bb5-a9df-435c6a7afe13}</UniqueIdentifier> <UniqueIdentifier>{f96aacb4-a5dc-4cd9-9af3-9181ca3d08e8}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="_Suite\Header Files"> <Filter Include="_Suite\Header Files">
<UniqueIdentifier>{2a3ebbe8-0b82-4b0b-b75a-2a14e7cf8510}</UniqueIdentifier> <UniqueIdentifier>{0f12e848-51bd-4dcb-ac5a-21cfe7a2d3f9}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="_Suite\Source Files"> <Filter Include="_Suite\Source Files">
<UniqueIdentifier>{6384c5af-9c91-4a65-b82a-f21cd1e0889e}</UniqueIdentifier> <UniqueIdentifier>{79f7b368-e662-4165-b04b-4a1d652b6a32}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="_Driver"> <Filter Include="_Driver">
<UniqueIdentifier>{c41d57c8-f31f-4791-ba37-a1976e798c72}</UniqueIdentifier> <UniqueIdentifier>{4c17d29d-4e86-4175-8704-3d1374a9e47c}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="_Driver\Source Files"> <Filter Include="_Driver\Source Files">
<UniqueIdentifier>{4c8e8c4a-0480-47c4-ab2e-0271c7874e63}</UniqueIdentifier> <UniqueIdentifier>{d54ac5e8-d98b-4c54-a8a4-8553a21a9ac7}</UniqueIdentifier>
</Filter> </Filter>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -42,6 +42,9 @@
<ClInclude Include="src\PKCS12ContainerTest.h"> <ClInclude Include="src\PKCS12ContainerTest.h">
<Filter>Crypto\Header Files</Filter> <Filter>Crypto\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="src\EnvelopeTest.h">
<Filter>Crypto\Header Files</Filter>
</ClInclude>
<ClInclude Include="src\RSATest.h"> <ClInclude Include="src\RSATest.h">
<Filter>Crypto\Header Files</Filter> <Filter>Crypto\Header Files</Filter>
</ClInclude> </ClInclude>
@@ -65,6 +68,9 @@
<ClCompile Include="src\PKCS12ContainerTest.cpp"> <ClCompile Include="src\PKCS12ContainerTest.cpp">
<Filter>Crypto\Source Files</Filter> <Filter>Crypto\Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\EnvelopeTest.cpp">
<Filter>Crypto\Source Files</Filter>
</ClCompile>
<ClCompile Include="src\RSATest.cpp"> <ClCompile Include="src\RSATest.cpp">
<Filter>Crypto\Source Files</Filter> <Filter>Crypto\Source Files</Filter>
</ClCompile> </ClCompile>

View File

@@ -157,7 +157,7 @@
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros"/> <PropertyGroup Label="UserMacros"/>
<PropertyGroup> <PropertyGroup>
<_ProjectFileVersion>15.0.28307.799</_ProjectFileVersion> <_ProjectFileVersion>16.0.32629.160</_ProjectFileVersion>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">TestSuited</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">TestSuited</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">TestSuited</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'">TestSuited</TargetName>
@@ -602,6 +602,7 @@
<ClInclude Include="src\CryptoTestSuite.h"/> <ClInclude Include="src\CryptoTestSuite.h"/>
<ClInclude Include="src\DigestEngineTest.h"/> <ClInclude Include="src\DigestEngineTest.h"/>
<ClInclude Include="src\ECTest.h"/> <ClInclude Include="src\ECTest.h"/>
<ClInclude Include="src\EnvelopeTest.h"/>
<ClInclude Include="src\EVPTest.h"/> <ClInclude Include="src\EVPTest.h"/>
<ClInclude Include="src\PKCS12ContainerTest.h"/> <ClInclude Include="src\PKCS12ContainerTest.h"/>
<ClInclude Include="src\RSATest.h"/> <ClInclude Include="src\RSATest.h"/>
@@ -622,6 +623,9 @@
<ClCompile Include="src\ECTest.cpp"> <ClCompile Include="src\ECTest.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<ClCompile Include="src\EnvelopeTest.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ClCompile Include="src\EVPTest.cpp"> <ClCompile Include="src\EVPTest.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>

View File

@@ -2,28 +2,28 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup> <ItemGroup>
<Filter Include="Crypto"> <Filter Include="Crypto">
<UniqueIdentifier>{0dc0ac78-ca59-458b-8c95-bb50bba12e83}</UniqueIdentifier> <UniqueIdentifier>{8e27cadf-c720-479f-92da-b1e97f437438}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Crypto\Header Files"> <Filter Include="Crypto\Header Files">
<UniqueIdentifier>{7ab4046f-488c-47f4-b6db-18fe2cc37af5}</UniqueIdentifier> <UniqueIdentifier>{91a5793c-8b68-45d0-b350-877dd6cf2c02}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Crypto\Source Files"> <Filter Include="Crypto\Source Files">
<UniqueIdentifier>{a2b63aa7-58ba-4f3a-b391-a3f32a67bce7}</UniqueIdentifier> <UniqueIdentifier>{a14e5add-e33d-424b-be23-0b8371e22609}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="_Suite"> <Filter Include="_Suite">
<UniqueIdentifier>{92de59df-1db3-4ac4-a545-9e16c5a4aaeb}</UniqueIdentifier> <UniqueIdentifier>{f231f366-be62-4292-ab26-f91a41191403}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="_Suite\Header Files"> <Filter Include="_Suite\Header Files">
<UniqueIdentifier>{859f2c78-4de9-4aa2-b113-d5b2fc4fda8f}</UniqueIdentifier> <UniqueIdentifier>{ec44c7f3-b2a1-4b59-9081-8e61ddef1c44}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="_Suite\Source Files"> <Filter Include="_Suite\Source Files">
<UniqueIdentifier>{62840282-6976-4ef5-934c-9e7ef7f4aad1}</UniqueIdentifier> <UniqueIdentifier>{728bece6-f76d-483c-a028-52f91599a7e7}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="_Driver"> <Filter Include="_Driver">
<UniqueIdentifier>{c2dfb797-2cf1-48e9-a3db-9578c1be834d}</UniqueIdentifier> <UniqueIdentifier>{57064194-c6d7-414b-9f0d-a1707f6e0c8d}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="_Driver\Source Files"> <Filter Include="_Driver\Source Files">
<UniqueIdentifier>{68a624c7-5f73-4259-9035-b8c7eb047dd9}</UniqueIdentifier> <UniqueIdentifier>{60671a47-3546-4b5d-b1e9-275110dd36ca}</UniqueIdentifier>
</Filter> </Filter>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -42,6 +42,9 @@
<ClInclude Include="src\PKCS12ContainerTest.h"> <ClInclude Include="src\PKCS12ContainerTest.h">
<Filter>Crypto\Header Files</Filter> <Filter>Crypto\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="src\EnvelopeTest.h">
<Filter>Crypto\Header Files</Filter>
</ClInclude>
<ClInclude Include="src\RSATest.h"> <ClInclude Include="src\RSATest.h">
<Filter>Crypto\Header Files</Filter> <Filter>Crypto\Header Files</Filter>
</ClInclude> </ClInclude>
@@ -65,6 +68,9 @@
<ClCompile Include="src\PKCS12ContainerTest.cpp"> <ClCompile Include="src\PKCS12ContainerTest.cpp">
<Filter>Crypto\Source Files</Filter> <Filter>Crypto\Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\EnvelopeTest.cpp">
<Filter>Crypto\Source Files</Filter>
</ClCompile>
<ClCompile Include="src\RSATest.cpp"> <ClCompile Include="src\RSATest.cpp">
<Filter>Crypto\Source Files</Filter> <Filter>Crypto\Source Files</Filter>
</ClCompile> </ClCompile>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Project DefaultTargets="Build" ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="debug_shared|ARM64"> <ProjectConfiguration Include="debug_shared|ARM64">
<Configuration>debug_shared</Configuration> <Configuration>debug_shared</Configuration>
@@ -75,7 +75,6 @@
</ProjectConfiguration> </ProjectConfiguration>
</ItemGroup> </ItemGroup>
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<VCProjectVersion>17.0</VCProjectVersion>
<ProjectName>TestSuite</ProjectName> <ProjectName>TestSuite</ProjectName>
<ProjectGuid>{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}</ProjectGuid> <ProjectGuid>{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}</ProjectGuid>
<RootNamespace>TestSuite</RootNamespace> <RootNamespace>TestSuite</RootNamespace>
@@ -230,7 +229,7 @@
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros"/> <PropertyGroup Label="UserMacros"/>
<PropertyGroup> <PropertyGroup>
<_ProjectFileVersion>17.0.32505.173</_ProjectFileVersion> <_ProjectFileVersion>16.0.32629.160</_ProjectFileVersion>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|ARM64'">TestSuited</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='debug_shared|ARM64'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_md|ARM64'">TestSuited</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_md|ARM64'">TestSuited</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|ARM64'">TestSuited</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|ARM64'">TestSuited</TargetName>
@@ -894,6 +893,7 @@
<ClInclude Include="src\CryptoTestSuite.h"/> <ClInclude Include="src\CryptoTestSuite.h"/>
<ClInclude Include="src\DigestEngineTest.h"/> <ClInclude Include="src\DigestEngineTest.h"/>
<ClInclude Include="src\ECTest.h"/> <ClInclude Include="src\ECTest.h"/>
<ClInclude Include="src\EnvelopeTest.h"/>
<ClInclude Include="src\EVPTest.h"/> <ClInclude Include="src\EVPTest.h"/>
<ClInclude Include="src\PKCS12ContainerTest.h"/> <ClInclude Include="src\PKCS12ContainerTest.h"/>
<ClInclude Include="src\RSATest.h"/> <ClInclude Include="src\RSATest.h"/>
@@ -914,6 +914,9 @@
<ClCompile Include="src\ECTest.cpp"> <ClCompile Include="src\ECTest.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>
<ClCompile Include="src\EnvelopeTest.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ClCompile Include="src\EVPTest.cpp"> <ClCompile Include="src\EVPTest.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile> </ClCompile>

View File

@@ -2,28 +2,28 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup> <ItemGroup>
<Filter Include="Crypto"> <Filter Include="Crypto">
<UniqueIdentifier>{d1b16a39-59cc-4ef0-9d73-4d04996f08fa}</UniqueIdentifier> <UniqueIdentifier>{acf5407e-78f8-481f-aede-24ca7504422d}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Crypto\Header Files"> <Filter Include="Crypto\Header Files">
<UniqueIdentifier>{c9623c27-0634-4604-bd61-89ca38d7950f}</UniqueIdentifier> <UniqueIdentifier>{ed75d974-1e6e-4d97-83fb-7111122dba8b}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="Crypto\Source Files"> <Filter Include="Crypto\Source Files">
<UniqueIdentifier>{66f4dae6-1522-476f-be79-2c602dd14fb3}</UniqueIdentifier> <UniqueIdentifier>{0271bc10-a0c8-408a-8b2b-64e557c63f32}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="_Suite"> <Filter Include="_Suite">
<UniqueIdentifier>{6846cd67-bb5c-486a-93ed-10ceb333c0ac}</UniqueIdentifier> <UniqueIdentifier>{30319608-5ad4-43c1-af6e-84729e9e9aa6}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="_Suite\Header Files"> <Filter Include="_Suite\Header Files">
<UniqueIdentifier>{872a61f1-451a-4126-a12d-b3a1f5919df4}</UniqueIdentifier> <UniqueIdentifier>{aa5fc0e5-cee3-4f44-8a6a-7f64fbbda341}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="_Suite\Source Files"> <Filter Include="_Suite\Source Files">
<UniqueIdentifier>{fa41b61e-ec0f-426c-ac7c-5b47efa76ea8}</UniqueIdentifier> <UniqueIdentifier>{d2e3ae91-4bc3-4259-ab5d-9bc19d47d37c}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="_Driver"> <Filter Include="_Driver">
<UniqueIdentifier>{33db57c6-abab-46f8-9c57-5a2646a695a5}</UniqueIdentifier> <UniqueIdentifier>{9e497b70-abc5-4962-8853-36eb7d61b4ba}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="_Driver\Source Files"> <Filter Include="_Driver\Source Files">
<UniqueIdentifier>{2b6fc30d-653d-4128-afd1-182c60660088}</UniqueIdentifier> <UniqueIdentifier>{d16fc517-f3ee-4181-acac-c11efb90d9e8}</UniqueIdentifier>
</Filter> </Filter>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -42,6 +42,9 @@
<ClInclude Include="src\PKCS12ContainerTest.h"> <ClInclude Include="src\PKCS12ContainerTest.h">
<Filter>Crypto\Header Files</Filter> <Filter>Crypto\Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="src\EnvelopeTest.h">
<Filter>Crypto\Header Files</Filter>
</ClInclude>
<ClInclude Include="src\RSATest.h"> <ClInclude Include="src\RSATest.h">
<Filter>Crypto\Header Files</Filter> <Filter>Crypto\Header Files</Filter>
</ClInclude> </ClInclude>
@@ -65,6 +68,9 @@
<ClCompile Include="src\PKCS12ContainerTest.cpp"> <ClCompile Include="src\PKCS12ContainerTest.cpp">
<Filter>Crypto\Source Files</Filter> <Filter>Crypto\Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\EnvelopeTest.cpp">
<Filter>Crypto\Source Files</Filter>
</ClCompile>
<ClCompile Include="src\RSATest.cpp"> <ClCompile Include="src\RSATest.cpp">
<Filter>Crypto\Source Files</Filter> <Filter>Crypto\Source Files</Filter>
</ClCompile> </ClCompile>

View File

@@ -4,8 +4,8 @@
#include "winres.h" #include "winres.h"
#define POCO_VERSION 1,12,1,0 #define POCO_VERSION 1,12,2,0
#define POCO_VERSION_STR "1.12.1" #define POCO_VERSION_STR "1.12.2"
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION POCO_VERSION FILEVERSION POCO_VERSION

View File

@@ -324,9 +324,9 @@ private:
bool realExtractFixed(std::size_t pos, enum_field_types type, void* buffer, bool isUnsigned = false); bool realExtractFixed(std::size_t pos, enum_field_types type, void* buffer, bool isUnsigned = false);
bool extractLongLOB(std::size_t pos); bool extractLongLOB(std::size_t pos);
#ifdef POCO_MYSQL_JSON
bool extractJSON(std::size_t pos); bool extractJSON(std::size_t pos);
#endif
// Prevent VC8 warning "operator= could not be generated" // Prevent VC8 warning "operator= could not be generated"
Extractor& operator=(const Extractor&); Extractor& operator=(const Extractor&);

View File

@@ -62,5 +62,17 @@
#endif #endif
#endif #endif
//
// Detect support for JSON data type
//
#if defined(MARIADB_VERSION_ID)
#if MARIADB_VERSION_ID >= 100207
#define POCO_MYSQL_JSON
#endif
#else
#if MYSQL_VERSION_ID >= 50708
#define POCO_MYSQL_JSON
#endif
#endif
#endif // MySQL_MySQL_INCLUDED #endif // MySQL_MySQL_INCLUDED

View File

@@ -128,12 +128,16 @@ bool Extractor::extract(std::size_t pos, std::string& val)
//mysql reports TEXT types as FDT_BLOB when being extracted //mysql reports TEXT types as FDT_BLOB when being extracted
MetaColumn::ColumnDataType columnType = _metadata.metaColumn(static_cast<Poco::UInt32>(pos)).type(); MetaColumn::ColumnDataType columnType = _metadata.metaColumn(static_cast<Poco::UInt32>(pos)).type();
#ifdef POCO_MYSQL_JSON
if (columnType != Poco::Data::MetaColumn::FDT_STRING && columnType != Poco::Data::MetaColumn::FDT_BLOB && columnType != Poco::Data::MetaColumn::FDT_JSON) if (columnType != Poco::Data::MetaColumn::FDT_STRING && columnType != Poco::Data::MetaColumn::FDT_BLOB && columnType != Poco::Data::MetaColumn::FDT_JSON)
#else
if (columnType != Poco::Data::MetaColumn::FDT_STRING && columnType != Poco::Data::MetaColumn::FDT_BLOB)
#endif
throw MySQLException("Extractor: not a string"); throw MySQLException("Extractor: not a string");
#ifdef POCO_MYSQL_JSON
if (columnType == Poco::Data::MetaColumn::FDT_JSON && !extractJSON(pos)) if (columnType == Poco::Data::MetaColumn::FDT_JSON && !extractJSON(pos))
return false; return false;
#endif
if (columnType == Poco::Data::MetaColumn::FDT_BLOB && !extractLongLOB(pos)) if (columnType == Poco::Data::MetaColumn::FDT_BLOB && !extractLongLOB(pos))
return false; return false;
@@ -291,6 +295,7 @@ bool Extractor::extractLongLOB(std::size_t pos)
return true; return true;
} }
#ifdef POCO_MYSQL_JSON
bool Extractor::extractJSON(std::size_t pos) bool Extractor::extractJSON(std::size_t pos)
{ {
// JSON columns are fetched with a zero-length // JSON columns are fetched with a zero-length
@@ -306,6 +311,7 @@ bool Extractor::extractJSON(std::size_t pos)
return true; return true;
} }
#endif
////////////// //////////////
// Not implemented // Not implemented

View File

@@ -72,7 +72,9 @@ namespace
case MYSQL_TYPE_MEDIUM_BLOB: case MYSQL_TYPE_MEDIUM_BLOB:
case MYSQL_TYPE_LONG_BLOB: case MYSQL_TYPE_LONG_BLOB:
case MYSQL_TYPE_BLOB: case MYSQL_TYPE_BLOB:
#ifdef POCO_MYSQL_JSON
case MYSQL_TYPE_JSON: case MYSQL_TYPE_JSON:
#endif
return field.length; return field.length;
default: default:

View File

@@ -487,6 +487,7 @@ void MySQLTest::testLongTEXT()
_pExecutor->longText(); _pExecutor->longText();
} }
#ifdef POCO_MYSQL_JSON
void MySQLTest::testJSON() void MySQLTest::testJSON()
{ {
if (!_pSession) fail("Test not available."); if (!_pSession) fail("Test not available.");
@@ -494,7 +495,7 @@ void MySQLTest::testJSON()
recreatePersonJSONTable(); recreatePersonJSONTable();
_pExecutor->json(); _pExecutor->json();
} }
#endif
void MySQLTest::testUnsignedInts() void MySQLTest::testUnsignedInts()
{ {
@@ -796,7 +797,7 @@ void MySQLTest::recreatePersonLongBLOBTable()
catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail ("recreatePersonLongBLOBTable()"); } catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail ("recreatePersonLongBLOBTable()"); }
} }
#ifdef POCO_MYSQL_JSON
void MySQLTest::recreatePersonJSONTable() void MySQLTest::recreatePersonJSONTable()
{ {
dropTable("Person"); dropTable("Person");
@@ -804,7 +805,7 @@ void MySQLTest::recreatePersonJSONTable()
catch (ConnectionException& ce) { std::cout << ce.displayText() << std::endl; fail("recreatePersonJSONTable()"); } catch (ConnectionException& ce) { std::cout << ce.displayText() << std::endl; fail("recreatePersonJSONTable()"); }
catch (StatementException& se) { std::cout << se.displayText() << std::endl; fail("recreatePersonJSONTable()"); } catch (StatementException& se) { std::cout << se.displayText() << std::endl; fail("recreatePersonJSONTable()"); }
} }
#endif
void MySQLTest::recreateIntsTable() void MySQLTest::recreateIntsTable()
{ {

View File

@@ -81,7 +81,9 @@ public:
void testBLOBStmt(); void testBLOBStmt();
void testLongBLOB(); void testLongBLOB();
void testLongTEXT(); void testLongTEXT();
#ifdef POCO_MYSQL_JSON
void testJSON(); void testJSON();
#endif
void testUnsignedInts(); void testUnsignedInts();
void testFloat(); void testFloat();
@@ -122,7 +124,9 @@ private:
void recreatePersonTimeTable(); void recreatePersonTimeTable();
void recreatePersonTimestampTable(); void recreatePersonTimestampTable();
void recreatePersonLongBLOBTable(); void recreatePersonLongBLOBTable();
#ifdef POCO_MYSQL_JSON
void recreatePersonJSONTable(); void recreatePersonJSONTable();
#endif
void recreateStringsTable(); void recreateStringsTable();
void recreateIntsTable(); void recreateIntsTable();
void recreateUnsignedIntsTable(); void recreateUnsignedIntsTable();

View File

@@ -1513,6 +1513,7 @@ void SQLExecutor::longText()
poco_assert (longTextRes == biography); poco_assert (longTextRes == biography);
} }
#ifdef POCO_MYSQL_JSON
void SQLExecutor::json() void SQLExecutor::json()
{ {
std::string funct = "json()"; std::string funct = "json()";
@@ -1537,7 +1538,7 @@ void SQLExecutor::json()
catch (StatementException& se) { std::cout << se.displayText() << std::endl; fail(funct); } catch (StatementException& se) { std::cout << se.displayText() << std::endl; fail(funct); }
poco_assert(res == biography); poco_assert(res == biography);
} }
#endif
void SQLExecutor::tuples() void SQLExecutor::tuples()
{ {

View File

@@ -86,7 +86,9 @@ public:
void timestamp(); void timestamp();
void longBlob(); void longBlob();
void longText(); void longText();
#ifdef POCO_MYSQL_JSON
void json(); void json();
#endif
void unsignedInts(); void unsignedInts();
void floats(); void floats();
void doubles(); void doubles();

View File

@@ -39,10 +39,10 @@ protected:
void resetImpl(); void resetImpl();
private: private:
bool _auto; bool _auto;
std::atomic<bool> _state; bool _state;
pthread_mutex_t _mutex; pthread_mutex_t _mutex;
pthread_cond_t _cond; pthread_cond_t _cond;
}; };

View File

@@ -106,20 +106,26 @@ std::string Foundation_API format(const std::string& fmt, const Any& value);
/// std::string s2 = format("second: %[1]d, first: %[0]d", 1, 2); /// std::string s2 = format("second: %[1]d, first: %[0]d", 1, 2);
void Foundation_API format(std::string& result, const char *fmt, const std::vector<Any>& values); void Foundation_API format(std::string& result, const char *fmt, const std::vector<Any>& values);
/// Supports a variable number of arguments and is used by /// Supports a variable number of arguments.
/// all other variants of format().
void Foundation_API format(std::string& result, const std::string& fmt, const std::vector<Any>& values); void Foundation_API format(std::string& result, const std::string& fmt, const std::vector<Any>& values);
/// Supports a variable number of arguments.
inline void formatAny(std::string& result, const std::string& fmt, const std::vector<Any>& values)
/// Supports a variable number of arguments and is used by /// Supports a variable number of arguments and is used by
/// all other variants of format(). /// all other variants of format().
{
format(result, fmt, values);
}
inline void formatAny(std::string& result, const char *fmt, const std::vector<Any>& values)
/// Supports a variable number of arguments and is used by
/// all other variants of format().
{
format(result, fmt, values);
}
template < template <typename T, typename... Args>
typename T,
#ifdef __cpp_lib_remove_cvref
typename std::enable_if_t<!std::is_same_v<std::remove_cvref_t<T>, std::vector<Any>>>,
#endif
typename... Args>
void format(std::string& result, const std::string& fmt, T arg1, Args... args) void format(std::string& result, const std::string& fmt, T arg1, Args... args)
/// Appends the formatted string to result. /// Appends the formatted string to result.
{ {
@@ -127,16 +133,11 @@ void format(std::string& result, const std::string& fmt, T arg1, Args... args)
values.reserve(sizeof...(Args) + 1); values.reserve(sizeof...(Args) + 1);
values.emplace_back(arg1); values.emplace_back(arg1);
values.insert(values.end(), { args... }); values.insert(values.end(), { args... });
format(result, fmt, values); formatAny(result, fmt, values);
} }
template < template <typename T, typename... Args>
typename T,
#ifdef __cpp_lib_remove_cvref
typename std::enable_if_t<!std::is_same_v<std::remove_cvref_t<T>, std::vector<Any>>>,
#endif
typename... Args>
void format(std::string& result, const char* fmt, T arg1, Args... args) void format(std::string& result, const char* fmt, T arg1, Args... args)
/// Appends the formatted string to result. /// Appends the formatted string to result.
{ {
@@ -144,16 +145,11 @@ void format(std::string& result, const char* fmt, T arg1, Args... args)
values.reserve(sizeof...(Args) + 1); values.reserve(sizeof...(Args) + 1);
values.emplace_back(arg1); values.emplace_back(arg1);
values.insert(values.end(), { args... }); values.insert(values.end(), { args... });
format(result, fmt, values); formatAny(result, fmt, values);
} }
template < template <typename T, typename... Args>
typename T,
#ifdef __cpp_lib_remove_cvref
typename std::enable_if_t<!std::is_same_v<std::remove_cvref_t<T>, std::vector<Any>>>,
#endif
typename... Args>
std::string format(const std::string& fmt, T arg1, Args... args) std::string format(const std::string& fmt, T arg1, Args... args)
/// Returns the formatted string. /// Returns the formatted string.
{ {
@@ -162,17 +158,12 @@ std::string format(const std::string& fmt, T arg1, Args... args)
values.emplace_back(arg1); values.emplace_back(arg1);
values.insert(values.end(), { args... }); values.insert(values.end(), { args... });
std::string result; std::string result;
format(result, fmt, values); formatAny(result, fmt, values);
return result; return result;
} }
template < template <typename T, typename... Args>
typename T,
#ifdef __cpp_lib_remove_cvref
typename std::enable_if_t<!std::is_same_v<std::remove_cvref_t<T>, std::vector<Any>>>,
#endif
typename... Args>
std::string format(const char* fmt, T arg1, Args... args) std::string format(const char* fmt, T arg1, Args... args)
/// Returns the formatted string. /// Returns the formatted string.
{ {
@@ -181,7 +172,7 @@ std::string format(const char* fmt, T arg1, Args... args)
values.emplace_back(arg1); values.emplace_back(arg1);
values.insert(values.end(), { args... }); values.insert(values.end(), { args... });
std::string result; std::string result;
format(result, fmt, values); formatAny(result, fmt, values);
return result; return result;
} }

View File

@@ -22,16 +22,7 @@
#include "Poco/Exception.h" #include "Poco/Exception.h"
#include "Poco/ScopedLock.h" #include "Poco/ScopedLock.h"
#include "Poco/Timestamp.h" #include "Poco/Timestamp.h"
#include <atomic>
#if __cplusplus >= 201103L
#ifndef POCO_HAVE_STD_ATOMICS
#define POCO_HAVE_STD_ATOMICS
#endif
#endif
#ifdef POCO_HAVE_STD_ATOMICS
#include <atomic>
#endif
#if defined(POCO_OS_FAMILY_WINDOWS) #if defined(POCO_OS_FAMILY_WINDOWS)
@@ -161,8 +152,6 @@ private:
}; };
#ifdef POCO_HAVE_STD_ATOMICS
class Foundation_API SpinlockMutex class Foundation_API SpinlockMutex
/// A SpinlockMutex, implemented in terms of std::atomic_flag, as /// A SpinlockMutex, implemented in terms of std::atomic_flag, as
/// busy-wait mutual exclusion. /// busy-wait mutual exclusion.
@@ -210,8 +199,6 @@ private:
std::atomic_flag _flag = ATOMIC_FLAG_INIT; std::atomic_flag _flag = ATOMIC_FLAG_INIT;
}; };
#endif // POCO_HAVE_STD_ATOMICS
class Foundation_API NullMutex class Foundation_API NullMutex
/// A NullMutex is an empty mutex implementation /// A NullMutex is an empty mutex implementation
@@ -336,8 +323,6 @@ inline void FastMutex::unlock()
} }
#ifdef POCO_HAVE_STD_ATOMICS
// //
// SpinlockMutex // SpinlockMutex
// //
@@ -382,8 +367,6 @@ inline void SpinlockMutex::unlock()
_flag.clear(std::memory_order_release); _flag.clear(std::memory_order_release);
} }
#endif // POCO_HAVE_STD_ATOMICS
} // namespace Poco } // namespace Poco

View File

@@ -118,24 +118,25 @@
// //
// Hardware Architecture and Byte Order // Hardware Architecture and Byte Order
// //
#define POCO_ARCH_ALPHA 0x01 #define POCO_ARCH_ALPHA 0x01
#define POCO_ARCH_IA32 0x02 #define POCO_ARCH_IA32 0x02
#define POCO_ARCH_IA64 0x03 #define POCO_ARCH_IA64 0x03
#define POCO_ARCH_MIPS 0x04 #define POCO_ARCH_MIPS 0x04
#define POCO_ARCH_HPPA 0x05 #define POCO_ARCH_HPPA 0x05
#define POCO_ARCH_PPC 0x06 #define POCO_ARCH_PPC 0x06
#define POCO_ARCH_POWER 0x07 #define POCO_ARCH_POWER 0x07
#define POCO_ARCH_SPARC 0x08 #define POCO_ARCH_SPARC 0x08
#define POCO_ARCH_AMD64 0x09 #define POCO_ARCH_AMD64 0x09
#define POCO_ARCH_ARM 0x0a #define POCO_ARCH_ARM 0x0a
#define POCO_ARCH_M68K 0x0b #define POCO_ARCH_M68K 0x0b
#define POCO_ARCH_S390 0x0c #define POCO_ARCH_S390 0x0c
#define POCO_ARCH_SH 0x0d #define POCO_ARCH_SH 0x0d
#define POCO_ARCH_NIOS2 0x0e #define POCO_ARCH_NIOS2 0x0e
#define POCO_ARCH_AARCH64 0x0f #define POCO_ARCH_AARCH64 0x0f
#define POCO_ARCH_ARM64 0x0f // same as POCO_ARCH_AARCH64 #define POCO_ARCH_ARM64 0x0f // same as POCO_ARCH_AARCH64
#define POCO_ARCH_RISCV64 0x10 #define POCO_ARCH_RISCV64 0x10
#define POCO_ARCH_RISCV32 0x11 #define POCO_ARCH_RISCV32 0x11
#define POCO_ARCH_LOONGARCH64 0x12
#if defined(__ALPHA) || defined(__alpha) || defined(__alpha__) || defined(_M_ALPHA) #if defined(__ALPHA) || defined(__alpha) || defined(__alpha__) || defined(_M_ALPHA)

View File

@@ -22,6 +22,7 @@
#include "Poco/Exception.h" #include "Poco/Exception.h"
#include <pthread.h> #include <pthread.h>
#include <errno.h> #include <errno.h>
#include <atomic>
namespace Poco { namespace Poco {
@@ -37,10 +38,10 @@ protected:
bool waitImpl(long milliseconds); bool waitImpl(long milliseconds);
private: private:
volatile int _n; std::atomic<int> _n;
int _max; int _max;
pthread_mutex_t _mutex; pthread_mutex_t _mutex;
pthread_cond_t _cond; pthread_cond_t _cond;
}; };

View File

@@ -25,12 +25,14 @@
#endif #endif
#endif #endif
// disable min/max macros
#define NOMINMAX
#if !defined(POCO_NO_WINDOWS_H) #if !defined(POCO_NO_WINDOWS_H)
#include <windows.h> #include <windows.h>
#ifdef __MINGW32__ #ifdef __MINGW32__
#include <Winsock2.h> #include <winsock2.h>
#include <Iphlpapi.h> #include <iphlpapi.h>
#include <ws2tcpip.h> #include <ws2tcpip.h>
#endif // __MINGW32__ #endif // __MINGW32__
#endif #endif

View File

@@ -36,6 +36,6 @@
// Bx: beta releases // Bx: beta releases
// //
#define POCO_VERSION 0x010C0100 #define POCO_VERSION 0x010C0200
#endif // Foundation_Version_INCLUDED #endif // Foundation_Version_INCLUDED

View File

@@ -129,10 +129,16 @@ const DigestEngine::Digest& MD4Engine::digest()
/* Store state in digest */ /* Store state in digest */
unsigned char digest[16]; unsigned char digest[16];
encode(digest, _context.state, 16); encode(digest, _context.state, sizeof(digest));
_digest.clear(); _digest.clear();
#if defined(POCO_COMPILER_GCC)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstringop-overflow"
#endif
_digest.insert(_digest.begin(), digest, digest + sizeof(digest)); _digest.insert(_digest.begin(), digest, digest + sizeof(digest));
#if defined(POCO_COMPILER_GCC)
#pragma GCC diagnostic pop
#endif
/* Zeroize sensitive information. */ /* Zeroize sensitive information. */
std::memset(&_context, 0, sizeof (_context)); std::memset(&_context, 0, sizeof (_context));
reset(); reset();

View File

@@ -129,10 +129,16 @@ const DigestEngine::Digest& MD5Engine::digest()
/* Store state in digest */ /* Store state in digest */
unsigned char digest[16]; unsigned char digest[16];
encode(digest, _context.state, 16); encode(digest, _context.state, sizeof(digest));
_digest.clear(); _digest.clear();
#if defined(POCO_COMPILER_GCC)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstringop-overflow"
#endif
_digest.insert(_digest.begin(), digest, digest + sizeof(digest)); _digest.insert(_digest.begin(), digest, digest + sizeof(digest));
#if defined(POCO_COMPILER_GCC)
#pragma GCC diagnostic pop
#endif
/* Zeroize sensitive information. */ /* Zeroize sensitive information. */
std::memset(&_context, 0, sizeof (_context)); std::memset(&_context, 0, sizeof (_context));
reset(); reset();

View File

@@ -51,8 +51,6 @@ FastMutex::~FastMutex()
} }
#ifdef POCO_HAVE_STD_ATOMICS
SpinlockMutex::SpinlockMutex() SpinlockMutex::SpinlockMutex()
{ {
} }
@@ -62,7 +60,5 @@ SpinlockMutex::~SpinlockMutex()
{ {
} }
#endif // POCO_HAVE_STD_ATOMICS
} // namespace Poco } // namespace Poco

View File

@@ -143,7 +143,14 @@ const DigestEngine::Digest& SHA1Engine::digest()
for (count = 0; count < DIGEST_SIZE; count++) for (count = 0; count < DIGEST_SIZE; count++)
hash[count] = (BYTE) ((_context.digest[count>>2]) >> (8*(3-(count & 0x3)))) & 0xff; hash[count] = (BYTE) ((_context.digest[count>>2]) >> (8*(3-(count & 0x3)))) & 0xff;
_digest.clear(); _digest.clear();
#if defined(POCO_COMPILER_GCC)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstringop-overflow"
#endif
_digest.insert(_digest.begin(), hash, hash + DIGEST_SIZE); _digest.insert(_digest.begin(), hash, hash + DIGEST_SIZE);
#if defined(POCO_COMPILER_GCC)
#pragma GCC diagnostic pop
#endif
reset(); reset();
return _digest; return _digest;
} }

View File

@@ -20,6 +20,7 @@ using Poco::format;
using Poco::BadCastException; using Poco::BadCastException;
using Poco::Int64; using Poco::Int64;
using Poco::UInt64; using Poco::UInt64;
using Poco::Any;
FormatTest::FormatTest(const std::string& name): CppUnit::TestCase(name) FormatTest::FormatTest(const std::string& name): CppUnit::TestCase(name)
@@ -453,6 +454,27 @@ void FormatTest::testIndex()
} }
void FormatTest::testAny()
{
Any a = 42;
std::string s(format("%d", a));
assertTrue (s == "42");
a = std::string("42");
s = format("%s", a);
assertTrue (s == "42");
a = 42.;
s = format("%f", a);
assertTrue (s.find("42.0") == 0);
s.clear();
std::vector<Any> av{ 42, std::string("42"), 42. };
format(s, "%d '%s' %f", av);
assertTrue (s.find("42 '42' 42.0") == 0);
}
void FormatTest::setUp() void FormatTest::setUp()
{ {
} }
@@ -476,6 +498,7 @@ CppUnit::Test* FormatTest::suite()
CppUnit_addTest(pSuite, FormatTest, testString); CppUnit_addTest(pSuite, FormatTest, testString);
CppUnit_addTest(pSuite, FormatTest, testMultiple); CppUnit_addTest(pSuite, FormatTest, testMultiple);
CppUnit_addTest(pSuite, FormatTest, testIndex); CppUnit_addTest(pSuite, FormatTest, testIndex);
CppUnit_addTest(pSuite, FormatTest, testAny);
return pSuite; return pSuite;
} }

View File

@@ -30,6 +30,7 @@ public:
void testString(); void testString();
void testMultiple(); void testMultiple();
void testIndex(); void testIndex();
void testAny();
void setUp(); void setUp();
void tearDown(); void tearDown();

View File

@@ -14,6 +14,7 @@
#include "Poco/RWLock.h" #include "Poco/RWLock.h"
#include "Poco/Thread.h" #include "Poco/Thread.h"
#include "Poco/Runnable.h" #include "Poco/Runnable.h"
#include <atomic>
using Poco::RWLock; using Poco::RWLock;
@@ -24,7 +25,12 @@ using Poco::Runnable;
class RWLockRunnable: public Runnable class RWLockRunnable: public Runnable
{ {
public: public:
RWLockRunnable(RWLock& lock, volatile int& counter): _lock(lock), _counter(counter), _ok(true) #ifdef __cpp_lib_atomic_ref
RWLockRunnable(RWLock& lock, int& counter):
#else
RWLockRunnable(RWLock& lock, volatile int& counter):
#endif
_lock(lock), _counter(counter), _ok(true)
{ {
} }
@@ -65,7 +71,11 @@ public:
private: private:
RWLock& _lock; RWLock& _lock;
#ifdef __cpp_lib_atomic_ref
std::atomic_ref<int> _counter;
#else
volatile int& _counter; volatile int& _counter;
#endif
bool _ok; bool _ok;
}; };
@@ -73,7 +83,12 @@ private:
class RWTryLockRunnable: public Runnable class RWTryLockRunnable: public Runnable
{ {
public: public:
RWTryLockRunnable(RWLock& lock, volatile int& counter): _lock(lock), _counter(counter), _ok(true) #ifdef __cpp_lib_atomic_ref
RWTryLockRunnable(RWLock& lock, int& counter):
#else
RWTryLockRunnable(RWLock& lock, volatile int& counter):
#endif
_lock(lock), _counter(counter), _ok(true)
{ {
} }
@@ -114,7 +129,11 @@ public:
private: private:
RWLock& _lock; RWLock& _lock;
#ifdef __cpp_lib_atomic_ref
std::atomic_ref<int> _counter;
#else
volatile int& _counter; volatile int& _counter;
#endif
bool _ok; bool _ok;
}; };

View File

@@ -77,7 +77,9 @@ private:
{ {
T result = 0; T result = 0;
if (123 <= std::numeric_limits<T>::max()) if (123 <= std::numeric_limits<T>::max())
{
assertTrue (Poco::strToInt("123", result, 10)); assertTrue (result == 123); assertTrue (Poco::strToInt("123", result, 10)); assertTrue (result == 123);
}
assertTrue (Poco::strToInt("0", result, 10)); assertTrue (result == 0); assertTrue (Poco::strToInt("0", result, 10)); assertTrue (result == 0);
assertTrue (Poco::strToInt("000", result, 10)); assertTrue (result == 0); assertTrue (Poco::strToInt("000", result, 10)); assertTrue (result == 0);

View File

@@ -59,62 +59,62 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

View File

@@ -69,11 +69,16 @@ public:
using SocketMap = std::map<void*, SocketMode>; using SocketMap = std::map<void*, SocketMode>;
PollSetImpl(): _events(1024), PollSetImpl(): _events(1024),
_port(0),
_eventfd(eventfd(_port, 0)), _eventfd(eventfd(_port, 0)),
_epollfd(epoll_create(1)) _epollfd(epoll_create(1))
{ {
int err = addFD(_eventfd, PollSet::POLL_READ, EPOLL_CTL_ADD); int err = addFD(_eventfd, PollSet::POLL_READ, EPOLL_CTL_ADD);
#ifdef WEPOLL_H_
if ((err) || !_epollfd)
#else
if ((err) || (_epollfd < 0)) if ((err) || (_epollfd < 0))
#endif
{ {
SocketImpl::error(); SocketImpl::error();
} }
@@ -170,18 +175,23 @@ public:
// calls would round-robin through the remaining ready sockets, but it's better to give // calls would round-robin through the remaining ready sockets, but it's better to give
// the call enough room once we start hitting the boundary // the call enough room once we start hitting the boundary
if (rc >= _events.size()) _events.resize(_events.size()*2); if (rc >= _events.size()) _events.resize(_events.size()*2);
if (rc < 0 && SocketImpl::lastError() == POCO_EINTR) else if (rc < 0)
{ {
Poco::Timestamp end; // if interrupted and there's still time left, keep waiting
Poco::Timespan waited = end - start; if (SocketImpl::lastError() == POCO_EINTR)
if (waited < remainingTime) {
remainingTime -= waited; Poco::Timestamp end;
else Poco::Timespan waited = end - start;
remainingTime = 0; if (waited < remainingTime)
{
remainingTime -= waited;
continue;
}
}
else SocketImpl::error();
} }
} }
while (rc < 0 && SocketImpl::lastError() == POCO_EINTR); while (false);
if (rc < 0) SocketImpl::error();
for (int i = 0; i < rc; i++) for (int i = 0; i < rc; i++)
{ {
@@ -198,8 +208,17 @@ public:
result[it->second.first] |= PollSet::POLL_ERROR; result[it->second.first] |= PollSet::POLL_ERROR;
} }
} }
else if (_events[i].events & EPOLLIN) // eventfd signaled
{
uint64_t val;
#ifdef WEPOLL_H_
if (_pSocket && _pSocket->available())
_pSocket->impl()->receiveBytes(&val, sizeof(val));
#else
read(_eventfd, &val, sizeof(val));
#endif
}
} }
return result; return result;
} }
@@ -277,6 +296,7 @@ private:
if (rmFD == 0) if (rmFD == 0)
{ {
_pSocket = new ServerSocket(SocketAddress("127.0.0.1", 0)); _pSocket = new ServerSocket(SocketAddress("127.0.0.1", 0));
_pSocket->setBlocking(false);
port = _pSocket->address().port(); port = _pSocket->address().port();
return static_cast<int>(_pSocket->impl()->sockfd()); return static_cast<int>(_pSocket->impl()->sockfd());
} }
@@ -294,7 +314,7 @@ private:
mutable Mutex _mutex; mutable Mutex _mutex;
SocketMap _socketMap; SocketMap _socketMap;
std::vector<struct epoll_event> _events; std::vector<struct epoll_event> _events;
int _port = 0; int _port;
std::atomic<int> _eventfd; std::atomic<int> _eventfd;
#ifdef WEPOLL_H_ #ifdef WEPOLL_H_
std::atomic <HANDLE> _epollfd; std::atomic <HANDLE> _epollfd;

View File

@@ -59,62 +59,62 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet> <CharacterSet>MultiByte</CharacterSet>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

View File

@@ -184,9 +184,14 @@ void PollSetTest::testTimeout()
sw.stop(); sw.stop();
assertTrue(ps.poll(timeout).size() == 1); assertTrue(ps.poll(timeout).size() == 1);
// just here to prevent server exception on connection reset
char buffer[5]; char buffer[5];
ss.receiveBytes(buffer, sizeof(buffer)); ss.receiveBytes(buffer, sizeof(buffer));
sw.restart();
sm = ps.poll(timeout);
sw.stop();
assertTrue(sm.empty());
assertTrue(sw.elapsed() >= 900000);
} }

23
README
View File

@@ -167,17 +167,36 @@ If the version is out of date, please create an issue or pull request(https://gi
on the vcpkg repository. on the vcpkg repository.
BUILDING - USING CONAN
======================
You can download and install poco using the Conan(https://github.com/conan-io/conan)
package manager. It needed to be installed first(https://conan.io/downloads.html):
You can install Poco libraries from Conan Center(https://conan.io/center.html):
$ conan install -r conancenter poco/1.12.0@
Or, you can download Poco recipe and build locally:
$ conan install -r conancenter poco/1.12.0@ --build=poco
The Poco recipe and packages in Conan Center are kept up to date by Conan team members and community contributors.
If the version is out of date, or you detect any wrong behavior, please create an issue or pull request(https://github.com/conan-io/conan-center-index)
on the Conan Center Index repository.
BUILDING ON WINDOWS BUILDING ON WINDOWS
=================== ===================
Microsoft Visual Studio 2015 or newer is required to build the POCO C++ Libraries on Microsoft Visual Studio 2015 or newer is required to build the POCO C++ Libraries on
Windows platforms. Solution and project files for all versions from 2015 to 2019 are included. Windows platforms. Solution and project files for all versions from 2015 to 2022 are included.
64-bit (x64) builds are supported as well. 64-bit (x64) builds are supported as well.
You can either build from within Visual Studio (Build->Batch Build->Select All;Rebuild) You can either build from within Visual Studio (Build->Batch Build->Select All;Rebuild)
or from the command line. To build from the command line, start the or from the command line. To build from the command line, start the
Visual Studio Command Prompt and cd to the directory where you Visual Studio Command Prompt and cd to the directory where you
have extracted the POCO C++ Libraries sources. Then, simply start the buildwin.cmd script have extracted the POCO C++ Libraries sources. Then, simply start the buildwin.cmd script
and pass as argument the version of visual studio (140, 150, 160, etc.). You can customize and pass as argument the version of visual studio (140, 150, 160, 170, etc.). You can customize
what is being built by buildwin.cmd by passing appropriate command line arguments to what is being built by buildwin.cmd by passing appropriate command line arguments to
it. Call buildwin.cmd without arguments to see what is available. it. Call buildwin.cmd without arguments to see what is available.

View File

@@ -139,6 +139,23 @@ The poco port in vcpkg is kept up to date by Microsoft team members and communit
If the version is out of date, please [create an issue or pull request](https://github.com/Microsoft/vcpkg) If the version is out of date, please [create an issue or pull request](https://github.com/Microsoft/vcpkg)
on the vcpkg repository. on the vcpkg repository.
#### Building and Installing - Using Conan
You can download and install poco using the Conan(https://github.com/conan-io/conan)
package manager. It needed to be installed first(https://conan.io/downloads.html):
You can install Poco libraries from Conan Center(https://conan.io/center.html):
$ conan install -r conancenter poco/1.12.0@
Or, you can download Poco recipe and build locally:
$ conan install -r conancenter poco/1.12.0@ --build=poco
The Poco recipe and packages in Conan Center are kept up to date by Conan team members and community contributors.
If the version is out of date, or you detect any wrong behavior, please create an issue or pull request(https://github.com/conan-io/conan-center-index)
on the Conan Center Index repository.
### Building Without CMake ### Building Without CMake

View File

@@ -1 +1 @@
1.12.1 1.12.2

View File

@@ -2,6 +2,31 @@ POCO C++ Libraries Release Notes
AAAIntroduction AAAIntroduction
!!!Release 1.12.2
!!Summary of Changes
- GH #3460 fix(Platform): LoongArch support
- GH #3688 Linking Crypto-testrunner fails
- GH #3693 VS2022 compilation issues
- GH #3698 SIGABRT in OSSL_PROVIDER_unload with static OpenSSL3
- GH #3699 POSIX Event state need not be atomic
- GH #3700 Release script must include build_vs170.cmd
- GH #3708 wakeup fd is never read
- GH #3711 lowercase winsock2 and iphlpapi to allow cross compile
- GH #3716 Compiling with clang_cl_x64_x64 on Visual Studio 2022 failed
- GH #3717 Only support extracting JSON fields when the SDK supports it
- GH #3719 PocoNet Project File does not support Visual Studio 2022
- GH #3720 Update max MSVC version information
- GH #3721 fails to build with Visual Studio projects
- GH #3722 Added missing Crypto Header to ProGen source
- GH #3724 Crypto: Progen again to add new files and bring back ARM64 configuration
- GH #3727 Add how to install using Conan section on README
- GH #3733 Poco::format and C++20
- GH #3734 g++ C++20 warnings
!!!Release 1.12.1 !!!Release 1.12.1
!!Summary of Changes !!Summary of Changes

View File

@@ -45,3 +45,16 @@ The following naming conventions are used:
are placed in the <*lib64*> directory. DLLs are placed in <*bin*> (32-bit) are placed in the <*lib64*> directory. DLLs are placed in <*bin*> (32-bit)
or <*bin64*> (64-bit). 64-bit DLLs are named PocoLIB64.dll for release or <*bin64*> (64-bit). 64-bit DLLs are named PocoLIB64.dll for release
and PocoLIB64d.dll for debug, respectively. and PocoLIB64d.dll for debug, respectively.
!!MSVC Compiler Notes
!!!C++ standard version not properly defined
In order to work around that, `/Zc:__cplusplus` compiler flag is necesary.
See the following issues for details and explanations:
* https://github.com/pocoproject/poco/issues/3665
* https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/

View File

@@ -1 +1 @@
91 92

View File

@@ -423,6 +423,15 @@ buildwin 160 build shared both Win32 samples
ENDOFSCRIPT ENDOFSCRIPT
#
# Create Visual Studio 17 build script
#
cat >${target}/build_vs170.cmd <<'ENDOFSCRIPT'
@echo off
buildwin 170 build shared both Win32 samples
ENDOFSCRIPT
# #
# Fix line endings # Fix line endings
# #
@@ -430,6 +439,7 @@ if [ "$lineEndConv" != "" ] ; then
$lineEndConv ${target}/build_vs140.cmd $lineEndConv ${target}/build_vs140.cmd
$lineEndConv ${target}/build_vs150.cmd $lineEndConv ${target}/build_vs150.cmd
$lineEndConv ${target}/build_vs160.cmd $lineEndConv ${target}/build_vs160.cmd
$lineEndConv ${target}/build_vs170.cmd
$lineEndConv ${target}/Makefile $lineEndConv ${target}/Makefile
$lineEndConv ${target}/components $lineEndConv ${target}/components
fi fi