<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>petanode (Posts about cryptopp)</title><link>https://petanode.com/</link><description></description><atom:link href="https://petanode.com/categories/cryptopp.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2026 &lt;a href="mailto:tsv.dimitrov@gmail.com"&gt;Tsvetomir Dimitrov&lt;/a&gt; </copyright><lastBuildDate>Tue, 28 Apr 2026 07:09:52 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Random Number Generators in Crypto++</title><link>https://petanode.com/posts/cryptopp/rng/</link><dc:creator>Tsvetomir Dimitrov</dc:creator><description>&lt;div&gt;&lt;p&gt;Random number generators, or RNGs, are a fundamental part of many cryptographic algorithms, so it's
no surprise that Crypto++ provides several RNG implementations. The index of the documentation lists
the following algorithms:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://petanode.com/posts/cryptopp/rng/"&gt;Read more…&lt;/a&gt; (4 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>cryptopp</category><guid>https://petanode.com/posts/cryptopp/rng/</guid><pubDate>Sun, 26 Oct 2025 16:46:24 GMT</pubDate></item><item><title>Hashing in Crypto++</title><link>https://petanode.com/posts/cryptopp/hashing/</link><dc:creator>Tsvetomir Dimitrov</dc:creator><description>&lt;div&gt;&lt;p&gt;This posts explores the hashing algorithms available in Crypto++. We will examine how to use them
independently and how to integrate them into a pipeline. First, let's review the available
implementations. These are listed in the "Hash Functions" section of the documentation index.
Notable examples include Blake2s/2b, Keccak, and SHA3. Some algorithms, such as MD5 and MD4, are
located in the &lt;code&gt;Weak&lt;/code&gt; namespace. As the name implies, these are not secure for production use and
are included only for reference.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://petanode.com/posts/cryptopp/hashing/"&gt;Read more…&lt;/a&gt; (8 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>cryptopp</category><guid>https://petanode.com/posts/cryptopp/hashing/</guid><pubDate>Fri, 02 May 2025 15:21:44 GMT</pubDate></item><item><title>Source and Sink in Crypto++</title><link>https://petanode.com/posts/cryptopp/source-and-sink/</link><dc:creator>Tsvetomir Dimitrov</dc:creator><description>&lt;div&gt;&lt;p&gt;This post builds upon &lt;a href="https://petanode.com/posts/brief-introduction-to-cryptopp/"&gt;A Brief Introduction to
Crypto++&lt;/a&gt;. I suggest to have a quick look at it before
diving into &lt;code&gt;Source&lt;/code&gt; and &lt;code&gt;Sink&lt;/code&gt; classes.&lt;/p&gt;
&lt;p&gt;Sources and sinks are quite similar, so we will review them together. Just a refresher: a source
provides an input for a Crypto++ pipeline, while a sink terminates it by saving the result to an
output. The input and output of a pipeline are usually data containers (e.g., arrays, vectors,
strings) or files.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://petanode.com/posts/cryptopp/source-and-sink/"&gt;Read more…&lt;/a&gt; (4 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>cryptopp</category><guid>https://petanode.com/posts/cryptopp/source-and-sink/</guid><pubDate>Mon, 07 Apr 2025 15:05:26 GMT</pubDate></item><item><title>My new Crypto++ ebook</title><link>https://petanode.com/posts/cryptopp-book/</link><dc:creator>Tsvetomir Dimitrov</dc:creator><description>&lt;div&gt;&lt;p&gt;EDIT (Jun 5, 2025): Update the details about the book.&lt;/p&gt;
&lt;p&gt;My first encounter with Crypto++ was at an old job. I remember struggling to find good material
aimed at novice users. I managed to complete my tasks by reading the official documentation, the
wiki (which is currently offline), and adapting the existing Crypto++ code in our codebase. However,
I missed having a quick, beginner-friendly tutorial that explained the basics of the library and
provided short examples of how to use its various algorithms.&lt;/p&gt;
&lt;p&gt;To partially address this gap, I wrote &lt;a href="https://petanode.com/posts/brief-introduction-to-cryptopp/"&gt;a blog post&lt;/a&gt;
that outlined some Crypto++ usage guidelines and demonstrated them with a code sample. The post
garnered some interest, which inspired me to expand the idea into a book:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://petanode.gumroad.com/l/cryptopp"&gt;&lt;img alt="The book" src="https://petanode.com/cryptopp-book/cover-small.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://petanode.com/posts/cryptopp-book/"&gt;Read more…&lt;/a&gt; (2 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>cryptopp</category><guid>https://petanode.com/posts/cryptopp-book/</guid><pubDate>Mon, 07 Apr 2025 15:04:40 GMT</pubDate></item><item><title>Brief Introduction to Crypto++</title><link>https://petanode.com/posts/brief-introduction-to-cryptopp/</link><dc:creator>Tsvetomir Dimitrov</dc:creator><description>&lt;div&gt;&lt;nav class="contents" id="contents" role="doc-toc"&gt;
&lt;p class="topic-title"&gt;&lt;a class="reference internal" href="https://petanode.com/posts/brief-introduction-to-cryptopp/#top"&gt;Contents&lt;/a&gt;&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://petanode.com/posts/brief-introduction-to-cryptopp/#first-things-first-why-using-a-crypto-library-is-important" id="toc-entry-1"&gt;First things first - why using a crypto library is important&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://petanode.com/posts/brief-introduction-to-cryptopp/#what-is-crypto" id="toc-entry-2"&gt;What is  Crypto++?&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://petanode.com/posts/brief-introduction-to-cryptopp/#how-to-use-crypto-in-your-project" id="toc-entry-3"&gt;How to use Crypto++ in your project&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://petanode.com/posts/brief-introduction-to-cryptopp/#memory-management" id="toc-entry-4"&gt;Memory management&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://petanode.com/posts/brief-introduction-to-cryptopp/#pipelining" id="toc-entry-5"&gt;Pipelining&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://petanode.com/posts/brief-introduction-to-cryptopp/#examples" id="toc-entry-6"&gt;Examples&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://petanode.com/posts/brief-introduction-to-cryptopp/#closing-words" id="toc-entry-7"&gt;Closing words&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;p&gt;At some point in your life as a software engineer you will have to write code involving cryptography (crypto for short). You might need to implement a password authentication system by keeping salted password hashes for your users or add encryption for your custom binary protocol implementation or save some files securely on disk, etc. This is usually harder than it sounds and you will have to use some crypto library to get the job done.&lt;/p&gt;
&lt;p&gt;In this post I want to write a really quick and short introduction to Crypto++, a C++ cryptographic library. My first experience with it led a lot of questions. Reading the documentation and googling answers took me some time so I want to share my experience. Hopefully you will find the information in this post helpful and will save you some time.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://petanode.com/posts/brief-introduction-to-cryptopp/"&gt;Read more…&lt;/a&gt; (7 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>cryptopp</category><guid>https://petanode.com/posts/brief-introduction-to-cryptopp/</guid><pubDate>Sun, 14 Mar 2021 21:06:01 GMT</pubDate></item></channel></rss>