<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/x86/crypto, branch linux-4.11.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.11.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.11.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2017-07-21T05:00:14Z</updated>
<entry>
<title>crypto: sha1-ssse3 - Disable avx2</title>
<updated>2017-07-21T05:00:14Z</updated>
<author>
<name>Herbert Xu</name>
</author>
<published>2017-07-04T04:21:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=96a5ede157dc0f27e922abd5874f8d9095b6f811'/>
<id>urn:sha1:96a5ede157dc0f27e922abd5874f8d9095b6f811</id>
<content type='text'>
commit b82ce24426a4071da9529d726057e4e642948667 upstream.

It has been reported that sha1-avx2 can cause page faults by reading
beyond the end of the input.  This patch disables it until it can be
fixed.

Fixes: 7c1da8d0d046 ("crypto: sha - SHA1 transform x86_64 AVX2")
Reported-by: Jan Stancek &lt;jstancek@redhat.com&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>crypto: sha512-mb - Protect sha512 mb ctx mgr access</title>
<updated>2017-02-11T09:50:41Z</updated>
<author>
<name>Tim Chen</name>
</author>
<published>2017-02-01T18:45:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c459bd7beda0295ea67db0ce2004a49addb2f765'/>
<id>urn:sha1:c459bd7beda0295ea67db0ce2004a49addb2f765</id>
<content type='text'>
The flusher and regular multi-buffer computation via mcryptd may race with another.
Add here a lock and turn off interrupt to to access multi-buffer
computation state cstate-&gt;mgr before a round of computation. This should
prevent the flusher code jumping in.

Signed-off-by: Tim Chen &lt;tim.c.chen@linux.intel.com&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6</title>
<updated>2017-02-03T10:14:10Z</updated>
<author>
<name>Herbert Xu</name>
</author>
<published>2017-02-03T10:14:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=34cb58213948a0c26a228da903a3b37c2505843c'/>
<id>urn:sha1:34cb58213948a0c26a228da903a3b37c2505843c</id>
<content type='text'>
Merge the crypto tree to pick up arm64 output IV patch.
</content>
</entry>
<entry>
<title>crypto: aesni - Fix failure when pcbc module is absent</title>
<updated>2017-02-03T09:45:48Z</updated>
<author>
<name>Herbert Xu</name>
</author>
<published>2017-02-01T14:17:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c26819900036f5b91608051a0fc7c76f6b4ffc7b'/>
<id>urn:sha1:c26819900036f5b91608051a0fc7c76f6b4ffc7b</id>
<content type='text'>
When aesni is built as a module together with pcbc, the pcbc module
must be present for aesni to load.  However, the pcbc module may not
be present for reasons such as its absence on initramfs.  This patch
allows the aesni to function even if the pcbc module is enabled but
not present.

Reported-by: Arkadiusz Miśkiewicz &lt;arekm@maven.pl&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
</content>
</entry>
<entry>
<title>crypto: x86 - make constants readonly, allow linker to merge them</title>
<updated>2017-01-23T14:50:29Z</updated>
<author>
<name>Denys Vlasenko</name>
</author>
<published>2017-01-19T21:33:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e183914af00e15eb41ae666d44e323bfa154be13'/>
<id>urn:sha1:e183914af00e15eb41ae666d44e323bfa154be13</id>
<content type='text'>
A lot of asm-optimized routines in arch/x86/crypto/ keep its
constants in .data. This is wrong, they should be on .rodata.

Mnay of these constants are the same in different modules.
For example, 128-bit shuffle mask 0x000102030405060708090A0B0C0D0E0F
exists in at least half a dozen places.

There is a way to let linker merge them and use just one copy.
The rules are as follows: mergeable objects of different sizes
should not share sections. You can't put them all in one .rodata
section, they will lose "mergeability".

GCC puts its mergeable constants in ".rodata.cstSIZE" sections,
or ".rodata.cstSIZE.&lt;object_name&gt;" if -fdata-sections is used.
This patch does the same:

	.section .rodata.cst16.SHUF_MASK, "aM", @progbits, 16

It is important that all data in such section consists of
16-byte elements, not larger ones, and there are no implicit
use of one element from another.

When this is not the case, use non-mergeable section:

	.section .rodata[.VAR_NAME], "a", @progbits

This reduces .data by ~15 kbytes:

    text    data     bss     dec      hex filename
11097415 2705840 2630712 16433967  fac32f vmlinux-prev.o
11112095 2690672 2630712 16433479  fac147 vmlinux.o

Merged objects are visible in System.map:

ffffffff81a28810 r POLY
ffffffff81a28810 r POLY
ffffffff81a28820 r TWOONE
ffffffff81a28820 r TWOONE
ffffffff81a28830 r PSHUFFLE_BYTE_FLIP_MASK &lt;- merged regardless of
ffffffff81a28830 r SHUF_MASK   &lt;------------- the name difference
ffffffff81a28830 r SHUF_MASK
ffffffff81a28830 r SHUF_MASK
..
ffffffff81a28d00 r K512 &lt;- merged three identical 640-byte tables
ffffffff81a28d00 r K512
ffffffff81a28d00 r K512

Use of object names in section name suffixes is not strictly necessary,
but might help if someday link stage will use garbage collection
to eliminate unused sections (ld --gc-sections).

Signed-off-by: Denys Vlasenko &lt;dvlasenk@redhat.com&gt;
CC: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
CC: Josh Poimboeuf &lt;jpoimboe@redhat.com&gt;
CC: Xiaodong Liu &lt;xiaodong.liu@intel.com&gt;
CC: Megha Dey &lt;megha.dey@intel.com&gt;
CC: linux-crypto@vger.kernel.org
CC: x86@kernel.org
CC: linux-kernel@vger.kernel.org
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
</content>
</entry>
<entry>
<title>crypto: x86/crc32c - fix %progbits -&gt; @progbits</title>
<updated>2017-01-23T14:50:26Z</updated>
<author>
<name>Denys Vlasenko</name>
</author>
<published>2017-01-19T21:28:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=587d531b8f67ebe62f8326849a7a685a03cbc904'/>
<id>urn:sha1:587d531b8f67ebe62f8326849a7a685a03cbc904</id>
<content type='text'>
%progbits form is used on ARM (where @ is a comment char).

x86 consistently uses @progbits everywhere else.

Signed-off-by: Denys Vlasenko &lt;dvlasenk@redhat.com&gt;
CC: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
CC: Josh Poimboeuf &lt;jpoimboe@redhat.com&gt;
CC: Xiaodong Liu &lt;xiaodong.liu@intel.com&gt;
CC: Megha Dey &lt;megha.dey@intel.com&gt;
CC: George Spelvin &lt;linux@horizon.com&gt;
CC: linux-crypto@vger.kernel.org
CC: x86@kernel.org
CC: linux-kernel@vger.kernel.org
Reviewed-by: Josh Poimboeuf &lt;jpoimboe@redhat.com&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
</content>
</entry>
<entry>
<title>crypto: x86/chacha20 - Manually align stack buffer</title>
<updated>2017-01-12T16:26:46Z</updated>
<author>
<name>Herbert Xu</name>
</author>
<published>2017-01-11T12:28:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b8fbe71f7535d4dfeed0bb8d924107dc58d502e2'/>
<id>urn:sha1:b8fbe71f7535d4dfeed0bb8d924107dc58d502e2</id>
<content type='text'>
The kernel on x86-64 cannot use gcc attribute align to align to
a 16-byte boundary.  This patch reverts to the old way of aligning
it by hand.

Fixes: 9ae433bc79f9 ("crypto: chacha20 - convert generic and...")
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Reviewed-by: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;
</content>
</entry>
<entry>
<title>crypto: aesni - Fix failure when built-in with modular pcbc</title>
<updated>2016-12-30T10:20:45Z</updated>
<author>
<name>Herbert Xu</name>
</author>
<published>2016-12-29T09:44:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=07825f0acd85dd8b7481d5ef0eb024b05364d892'/>
<id>urn:sha1:07825f0acd85dd8b7481d5ef0eb024b05364d892</id>
<content type='text'>
If aesni is built-in but pcbc is built as a module, then aesni
will fail completely because when it tries to register the pcbc
variant of aes the pcbc template is not available.

This patch fixes this by modifying the pcbc presence test so that
if aesni is built-in then pcbc must also be built-in for it to be
used by aesni.

Fixes: 85671860caac ("crypto: aesni - Convert to skcipher")
Reported-by: Stephan Müller &lt;smueller@chronox.de&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
</content>
</entry>
<entry>
<title>crypto: aesni-intel - RFC4106 can zero copy when !PageHighMem</title>
<updated>2016-12-27T09:48:48Z</updated>
<author>
<name>Ilya Lesokhin</name>
</author>
<published>2016-12-13T14:32:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=50fb57042402c819d247ac4231b80b0da86e2fd7'/>
<id>urn:sha1:50fb57042402c819d247ac4231b80b0da86e2fd7</id>
<content type='text'>
In the common case of !PageHighMem we can do zero copy crypto
even if sg crosses a pages boundary.

Signed-off-by: Ilya Lesokhin &lt;ilyal@mellanox.com&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
</content>
</entry>
<entry>
<title>crypto: chacha20 - convert generic and x86 versions to skcipher</title>
<updated>2016-12-27T09:47:31Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2016-12-09T14:33:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9ae433bc79f97bae221d53bb1a8e21415ea58625'/>
<id>urn:sha1:9ae433bc79f97bae221d53bb1a8e21415ea58625</id>
<content type='text'>
This converts the ChaCha20 code from a blkcipher to a skcipher, which
is now the preferred way to implement symmetric block and stream ciphers.

This ports the generic and x86 versions at the same time because the
latter reuses routines of the former.

Note that the skcipher_walk() API guarantees that all presented blocks
except the final one are a multiple of the chunk size, so we can simplify
the encrypt() routine somewhat.

Signed-off-by: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
</content>
</entry>
</feed>
