Re: Hello, has anyone succ on using cryptopp with latest c++ builder
One Sini <[email protected]> Tue, 9 Sep 2025 11:18:22 +0200
| Newsgroups | gmane.comp.encryption.cryptopp |
|---|---|
| Message-ID | <CAJm61-BkJG142Dhiv1pF5cmXyug66qewxzR0S2wE_VP0v6XJMA@mail.gmail.com> |
--000000000000c4b5f4063e5ac98a
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
way to use Crypto++ with Embarcadero C++ Builder and avoid the
SecByteBlock access-violation
problems.
Small step-by-step (C++ Builder + Crypto++)
1.
*Get the Crypto++ sources*
Download the official Crypto++ source tree (zip / tarball or clone the
repo). Don=E2=80=99t use a prebuilt .lib made by MSVC/GCC =E2=80=94 that=
causes
ABI/allocator mismatches.
2.
*Open your C++ Builder project / create one*
Select the correct target (Win32 or Win64). Make sure your app target is
the platform you intend to test.
3.
*Add Crypto++ include path*
Project =E2=86=92 Options =E2=86=92 C++ Compiler =E2=86=92 *Include path=
* (Search path) =E2=86=92 add
the Crypto++ folder that contains the headers (so #include
<cryptopp/secblock.h> resolves).
4.
*Add Crypto++ .cpp files to your project*
Right-click the project =E2=86=92 Add =E2=86=92 *Add existing files* =E2=
=86=92 select all .cpp files
from the Crypto++ src folder *except*test/bench files (e.g. exclude
test.cpp, bench.cpp, validat*.cpp, samples).
*Why:* compiling the sources inside your project forces Crypto++ to use
the same compiler, runtime and allocator as your app.
5.
*Set conditional define (optional but recommended if you see crashes)*
Project =E2=86=92 Options =E2=86=92 C++ Compiler =E2=86=92 *Conditional =
defines* =E2=86=92 add:
CRYPTOPP_DISABLE_ASM
This disables assembly/ASM acceleration and can avoid alignment/ASM
compatibility issues with some Builder toolchain versions. Try without i=
t
first =E2=80=94 if crashes persist, enable this define and rebuild.
6.
*Compiler / runtime settings to check*
-
Make sure your project target (Win32/Win64) is the same for all files=
.
-
Keep *C++ exceptions enabled* (default).
-
If you later build Crypto++ as a separate DLL, ensure both DLL and
EXE use the same *Link with dynamic RTL* / *Use runtime
packages* setting.
Mismatched runtime package/Dynamic RTL settings cause problems.
7.
*Build (Clean + Build)*
Do a full clean and rebuild the project so all Crypto++ .cpp files are
compiled by C++ Builder.
8.
*Simple test program*
Paste this small test into your project to validate SecByteBlock usage:
cpp
KopierenBearbeiten
#include <iostream>
#include <cryptopp/secblock.h>
using CryptoPP::SecByteBlock;
int main()
{
SecByteBlock sb(32);
for (size_t i =3D 0; i < sb.size(); ++i)
sb[i] =3D static_cast<unsigned char>(i);
std::cout << "sb[0] =3D " << int(sb[0]) << std::endl;
return 0;
}
Run this under the debugger =E2=80=94 if it runs and prints, SecByteBlock i=
s
working.
9.
*If problems remain*
-
Ensure you didn=E2=80=99t accidentally link any precompiled Crypto++ =
libs
from other compilers.
-
Confirm Win32 vs Win64 mismatch is not present.
-
Enable CRYPTOPP_DISABLE_ASM and rebuild.
-
As a fallback, build Crypto++ as a *C++ Builder DLL* (add sources to
a DLL project) and ensure both DLL and EXE use the same dynamic
RTL/runtime-packages setting.
------------------------------
Short one-liner you can paste
*Do not* link a Crypto++ library built with MSVC/GCC into a C++ Builder app
=E2=80=94 compile the Crypto++ sources with Embarcadero (add the .cpp files=
to your
Builder project) or build Crypto++ with the Builder compiler (or as a
Builder DLL). If you see alignment crashes, try -DCRYPTOPP_DISABLE_ASM and
make sure Win32/Win64 and runtime (dynamic RTL / runtime packages) settings
match.
I hope is helpful have nice day
One Sini <[email protected]> schrieb am Di. 9. Sept. 2025 um 11:07:
> Typical causes (especially with C++ Builder + Crypto++)
>
> *ABI / Memory allocator incompatibility*
>
> -
>
> Crypto++ is primarily tested with Visual C++ and GCC, but less so with
> Embarcadero.
> -
>
> SecByteBlock internally uses AlignedAllocate/AlignedDeallocate, which
> can behave differently depending on compiler conventions for memory
> alignment and operator new/delete.
> -
>
> If you link Crypto++ as a static lib that was built with a different
> runtime (RTL) or allocator settings than your project, you=E2=80=99ll =
often get *access
> violations*.
>
> *Runtime library mismatch*
>
> -
>
> Check that both Crypto++ and your application are built against the *s=
ame
> C++ runtime library* (e.g. =E2=80=9CMulti-threaded DLL=E2=80=9D vs =E2=
=80=9CMulti-threaded
> static=E2=80=9D).
> -
>
> If not: crashes are guaranteed.
>
> *Name mangling / exception handling differences*
>
> -
>
> Embarcadero uses its own C++ ABI. If Crypto++ was compiled with an
> incompatible ABI (for example clang or mingw, then linked into Builder=
), it
> will break.
> -
>
> You must ensure it=E2=80=99s built with the *same compiler and the sam=
e flags*.
>
> *Memory alignment issues*
>
> -
>
> SecByteBlock often requests 16-byte aligned memory (for SSE/AVX). If
> the compiler doesn=E2=80=99t handle that correctly, you=E2=80=99ll see=
access violations.
> -
>
> Some Builder versions have known issues with alignment.
>
> ------------------------------
> Possible solutions
>
> -
>
> *Embed Crypto++ directly into your project*
> Instead of linking as a static library, add the Crypto++ source files
> (*.cpp) directly into your C++ Builder project. That way it shares the=
same
> runtime, allocator, and ABI =E2=86=92 many problems go away.
> -
>
> *Check RTTI and exceptions*
> C++ Builder sometimes uses different exception mechanisms. Make sure
> RTTI and exceptions are consistently enabled.
> -
>
> *Align build settings*
> -
>
> Same runtime library (e.g. Multi-threaded Debug DLL or the static
> variant)
> -
>
> Same compiler options for memory/alignment
> -
>
> *Alternative: build Crypto++ as a DLL*
> If static linking keeps failing, build Crypto++ as a DLL, export only
> the API you need, and use it that way. This reduces ABI coupling.
>
> Have nice day
>
> William Schwank <[email protected]> schrieb am Di. 9. Sept. 2025 um
> 01:53:
>
>> Hello, everyone, I'm a c++ builder user, and tring to use cryptopp with
>> c++ builder.
>>
>> With the lastest version c++ builder, I succ compile and build cryptopp
>> to static lib.
>>
>> However, during using, especially when calling anything invove SecByteBl=
ock,
>> the application will just got exited, with errors like Access violation
>> at address 00E87383 in module xxX.
>>
>> Does any has a clue and succ use this lib with c++ builder? I know this
>> tool has only a very small group of users.
>>
>> --
>> You received this message because you are subscribed to the Google Group=
s
>> "Crypto++ Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send a=
n
>> email to [email protected].
>> To view this discussion visit
>> https://groups.google.com/d/msgid/cryptopp-users/dda6224f-5905-43b4-b93c=
-da3878027471n%40googlegroups.com
>> <https://groups.google.com/d/msgid/cryptopp-users/dda6224f-5905-43b4-b93=
c-da3878027471n%40googlegroups.com?utm_medium=3Demail&utm_source=3Dfooter>
>> .
>>
>
--=20
You received this message because you are subscribed to the Google Groups "=
Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to [email protected].
To view this discussion visit https://groups.google.com/d/msgid/cryptopp-us=
ers/CAJm61-BkJG142Dhiv1pF5cmXyug66qewxzR0S2wE_VP0v6XJMA%40mail.gmail.com.
--000000000000c4b5f4063e5ac98a
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div><p style=3D"color:rgb(0,0,0);font-style:normal;font-weight:400;letter-=
spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-=
spacing:0px;text-decoration:none">way to use Crypto++ with Embarcadero C++ =
Builder and avoid the=C2=A0<code>SecByteBlock</code>=C2=A0access-violation =
problems.</p><h1 style=3D"color:rgb(0,0,0);font-style:normal;letter-spacing=
:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing=
:0px;text-decoration:none">Small step-by-step (C++ Builder + Crypto++)</h1>=
<ol style=3D"color:rgb(0,0,0);font-style:normal;font-weight:400;letter-spac=
ing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spac=
ing:0px;text-decoration:none"><li><p><strong>Get the Crypto++ sources</stro=
ng><br>Download the official Crypto++ source tree (zip / tarball or clone t=
he repo). Don=E2=80=99t use a prebuilt=C2=A0<code>.lib</code>=C2=A0made by =
MSVC/GCC =E2=80=94 that causes ABI/allocator mismatches.</p></li><li><p><st=
rong>Open your C++ Builder project / create one</strong><br>Select the corr=
ect target (Win32 or Win64). Make sure your app target is the platform you =
intend to test.</p></li><li><p><strong>Add Crypto++ include path</strong><b=
r>Project =E2=86=92 Options =E2=86=92 C++ Compiler =E2=86=92=C2=A0<em>Inclu=
de path</em>=C2=A0(Search path) =E2=86=92 add the Crypto++ folder that cont=
ains the headers (so=C2=A0<code>#include <cryptopp/secblock.h></code>=
=C2=A0resolves).</p></li><li><p><strong>Add Crypto++ .cpp files to your pro=
ject</strong><br>Right-click the project =E2=86=92 Add =E2=86=92=C2=A0<em>A=
dd existing files</em>=C2=A0=E2=86=92 select all=C2=A0<code>.cpp</code>=C2=
=A0files from the Crypto++=C2=A0<code>src</code>=C2=A0folder=C2=A0<strong>e=
xcept</strong>test/bench files (e.g. exclude=C2=A0<code>test.cpp</code>,=C2=
=A0<code>bench.cpp</code>,=C2=A0<code>validat*.cpp</code>, samples).<br><em=
>Why:</em>=C2=A0compiling the sources inside your project forces Crypto++ t=
o use the same compiler, runtime and allocator as your app.</p></li><li><p>=
<strong>Set conditional define (optional but recommended if you see crashes=
)</strong><br>Project =E2=86=92 Options =E2=86=92 C++ Compiler =E2=86=92=C2=
=A0<em>Conditional defines</em>=C2=A0=E2=86=92 add:<br><code>CRYPTOPP_DISAB=
LE_ASM</code><br>This disables assembly/ASM acceleration and can avoid alig=
nment/ASM compatibility issues with some Builder toolchain versions. Try wi=
thout it first =E2=80=94 if crashes persist, enable this define and rebuild=
.</p></li><li><p><strong>Compiler / runtime settings to check</strong></p><=
ul><li><p>Make sure your project target (Win32/Win64) is the same for all f=
iles.</p></li><li><p>Keep=C2=A0<strong>C++ exceptions enabled</strong>=C2=
=A0(default).</p></li><li><p>If you later build Crypto++ as a separate DLL,=
ensure both DLL and EXE use the same=C2=A0<em>Link with dynamic RTL</em>=
=C2=A0/=C2=A0<em>Use runtime packages</em>=C2=A0setting. Mismatched runtime=
package/Dynamic RTL settings cause problems.</p></li></ul></li><li><p><str=
ong>Build (Clean + Build)</strong><br>Do a full clean and rebuild the proje=
ct so all Crypto++ .cpp files are compiled by C++ Builder.</p></li><li><p><=
strong>Simple test program</strong><br>Paste this small test into your proj=
ect to validate=C2=A0<code>SecByteBlock</code>=C2=A0usage:</p></li></ol><pr=
e style=3D"color:rgb(0,0,0);font-style:normal;font-weight:400;letter-spacin=
g:normal;text-indent:0px;text-transform:none;word-spacing:0px;text-decorati=
on:none"><div><div>cpp</div><div><div><div><button>Kopieren</button><button=
>Bearbeiten</button></div></div></div><div dir=3D"ltr"><code>#include <i=
ostream>
#include <cryptopp/secblock.h>
using CryptoPP::SecByteBlock;
int main()
{
SecByteBlock sb(32);
for (size_t i =3D 0; i < sb.size(); ++i)
sb[i] =3D static_cast<unsigned char>(i);
std::cout << "sb[0] =3D " << int(sb[0]) << =
std::endl;
return 0;
}
</code></div></div></pre><p style=3D"color:rgb(0,0,0);font-style:normal;fon=
t-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;whit=
e-space:normal;word-spacing:0px;text-decoration:none">Run this under the de=
bugger =E2=80=94 if it runs and prints,=C2=A0<code>SecByteBlock</code>=C2=
=A0is working.</p><ol start=3D"9" style=3D"color:rgb(0,0,0);font-style:norm=
al;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:non=
e;white-space:normal;word-spacing:0px;text-decoration:none"><li><p><strong>=
If problems remain</strong></p><ul><li><p>Ensure you didn=E2=80=99t acciden=
tally link any precompiled Crypto++ libs from other compilers.</p></li><li>=
<p>Confirm Win32 vs Win64 mismatch is not present.</p></li><li><p>Enable=C2=
=A0<code>CRYPTOPP_DISABLE_ASM</code>=C2=A0and rebuild.</p></li><li><p>As a =
fallback, build Crypto++ as a=C2=A0<strong>C++ Builder DLL</strong>=C2=A0(a=
dd sources to a DLL project) and ensure both DLL and EXE use the same dynam=
ic RTL/runtime-packages setting.</p></li></ul></li></ol><hr style=3D"font-s=
tyle:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-tran=
sform:none;white-space:normal;word-spacing:0px;text-decoration:none"><h2 st=
yle=3D"color:rgb(0,0,0);font-style:normal;letter-spacing:normal;text-indent=
:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoratio=
n:none">Short one-liner you can paste</h2><blockquote style=3D"color:rgb(0,=
0,0);font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0p=
x;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:n=
one"><p><strong>Do not</strong>=C2=A0link a Crypto++ library built with MSV=
C/GCC into a C++ Builder app =E2=80=94 compile the Crypto++ sources with Em=
barcadero (add the=C2=A0<code>.cpp</code>=C2=A0files to your Builder projec=
t) or build Crypto++ with the Builder compiler (or as a Builder DLL). If yo=
u see alignment crashes, try=C2=A0<code>-DCRYPTOPP_DISABLE_ASM</code>=C2=A0=
and make sure Win32/Win64 and runtime (dynamic RTL / runtime packages) sett=
ings match.</p></blockquote></div><div dir=3D"auto">I hope is helpful have =
nice day</div><div><br><div class=3D"gmail_quote gmail_quote_container"><di=
v dir=3D"ltr" class=3D"gmail_attr">One Sini <<a href=3D"mailto:onesini@g=
mail.com">[email protected]</a>> schrieb am Di. 9. Sept. 2025 um 11:07:<=
br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;borde=
r-left:1px #ccc solid;padding-left:1ex"><div><h3 style=3D"color:rgb(0,0,0);=
font-style:normal;letter-spacing:normal;text-indent:0px;text-transform:none=
;white-space:normal;word-spacing:0px;text-decoration:none">Typical causes (=
especially with C++ Builder + Crypto++)</h3><p style=3D"color:rgb(0,0,0);fo=
nt-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-=
transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><s=
trong>ABI / Memory allocator incompatibility</strong></p><ul style=3D"color=
:rgb(0,0,0);font-style:normal;font-weight:400;letter-spacing:normal;text-in=
dent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decor=
ation:none"><li><p>Crypto++ is primarily tested with Visual C++ and GCC, bu=
t less so with Embarcadero.</p></li><li><p><code>SecByteBlock</code>=C2=A0i=
nternally uses=C2=A0<code>AlignedAllocate</code>/<code>AlignedDeallocate</c=
ode>, which can behave differently depending on compiler conventions for me=
mory alignment and=C2=A0<code>operator new/delete</code>.</p></li><li><p>If=
you link Crypto++ as a static lib that was built with a different runtime =
(RTL) or allocator settings than your project, you=E2=80=99ll often get=C2=
=A0<strong>access violations</strong>.</p></li></ul><p style=3D"color:rgb(0=
,0,0);font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0=
px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:=
none"><strong>Runtime library mismatch</strong></p><ul style=3D"color:rgb(0=
,0,0);font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0=
px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:=
none"><li><p>Check that both Crypto++ and your application are built agains=
t the=C2=A0<strong>same C++ runtime library</strong>=C2=A0(e.g. =E2=80=9CMu=
lti-threaded DLL=E2=80=9D vs =E2=80=9CMulti-threaded static=E2=80=9D).</p><=
/li><li><p>If not: crashes are guaranteed.</p></li></ul><p style=3D"color:r=
gb(0,0,0);font-style:normal;font-weight:400;letter-spacing:normal;text-inde=
nt:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decorat=
ion:none"><strong>Name mangling / exception handling differences</strong></=
p><ul style=3D"color:rgb(0,0,0);font-style:normal;font-weight:400;letter-sp=
acing:normal;text-indent:0px;text-transform:none;white-space:normal;word-sp=
acing:0px;text-decoration:none"><li><p>Embarcadero uses its own C++ ABI. If=
Crypto++ was compiled with an incompatible ABI (for example clang or mingw=
, then linked into Builder), it will break.</p></li><li><p>You must ensure =
it=E2=80=99s built with the=C2=A0<strong>same compiler and the same flags</=
strong>.</p></li></ul><p style=3D"color:rgb(0,0,0);font-style:normal;font-w=
eight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-s=
pace:normal;word-spacing:0px;text-decoration:none"><strong>Memory alignment=
issues</strong></p><ul style=3D"color:rgb(0,0,0);font-style:normal;font-we=
ight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-sp=
ace:normal;word-spacing:0px;text-decoration:none"><li><p><code>SecByteBlock=
</code>=C2=A0often requests 16-byte aligned memory (for SSE/AVX). If the co=
mpiler doesn=E2=80=99t handle that correctly, you=E2=80=99ll see access vio=
lations.</p></li><li><p>Some Builder versions have known issues with alignm=
ent.</p></li></ul><hr style=3D"font-style:normal;font-weight:400;letter-spa=
cing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spa=
cing:0px;text-decoration:none"><h3 style=3D"color:rgb(0,0,0);font-style:nor=
mal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:n=
ormal;word-spacing:0px;text-decoration:none">Possible solutions</h3><ul sty=
le=3D"color:rgb(0,0,0);font-style:normal;font-weight:400;letter-spacing:nor=
mal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px=
;text-decoration:none"><li><p><strong>Embed Crypto++ directly into your pro=
ject</strong><br>Instead of linking as a static library, add the Crypto++ s=
ource files (*.cpp) directly into your C++ Builder project. That way it sha=
res the same runtime, allocator, and ABI =E2=86=92 many problems go away.</=
p></li><li><p><strong>Check RTTI and exceptions</strong><br>C++ Builder som=
etimes uses different exception mechanisms. Make sure RTTI and exceptions a=
re consistently enabled.</p></li><li><p><strong>Align build settings</stron=
g></p><ul><li><p>Same runtime library (e.g. Multi-threaded Debug DLL or the=
static variant)</p></li><li><p>Same compiler options for memory/alignment<=
/p></li></ul></li><li><p><strong>Alternative: build Crypto++ as a DLL</stro=
ng><br>If static linking keeps failing, build Crypto++ as a DLL, export onl=
y the API you need, and use it that way. This reduces ABI coupling.</p></li=
></ul></div><div dir=3D"auto">Have nice day=C2=A0</div><div><br><div class=
=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">William Schwank <=
<a href=3D"mailto:[email protected]" target=3D"_blank">[email protected]<=
/a>> schrieb am Di. 9. Sept. 2025 um 01:53:<br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">Hello, everyone, I'm a c++ builder user, and tring to use=
cryptopp with c++ builder.<div><br></div><div>With the lastest version c++=
builder, I succ compile and build cryptopp to static lib.</div><div><br></=
div><div>However, during using, especially when calling anything invove=C2=
=A0<span style=3D"background-color:rgba(0,0,0,0);white-space:pre-wrap;color=
:rgb(31,35,40);font-family:"Monaspace Neon",ui-monospace,SFMono-R=
egular,"SF Mono",Menlo,Consolas,"Liberation Mono",monos=
pace;font-size:11.9px">SecByteBlock, </span>the application will just got e=
xited, with errors like=C2=A0<span style=3D"color:rgb(31,35,40);font-family=
:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans"=
;,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI E=
moji"">=C2=A0</span><span style=3D"color:rgb(31,35,40);font-family:-ap=
ple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",He=
lvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji=
"">Access violation at address 00E87383 in module xxX.</span></div><di=
v><span style=3D"color:rgb(31,35,40);font-family:-apple-system,BlinkMacSyst=
emFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-seri=
f,"Apple Color Emoji","Segoe UI Emoji""><br></span></di=
v><div><span style=3D"color:rgb(31,35,40);font-family:-apple-system,BlinkMa=
cSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans=
-serif,"Apple Color Emoji","Segoe UI Emoji"">Does any h=
as a clue and succ use this lib with c++ builder? I know this tool has only=
a very small group of users.</span></div>
<p></p>
-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;Crypto++ Users" group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:[email protected]" targ=
et=3D"_blank">[email protected]</a>.<br>
To view this discussion visit <a href=3D"https://groups.google.com/d/msgid/=
cryptopp-users/dda6224f-5905-43b4-b93c-da3878027471n%40googlegroups.com?utm=
_medium=3Demail&utm_source=3Dfooter" target=3D"_blank">https://groups.g=
oogle.com/d/msgid/cryptopp-users/dda6224f-5905-43b4-b93c-da3878027471n%40go=
oglegroups.com</a>.<br>
</blockquote></div></div>
</blockquote></div></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;Crypto++ Users" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:[email protected]">cryp=
[email protected]</a>.<br />
To view this discussion visit <a href=3D"https://groups.google.com/d/msgid/=
cryptopp-users/CAJm61-BkJG142Dhiv1pF5cmXyug66qewxzR0S2wE_VP0v6XJMA%40mail.g=
mail.com?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.com/=
d/msgid/cryptopp-users/CAJm61-BkJG142Dhiv1pF5cmXyug66qewxzR0S2wE_VP0v6XJMA%=
40mail.gmail.com</a>.<br />
--000000000000c4b5f4063e5ac98a--