-r--r--r-- 6390 libmceliece-20230612/doc/html/download.html raw
<html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <style type="text/css"> html{overflow-y:scroll} body{font-family:sans-serif} p,ul,ol,blockquote,pre{font-size:1.0em;line-height:1.6em} li p{font-size:1.0em} blockquote p{font-size:1.0em} tt{font-size:1.3em} code{font-size:1.3em} h1{font-size:1.5em} h2{font-size:1.3em} h3{font-size:1.0em} h1 a{text-decoration:none} table{border-collapse:collapse} th,td{border:1px solid black} table a{text-decoration:none} table tr{font-size:1.0em;line-height:1.6em} .links a:hover{text-decoration:underline} .links a:active{text-decoration:underline} .links img{width:200px;padding-left:1em} .links td{border:0px;padding-top:0.5em;padding-bottom:0.5em} .headline{padding:0;font-weight:bold;font-size:1.5em;vertical-align:top;padding-bottom:0.5em;color:#196069} .navt{display:inline-block;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box; min-width:14%;margin:0;padding:0;padding-left:0.5em;padding-right:0.5em;vertical-align:center; font-weight:bold;font-size:1.1em;text-align:center;border:1px solid black} .here{border-bottom:0px;background-color:#ffffff} .away{background-color:#196069;} .away a{text-decoration:none;display:block;color:#ffffff} .away a:hover,.away a:active{text-decoration:underline} .main{margin:0;padding-top:0em;padding-bottom:1%;clear:both} </style> <title> libmceliece: Download</title> </head> <body> <div class=headline> libmceliece</div> <div class=nav> <div class="navt away"><a href=index.html>Intro</a> </div><div class="navt here">Download </div><div class="navt away"><a href=install.html>Install</a> </div><div class="navt away"><a href=api.html>API</a> </div><div class="navt away"><a href=cli.html>CLI</a> </div><div class="navt away"><a href=security.html>Security</a> </div><div class="navt away"><a href=verification.html>Verification</a> </div><div class="navt away"><a href=internals.html>Internals</a> </div><div class="navt away"><a href=people.html>People</a> </div><div class="navt away"><a href=license.html>License</a> </div></div> <div class=main> <p>To download and unpack the latest version of libmceliece:</p> <pre><code> wget -m https://lib.mceliece.org/libmceliece-latest-version.txt version=$(cat lib.mceliece.org/libmceliece-latest-version.txt) wget -m https://lib.mceliece.org/libmceliece-$version.tar.gz tar -xzf lib.mceliece.org/libmceliece-$version.tar.gz cd libmceliece-$version </code></pre> <p>Then <a href="install.html">install</a>.</p> <h3 id="changelog">Archives and changelog (reverse chronological)</h3> <p><a href="libmceliece-20230612.tar.gz"><code>libmceliece-20230612.tar.gz</code></a> <a href="libmceliece-20230612.html">browse</a></p> <p>In <code>*/avx/pk_gen.c</code>, use merge exchange in <code>sort_rows()</code> and slightly reduce the number of lines of <code>minmax_rows()</code>.</p> <p>Rename <code>encrypt()</code> as <code>pke_encrypt()</code>, to more portably avoid name collision with POSIX <code>encrypt()</code>.</p> <p>Add more 0-initialization in the <code>to_bitslicing</code> functions. This doesn't help a full correctness proof, but it does make it easier to see that undefined data is not used. Thanks to Thom Wiggers for the suggestion.</p> <p>For MacOS portability, move <code>#include "encrypt.h"</code> after other inclusions, and change <code>.hidden</code> to <code>.private_extern</code> (via a new <code>ASM_HIDDEN</code>) if <code>__APPLE__</code> is defined. Thanks to Thom Wiggers for the suggestions.</p> <p>Specify 32-byte alignment for some arrays passed to <code>.S</code> files in the <code>avx</code> implementations. The <code>.S</code> files use <code>movdqu</code> instead of <code>movdqa</code>, so they don't need alignment, but the alignment could avoid warnings from a compiler that checks for potentially inadequate alignment. Thanks to Thom Wiggers for the suggestion.</p> <p>Remove an unused pointer increment at the end of <code>benes.c</code>. Thanks to Thom Wiggers for the suggestion.</p> <p>Add various <code>linker</code> lines in <code>.c</code> files and <code>.S</code> files; split <code>operations.c</code> into <code>kem_{keypair,enc,dec}.c</code> and <code>wrap_{keypair,enc,dec}.c</code>; and split big constant arrays from <code>fft.c</code>, <code>fft_tr.c</code> into separate <code>shared-*.c</code> files. The <code>linker</code> lines trigger an infrastructure mechanism to unify compiled code across implementations, reducing <code>.so</code> size; the splits improve the effectiveness of this mechanism, and reduce the amount of code linked into programs that use only one or two of <code>{keypair,enc,dec}</code>. Further changes to the infrastructure may remove the need for <code>wrap*.c</code>.</p> <p>Add <code>const</code> to prototypes for input pointers for some functions. More can be done here.</p> <p>Change prototypes from <code>*</code> and <code>[]</code> to, e.g., <code>[GFBITS]</code> when necessary to eliminate compiler warnings.</p> <p>Move <code>gf_mul2</code> to <code>crypto_kem/6688128/avx/gf.h</code> from <code>gf.c</code>.</p> <p>Consistently define <code>nBlocksI</code> as a macro rather than a const. This is a step towards portability to compilers that fail to support C99.</p> <p>Extend information in <code>architectures</code> files. This supports libmceliece's run-time selection of implementations.</p> <p>Switch from <code>CRYPTO_NAMESPACE</code> to <code>CRYPTO_SHARED_NAMESPACE</code> for symbols defined in <code>.S</code> files.</p> <p>Rename <code>crypto_hash.h</code> as <code>hash.h</code>, and rewrite <code>hash.h</code> as a wrapper around <code>crypto_xof_shake256()</code>.</p> <p>Switch <code>keypair</code> return value to <code>void</code>.</p> <p>Remove <code>namespacing</code> files, <code>goal-*</code> files, and <code>api.h</code>.</p> <p>Rename <code>kem/mceliece*</code> as <code>kem/*</code>.</p> <p>Starting point: <code>vec</code> and <code>avx</code> implementations from official round-4 software release (in <code>supercop-20221025</code>), plus <code>crypto_sort/int32</code> and <code>crypto_xof/shake256</code>, plus infrastructure based on lib25519 infrastructure.</p><hr><font size=1><b>Version:</b> This is version 2023.06.07 of the "Download" web page. </font> </div> </body> </html>