<?xml version="1.0" encoding="iso-8859-1"?>

<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
<title type="text">Botan News</title>
<subtitle type="html"><![CDATA[
News and announcements about Botan
]]></subtitle>
<id>http://botan.randombit.net/news/index.atom</id>
<link rel="alternate" type="text/html" href="http://botan.randombit.net/news" />
<link rel="self" type="application/atom+xml" href="http://botan.randombit.net/news/index.atom" />


<author>
<name>Jack Lloyd</name>
<uri>http://botan.randombit.net/news/index.atom</uri>
<email>lloyd@randombit.net</email>
</author>
<rights>Copyright Jack Lloyd CC-By-ND 3.0</rights>
<generator uri="http://pyblosxom.sourceforge.net/" version="1.4.3 01/10/2008">
PyBlosxom http://pyblosxom.sourceforge.net/ 1.4.3 01/10/2008
</generator>

<updated>2010-03-09T15:58:00Z</updated>
<!-- icon?  logo?  -->

<entry>
<title type="html">1.9.4 adds SSL/TLS, GOST 34.10, XSalsa20, fault countermeasures, SIMD optimizations</title>
<category term="/releases" />
<id>http://botan.randombit.net/news/2010/03/09/1_9_4</id>
<updated>2010-03-09T15:58:00Z</updated>
<published>2010-03-09T15:58:00Z</published>
<link rel="alternate" type="text/html" href="http://botan.randombit.net/news/releases/1_9_4.html" />
<content type="html">
&lt;p&gt;&lt;a href = &quot;/download.html&quot;&gt;Botan 1.9.4&lt;/a&gt; has been released with a
wide variety of changes.&lt;/p&gt;

&lt;p&gt;Major new features include the merging of the previously standalone
SSLv3/TLSv1.0 implementation Ajisai into the source, and the addition
of the GOST 34.10-2001 ECC signature scheme and the XSalsa20 stream
cipher. New SIMD implementations for the IDEA and Noekeon block
ciphers dramatically improve performance on SSE2 processors, and the
XTS and CBC block cipher modes now join CTR and ECB in making use of
SIMD block cipher implementations.&lt;/p&gt;

&lt;p&gt;The ECC code previously relied on TR1&apos;s shared_ptr, which made
using it difficult on some platforms, particularly Windows. This code
has been modified so that shared_ptr is no longer used, and ECDSA/ECDH
are now built by default on Windows platforms.&lt;/p&gt;

&lt;p&gt;The PK_Signer class now verifies all signatures before releasing
them to the caller; this should help prevent a wide variety of fault
attacks, though it does have the downside of hurting signature
performance, particularly for DSA/ECDSA. Finding the right balance of
performance and safety in these operations is an ongoing project.&lt;/p&gt;

&lt;p&gt;A new configuration option, &lt;tt&gt;--gen-amalgamation&lt;/tt&gt;, creates a
pair of files (&lt;tt&gt;botan_all.cpp&lt;/tt&gt; and &lt;tt&gt;botan_all.h&lt;/tt&gt;) which
contain the contents of the library as it would have normally been
compiled based on the set configuration. This should ease the use of
botan in projects which do not wish to depend on an external
library.&lt;/p&gt;

&lt;p&gt;Another build-related change is that many headers intended only for
library-internal use are no longer installed.&lt;/p&gt;

&lt;p&gt;Smaller changes include the addition of a password hashing scheme
for user authentication needs, a SQLite encryption codec (contributed
by Olivier de Gaalon), and a block cipher cascade construction.&lt;/p&gt;
</content>
</entry>

<entry>
<title type="html">1.9.3: Adding AES-NI and format preserving encryption</title>
<category term="/releases" />
<id>http://botan.randombit.net/news/2009/11/19/1_9_3</id>
<updated>2009-11-20T03:59:00Z</updated>
<published>2009-11-20T03:59:00Z</published>
<link rel="alternate" type="text/html" href="http://botan.randombit.net/news/releases/1_9_3.html" />
<content type="html">
Botan 1.9.3 was released this evening.

&lt;p&gt;A new engine, &lt;code&gt;aes_isa_eng&lt;/code&gt;, adds hooks for CPU-specific
implementations of AES. Currently supported is an implementation for
Intel&apos;s AES-NI; while no currently shipping CPU has support for &lt;a
href = &quot;http://en.wikipedia.org/wiki/AES_instruction_set&quot;&gt;AES-NI&lt;/a&gt;
yet, the code was tested using Intel&apos;s &lt;a href =
&quot;http://software.intel.com/en-us/articles/intel-software-development-emulator/&quot;&gt;SDE&lt;/a&gt;.
The engine may be extended in the future to support VIA&apos;s PadLock
instructions or other similar extensions.&lt;/p&gt;

&lt;p&gt;An implementation of format-preserving encryption (FPE) was
added. FPE allows for encrypting data in such a way that format
constraints are retained. An example which uses this to encrypt credit
card numbers with valid &lt;a href =
&quot;http://en.wikipedia.org/wiki/Luhn_algorithm&quot;&gt;Luhn checksums&lt;/a&gt; to
other credit card numbers with valid checksums is
&lt;a href = &quot;/examples/fpe.cpp&quot;&gt;available&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;An interface change in how X.509 certificates and PKCS #10
certificate requests are created now allows for using arbitrary hash
functions; previously the use of SHA-1 was hardcoded, which is
particularly undesirable given the currently known attacks on that
algorithm.&lt;/p&gt;

&lt;p&gt;The implementations of MARS, Skipjack, and AES were optimized to
varying degrees.&lt;/p&gt;

&lt;p&gt;The previous release added support for AltiVec but it was not
enabled unless a macro was set by hand. Now it is set by default if
the build is configured for a G4, G5, POWER6 or POWER7 processor (all
of which include AltiVec in all known configurations). A similar
mechanism sets macros indicating support for SSE2 and SSSE3 (though
SSSE3 is not currently used in the codebase), and for AES-NI.  Support
for a particular ISA extension can also be enabled at build time by
using the new &lt;code&gt;--with-isa-extension&lt;/code&gt; option to
&lt;code&gt;configure.py&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The default build for Windows is now a DLL, mostly due to the much
smaller size of the resulting binary. This is particularly important
because this release also adds support for packaging botan using the
&lt;a href = &quot;http://www.jrsoftware.org/isinfo.php&quot;&gt;InnoSetup&lt;/a&gt; Windows
installer program. This should &lt;em&gt;definitely&lt;/em&gt; be considered
experimental, but seems to work. You can download an installer for
1.9.3 &lt;a href = &quot;/files/win32/botan-1.9.3.exe&quot;&gt;right now&lt;/a&gt;. Comments
on the quality of the Windows installer or ways it could be improved
would be heartily welcomed.&lt;/p&gt;
</content>
</entry>

<entry>
<title type="html">Botan 1.8.8 and 1.9.2</title>
<category term="/releases" />
<id>http://botan.randombit.net/news/2009/11/03/1_8_8_and_1_9_2</id>
<updated>2009-11-03T19:14:00Z</updated>
<published>2009-11-03T19:14:00Z</published>
<link rel="alternate" type="text/html" href="http://botan.randombit.net/news/releases/1_8_8_and_1_9_2.html" />
<content type="html">
&lt;p&gt;Botan 1.8.8 and 1.9.2 were released this afternoon.&lt;/p&gt;

&lt;p&gt;1.8.8 has only minor changes - the Skein-512 implementation was
updated to the tweaked 1.2 specification, and a bug that prevented the
use of the x86 bswap instruction was fixed.&lt;/p&gt;

&lt;p&gt;1.9.2 extends the SIMD work done so far in the 1.9 series with a
new type &lt;code&gt;SIMD_32&lt;/code&gt; which is a lightweight wrapper around SSE2
and AltiVec intrinsics (as well as a purely scalar version which will
work anywhere). The idea is to provide a convenient syntax for SIMD
operations that will compile down to code as efficient as normal
intrinsics code.&lt;/p&gt;

&lt;p&gt;The existing SSE2 Serpent code was modified to use this new type
with great success on the SSE2 side. However some oddities remain in
the AltiVec; for some reason GCC refuses to inline a particular
constructor, which causes a great deal of overhead. At the moment, it
actually appears to be faster to use the scalar implementation instead
of AltiVec or the regular C++ on both a G4 and G5 running Linux! While
a great testament to the superscalar power of these processors, it
hints that AltiVec unfettered by strange inlining problems would be
even faster.&lt;/p&gt;

&lt;p&gt;Partially unrolling the message expansion loop in SHA-1 and SHA-2
produced small but measurable speedups (around 5 to 10% on a
Core2).&lt;/p&gt;
</content>
</entry>

<entry>
<title type="html">Comments Enabled</title>
<category term="/announcements" />
<id>http://botan.randombit.net/news/2009/10/29/comments_enabled</id>
<updated>2009-10-29T13:59:00Z</updated>
<published>2009-10-29T13:59:00Z</published>
<link rel="alternate" type="text/html" href="http://botan.randombit.net/news/announcements/comments_enabled.html" />
<content type="html">
&lt;p&gt;The site has joined the 20th century and it is now possible to
leave comments on news items. Spam filtering on comments is provided
by &lt;a href = &quot;http://akismet.com/&quot;&gt;Akismet&lt;/a&gt;; I&apos;ve been using
Akismet for comments for a while on &lt;a href =
&quot;http://www.randombit.net/bitbashing/&quot;&gt;bitbashing&lt;/a&gt;, so far so
good.&lt;/p&gt;
</content>
</entry>

<entry>
<title type="html">1.9.1: Blue Midnight Wish, Skein 1.2, improved Python wrappers, and more</title>
<category term="/releases" />
<id>http://botan.randombit.net/news/2009/10/23/1_9_1</id>
<updated>2009-10-23T14:25:00Z</updated>
<published>2009-10-23T14:25:00Z</published>
<link rel="alternate" type="text/html" href="http://botan.randombit.net/news/releases/1_9_1.html" />
<content type="html">
&lt;p&gt;Botan 1.9.1 was &lt;a href = &quot;/download.html&quot;&gt;released&lt;/a&gt; today with
a slew of new features.&lt;/p&gt;

&lt;p&gt;An implementation of the SHA-3 candidate hash function &lt;a href =
&quot;http://ehash.iaik.tugraz.at/wiki/Blue_Midnight_Wish&quot;&gt;Blue Midnight
Wish&lt;/a&gt; has been added. Blue Midnight Wish is one of the fastest
functions of the round 2 candidates, processing well over 300 MB per
second on a Core2 processor; it runs about as fast as OpenSSL&apos;s
assembly implementation of SHA-1. The version in 1.9.1 is the
&apos;tweaked&apos; round 2 variant; as part of the NIST competition, at the
start of the second round all designers had a chance to make
modifications to their algorithms before the next phase of analysis
begins. Only the 512-bit variant of Blue Midnight Wish is included,
because it is much faster than the 256-bit version on modern
processors (and, presumably, is more secure).&lt;/p&gt;

&lt;p&gt;Another NIST round 2 tweak is for the implementation of Skein-512 -
the designers of Skein used a new search technique and found a new set
of rotation constants leading to much better diffusion in the algorithm.
These new rotation constants are now being used.&lt;/p&gt;

&lt;p&gt;The wrappers for other languages, especially Python, are greatly
improved. Documentation is currently sparse, but to build the
wrappers, use&lt;/p&gt;

&lt;pre&gt;
  $ ./configure.py --use-boost-python [other configure.py options]
  $ make check
     # normal library build
  $ make -f Makefile.python
     # builds _botan.so in build/botan-python
  $ make -f Makefile.python install
     # installs botan module into python site-packages
&lt;/pre&gt;

&lt;p&gt;&lt;a href = &quot;http://www.boost.org/doc/libs/1_40_0/libs/python/doc/&quot;&gt;
Boost.Python&lt;/a&gt; is required to build the Python wrappers. Some
examples of use can be found in &lt;code&gt;doc/python&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;An implementation of &lt;a href =
&quot;http://en.wikipedia.org/wiki/Secret_sharing&quot;&gt;threshold secret
sharing&lt;/a&gt; has been added, going off the recent internet draft
draft-mcgrew-tss-02.txt (&quot;Threshold Secret Sharing&quot;, David A. McGrew,
Praveen Patnala, Alfred Hoenes).&lt;/p&gt;

&lt;p&gt;Runtime CPU detection is now used on x86/x86-64 processors;
currently it is only used to check for the availability of SSE2 but
other uses may be added in the future (for instance, checking for the
existence of Intel&apos;s forthcoming AES-NI instructions). Additionally,
use of SSE2 implementations is now enabled under Visual C++ as well as
GNU C++ and Intel C++.&lt;/p&gt;

&lt;p&gt;XTEA was optimized, and is over twice as fast on an Intel Core2 or
AMD Opteron.&lt;/p&gt;
</content>
</entry>
</feed>
