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: >-
sudo -s
EXCLUDE_TESTS="Data/ODBC Data/PostgreSQL MongoDB"
EXCLUDE_TESTS="Data/ODBC Data/MySQL Data/PostgreSQL MongoDB"
./ci/runtests.sh
linux-gcc-make-asan:

View File

@@ -1,5 +1,28 @@
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)
===========================

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
<?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">
<ProjectConfiguration Include="debug_shared|ARM64">
<Configuration>debug_shared</Configuration>
@@ -75,7 +75,6 @@
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>17.0</VCProjectVersion>
<ProjectName>Crypto</ProjectName>
<ProjectGuid>{EEEE7259-32E9-4D56-B023-C733940AB2A0}</ProjectGuid>
<RootNamespace>Crypto</RootNamespace>
@@ -230,7 +229,7 @@
</ImportGroup>
<PropertyGroup Label="UserMacros"/>
<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_static_md|ARM64'">PocoCryptomdd</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\ECKey.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\KeyPair.h"/>
<ClInclude Include="include\Poco\Crypto\KeyPairImpl.h"/>
@@ -872,6 +873,12 @@
<ClCompile Include="src\ECKeyImpl.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ClCompile Include="src\Envelope.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ClCompile Include="src\EVPCipherImpl.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ClCompile Include="src\EVPPKey.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -157,7 +157,7 @@
</ImportGroup>
<PropertyGroup Label="UserMacros"/>
<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_static_md|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\DigestEngineTest.h"/>
<ClInclude Include="src\ECTest.h"/>
<ClInclude Include="src\EnvelopeTest.h"/>
<ClInclude Include="src\EVPTest.h"/>
<ClInclude Include="src\PKCS12ContainerTest.h"/>
<ClInclude Include="src\RSATest.h"/>
@@ -622,6 +623,9 @@
<ClCompile Include="src\ECTest.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ClCompile Include="src\EnvelopeTest.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ClCompile Include="src\EVPTest.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>

View File

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

View File

@@ -1,5 +1,5 @@
<?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">
<ProjectConfiguration Include="debug_shared|ARM64">
<Configuration>debug_shared</Configuration>
@@ -75,7 +75,6 @@
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>17.0</VCProjectVersion>
<ProjectName>TestSuite</ProjectName>
<ProjectGuid>{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}</ProjectGuid>
<RootNamespace>TestSuite</RootNamespace>
@@ -230,7 +229,7 @@
</ImportGroup>
<PropertyGroup Label="UserMacros"/>
<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_static_md|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\DigestEngineTest.h"/>
<ClInclude Include="src\ECTest.h"/>
<ClInclude Include="src\EnvelopeTest.h"/>
<ClInclude Include="src\EVPTest.h"/>
<ClInclude Include="src\PKCS12ContainerTest.h"/>
<ClInclude Include="src\RSATest.h"/>
@@ -914,6 +914,9 @@
<ClCompile Include="src\ECTest.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ClCompile Include="src\EnvelopeTest.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ClCompile Include="src\EVPTest.cpp">
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>

View File

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

View File

@@ -4,8 +4,8 @@
#include "winres.h"
#define POCO_VERSION 1,12,1,0
#define POCO_VERSION_STR "1.12.1"
#define POCO_VERSION 1,12,2,0
#define POCO_VERSION_STR "1.12.2"
VS_VERSION_INFO VERSIONINFO
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 extractLongLOB(std::size_t pos);
#ifdef POCO_MYSQL_JSON
bool extractJSON(std::size_t pos);
#endif
// Prevent VC8 warning "operator= could not be generated"
Extractor& operator=(const Extractor&);

View File

@@ -62,5 +62,17 @@
#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

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
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)
#else
if (columnType != Poco::Data::MetaColumn::FDT_STRING && columnType != Poco::Data::MetaColumn::FDT_BLOB)
#endif
throw MySQLException("Extractor: not a string");
#ifdef POCO_MYSQL_JSON
if (columnType == Poco::Data::MetaColumn::FDT_JSON && !extractJSON(pos))
return false;
#endif
if (columnType == Poco::Data::MetaColumn::FDT_BLOB && !extractLongLOB(pos))
return false;
@@ -291,6 +295,7 @@ bool Extractor::extractLongLOB(std::size_t pos)
return true;
}
#ifdef POCO_MYSQL_JSON
bool Extractor::extractJSON(std::size_t pos)
{
// JSON columns are fetched with a zero-length
@@ -306,6 +311,7 @@ bool Extractor::extractJSON(std::size_t pos)
return true;
}
#endif
//////////////
// Not implemented

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -40,7 +40,7 @@ protected:
private:
bool _auto;
std::atomic<bool> _state;
bool _state;
pthread_mutex_t _mutex;
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);
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
/// all other variants of format().
/// Supports a variable number of arguments.
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
/// 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 <
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>
template <typename T, typename... Args>
void format(std::string& result, const std::string& fmt, T arg1, Args... args)
/// 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.emplace_back(arg1);
values.insert(values.end(), { args... });
format(result, fmt, values);
formatAny(result, fmt, values);
}
template <
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>
template <typename T, typename... Args>
void format(std::string& result, const char* fmt, T arg1, Args... args)
/// 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.emplace_back(arg1);
values.insert(values.end(), { args... });
format(result, fmt, values);
formatAny(result, fmt, values);
}
template <
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>
template <typename T, typename... Args>
std::string format(const std::string& fmt, T arg1, Args... args)
/// Returns the formatted string.
{
@@ -162,17 +158,12 @@ std::string format(const std::string& fmt, T arg1, Args... args)
values.emplace_back(arg1);
values.insert(values.end(), { args... });
std::string result;
format(result, fmt, values);
formatAny(result, fmt, values);
return result;
}
template <
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>
template <typename T, typename... Args>
std::string format(const char* fmt, T arg1, Args... args)
/// Returns the formatted string.
{
@@ -181,7 +172,7 @@ std::string format(const char* fmt, T arg1, Args... args)
values.emplace_back(arg1);
values.insert(values.end(), { args... });
std::string result;
format(result, fmt, values);
formatAny(result, fmt, values);
return result;
}

View File

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

View File

@@ -136,6 +136,7 @@
#define POCO_ARCH_ARM64 0x0f // same as POCO_ARCH_AARCH64
#define POCO_ARCH_RISCV64 0x10
#define POCO_ARCH_RISCV32 0x11
#define POCO_ARCH_LOONGARCH64 0x12
#if defined(__ALPHA) || defined(__alpha) || defined(__alpha__) || defined(_M_ALPHA)

View File

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

View File

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

View File

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

View File

@@ -129,10 +129,16 @@ const DigestEngine::Digest& MD4Engine::digest()
/* Store state in digest */
unsigned char digest[16];
encode(digest, _context.state, 16);
encode(digest, _context.state, sizeof(digest));
_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));
#if defined(POCO_COMPILER_GCC)
#pragma GCC diagnostic pop
#endif
/* Zeroize sensitive information. */
std::memset(&_context, 0, sizeof (_context));
reset();

View File

@@ -129,10 +129,16 @@ const DigestEngine::Digest& MD5Engine::digest()
/* Store state in digest */
unsigned char digest[16];
encode(digest, _context.state, 16);
encode(digest, _context.state, sizeof(digest));
_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));
#if defined(POCO_COMPILER_GCC)
#pragma GCC diagnostic pop
#endif
/* Zeroize sensitive information. */
std::memset(&_context, 0, sizeof (_context));
reset();

View File

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

View File

@@ -143,7 +143,14 @@ const DigestEngine::Digest& SHA1Engine::digest()
for (count = 0; count < DIGEST_SIZE; count++)
hash[count] = (BYTE) ((_context.digest[count>>2]) >> (8*(3-(count & 0x3)))) & 0xff;
_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);
#if defined(POCO_COMPILER_GCC)
#pragma GCC diagnostic pop
#endif
reset();
return _digest;
}

View File

@@ -20,6 +20,7 @@ using Poco::format;
using Poco::BadCastException;
using Poco::Int64;
using Poco::UInt64;
using Poco::Any;
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()
{
}
@@ -476,6 +498,7 @@ CppUnit::Test* FormatTest::suite()
CppUnit_addTest(pSuite, FormatTest, testString);
CppUnit_addTest(pSuite, FormatTest, testMultiple);
CppUnit_addTest(pSuite, FormatTest, testIndex);
CppUnit_addTest(pSuite, FormatTest, testAny);
return pSuite;
}

View File

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

View File

@@ -14,6 +14,7 @@
#include "Poco/RWLock.h"
#include "Poco/Thread.h"
#include "Poco/Runnable.h"
#include <atomic>
using Poco::RWLock;
@@ -24,7 +25,12 @@ using Poco::Runnable;
class RWLockRunnable: public Runnable
{
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:
RWLock& _lock;
#ifdef __cpp_lib_atomic_ref
std::atomic_ref<int> _counter;
#else
volatile int& _counter;
#endif
bool _ok;
};
@@ -73,7 +83,12 @@ private:
class RWTryLockRunnable: public Runnable
{
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:
RWLock& _lock;
#ifdef __cpp_lib_atomic_ref
std::atomic_ref<int> _counter;
#else
volatile int& _counter;
#endif
bool _ok;
};

View File

@@ -77,7 +77,9 @@ private:
{
T result = 0;
if (123 <= std::numeric_limits<T>::max())
{
assertTrue (Poco::strToInt("123", result, 10)); assertTrue (result == 123);
}
assertTrue (Poco::strToInt("0", 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" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_md|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_md|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_static_mt|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_static_mt|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release_shared|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug_shared|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

View File

@@ -69,11 +69,16 @@ public:
using SocketMap = std::map<void*, SocketMode>;
PollSetImpl(): _events(1024),
_port(0),
_eventfd(eventfd(_port, 0)),
_epollfd(epoll_create(1))
{
int err = addFD(_eventfd, PollSet::POLL_READ, EPOLL_CTL_ADD);
#ifdef WEPOLL_H_
if ((err) || !_epollfd)
#else
if ((err) || (_epollfd < 0))
#endif
{
SocketImpl::error();
}
@@ -170,18 +175,23 @@ public:
// 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
if (rc >= _events.size()) _events.resize(_events.size()*2);
if (rc < 0 && SocketImpl::lastError() == POCO_EINTR)
else if (rc < 0)
{
// if interrupted and there's still time left, keep waiting
if (SocketImpl::lastError() == POCO_EINTR)
{
Poco::Timestamp end;
Poco::Timespan waited = end - start;
if (waited < remainingTime)
{
remainingTime -= waited;
else
remainingTime = 0;
continue;
}
}
while (rc < 0 && SocketImpl::lastError() == POCO_EINTR);
if (rc < 0) SocketImpl::error();
else SocketImpl::error();
}
}
while (false);
for (int i = 0; i < rc; i++)
{
@@ -198,8 +208,17 @@ public:
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;
}
@@ -277,6 +296,7 @@ private:
if (rmFD == 0)
{
_pSocket = new ServerSocket(SocketAddress("127.0.0.1", 0));
_pSocket->setBlocking(false);
port = _pSocket->address().port();
return static_cast<int>(_pSocket->impl()->sockfd());
}
@@ -294,7 +314,7 @@ private:
mutable Mutex _mutex;
SocketMap _socketMap;
std::vector<struct epoll_event> _events;
int _port = 0;
int _port;
std::atomic<int> _eventfd;
#ifdef WEPOLL_H_
std::atomic <HANDLE> _epollfd;

View File

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

View File

@@ -184,9 +184,14 @@ void PollSetTest::testTimeout()
sw.stop();
assertTrue(ps.poll(timeout).size() == 1);
// just here to prevent server exception on connection reset
char buffer[5];
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.
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
===================
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.
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
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
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
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)
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

View File

@@ -1 +1 @@
1.12.1
1.12.2

View File

@@ -2,6 +2,31 @@ POCO C++ Libraries Release Notes
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
!!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)
or <*bin64*> (64-bit). 64-bit DLLs are named PocoLIB64.dll for release
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
#
# 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
#
@@ -430,6 +439,7 @@ if [ "$lineEndConv" != "" ] ; then
$lineEndConv ${target}/build_vs140.cmd
$lineEndConv ${target}/build_vs150.cmd
$lineEndConv ${target}/build_vs160.cmd
$lineEndConv ${target}/build_vs170.cmd
$lineEndConv ${target}/Makefile
$lineEndConv ${target}/components
fi