06 Dec, 2007
1 commit
-
Signed-off-by: Al Viro
Signed-off-by: Linus Torvalds
23 Nov, 2007
2 commits
-
As it is crypto_remove_spawn may try to unregister an instance which is
yet to be registered. This patch fixes this by checking whether the
instance has been registered before attempting to remove it.It also removes a bogus cra_destroy check in crypto_register_instance as
1) it's outside the mutex;
2) we have a check in __crypto_register_alg already.Signed-off-by: Herbert Xu
-
It seems that newer versions of gcc have regressed in their abilities to
analyse initialisations. This patch moves the initialisations up to avoid
the warnings.Signed-off-by: Herbert Xu
02 Nov, 2007
1 commit
-
Not architecture specific code should not #include .
This patch therefore either replaces them with
#include or simply removes them if they were
unused.Signed-off-by: Adrian Bunk
Signed-off-by: Jens Axboe
27 Oct, 2007
1 commit
-
This patch moves the sg_init_table out of the timing loops for hash
algorithms so that it doesn't impact on the speed test results.Signed-off-by: Herbert Xu
Signed-off-by: David S. Miller
26 Oct, 2007
3 commits
-
Use sg_init_one() and sg_init_table() as needed.
Signed-off-by: David S. Miller
-
hmac_setkey(), hmac_init(), and hmac_final() have
a singular on-stack scatterlist. Initialit is
using sg_init_one() instead of using sg_set_buf().Signed-off-by: David S. Miller
-
Crypto now uses SG helper functions. Fix hmac_digest to use those
functions correctly and fix the oops associated with it.Signed-off-by: Vlad Yasevich
Signed-off-by: David S. Miller
24 Oct, 2007
1 commit
-
Most drivers need to set length and offset as well, so may as well fold
those three lines into one.Add sg_assign_page() for those two locations that only needed to set
the page, where the offset/length is set outside of the function context.Signed-off-by: Jens Axboe
23 Oct, 2007
1 commit
-
Signed-off-by: Jens Axboe
20 Oct, 2007
1 commit
-
Convert the subdirectory "crypto" to UTF-8. The files changed are
and .Signed-off-by: John Anthony Kazos Jr.
Signed-off-by: Adrian Bunk
16 Oct, 2007
1 commit
-
It's a subsystem function, prefix it as such.
Acked-by: Herbert Xu
Signed-off-by: Jens Axboe
11 Oct, 2007
22 commits
-
There are currently several SHA implementations that all define their own
initialization vectors and size values. Since this values are idential
move them to a header file under include/crypto.Signed-off-by: Jan Glauber
Signed-off-by: Herbert Xu -
Loading the crypto algorithm by the alias instead of by module directly
has the advantage that all possible implementations of this algorithm
are loaded automatically and the crypto API can choose the best one
depending on its priority.Additionally it ensures that the generic implementation as well as the
HW driver (if available) is loaded in case the HW driver needs the
generic version as fallback in corner cases.Also remove the probe for sha1 in padlock's init code.
Quote from Herbert:
The probe is actually pointless since we can always probe when
the algorithm is actually used which does not lead to dead-locks
like this.Signed-off-by: Sebastian Siewior
Signed-off-by: Herbert Xu -
Loading the crypto algorithm by the alias instead of by module directly
has the advantage that all possible implementations of this algorithm
are loaded automatically and the crypto API can choose the best one
depending on its priority.Additionally it ensures that the generic implementation as well as the
HW driver (if available) is loaded in case the HW driver needs the
generic version as fallback in corner cases.Signed-off-by: Sebastian Siewior
Signed-off-by: Herbert Xu -
Loading the crypto algorithm by the alias instead of by module directly
has the advantage that all possible implementations of this algorithm
are loaded automatically and the crypto API can choose the best one
depending on its priority.Signed-off-by: Sebastian Siewior
Signed-off-by: Herbert Xu -
This patch adds the helper blkcipher_walk_virt_block which is similar to
blkcipher_walk_virt but uses a supplied block size instead of the block
size of the block cipher. This is useful for CTR where the block size is
1 but we still want to walk by the block size of the underlying cipher.Signed-off-by: Herbert Xu
-
Now that the block size is no longer a multiple of the alignment, we need to
increase the kmalloc amount in blkcipher_next_slow to use the aligned block
size.Signed-off-by: Herbert Xu
-
This patch adds a comment to explain why we compare the cra_driver_name of
the algorithm being registered against the cra_name of a larval as opposed
to the cra_driver_name of the larval.In fact larvals have only one name, cra_name which is the name that was
requested by the user. The test here is simply trying to find out whether
the algorithm being registered can or can not satisfy the larval.Signed-off-by: Herbert Xu
-
Previously we assumed for convenience that the block size is a multiple of
the algorithm's required alignment. With the pending addition of CTR this
will no longer be the case as the block size will be 1 due to it being a
stream cipher. However, the alignment requirement will be that of the
underlying implementation which will most likely be greater than 1.Signed-off-by: Herbert Xu
-
We do not allow spaces in algorithm names or parameters. Thanks to Joy Latten
for pointing this out.Signed-off-by: Herbert Xu
-
As Joy Latten points out, inner algorithm parameters will miss the closing
bracket which will also cause the outer algorithm to terminate prematurely.This patch fixes that also kills the WARN_ON if the number of parameters
exceed the maximum as that is a user error.Signed-off-by: Herbert Xu
-
XTS currently considered to be the successor of the LRW mode by the IEEE1619
workgroup. LRW was discarded, because it was not secure if the encyption key
itself is encrypted with LRW.XTS does not have this problem. The implementation is pretty straightforward,
a new function was added to gf128mul to handle GF(128) elements in ble format.
Four testvectors from the specification
http://grouper.ieee.org/groups/1619/email/pdf00086.pdf
were added, and they verify on my system.Signed-off-by: Rik Snel
Signed-off-by: Herbert Xu -
Use max in blkcipher_get_spot() instead of open coding it.
Signed-off-by: Ingo Oeser
Signed-off-by: Herbert Xu -
When scatterwalk is built as a module digest.c was broken because it
requires the crypto_km_types structure which is in scatterwalk. This
patch removes the crypto_km_types structure by encoding the logic into
crypto_kmap_type directly.In fact, this even saves a few bytes of code (not to mention the data
structure itself) on i386 which is about the only place where it's
needed.Signed-off-by: Herbert Xu
-
This patch adds the authenc algorithm which constructs an AEAD algorithm
from an asynchronous block cipher and a hash. The construction is done
by concatenating the encrypted result from the cipher with the output
from the hash, as is used by the IPsec ESP protocol.The authenc algorithm exists as a template with four parameters:
authenc(auth, authsize, enc, enckeylen).
The authentication algorithm, the authentication size (i.e., truncating
the output of the authentication algorithm), the encryption algorithm,
and the encryption key length. Both the size field and the key length
field are in bytes. For example, AES-128 with SHA1-HMAC would be
represented byauthenc(hmac(sha1), 12, cbc(aes), 16)
The key for the authenc algorithm is the concatenation of the keys for
the authentication algorithm with the encryption algorithm. For the
above example, if a key of length 36 bytes is given, then hmac(sha1)
would receive the first 20 bytes while the last 16 would be given to
cbc(aes).Signed-off-by: Herbert Xu
-
This patch adds the function scatterwalk_map_and_copy which reads or
writes a chunk of data from a scatterlist at a given offset. It will
be used by authenc which would read/write the authentication data at
the end of the cipher/plain text.Signed-off-by: Herbert Xu
-
The scatterwalk code is only used by algorithms that can be built as
a module. Therefore we can move it into algapi.Signed-off-by: Herbert Xu
-
Since not everyone needs a queue pointer and those who need it can
always get it from the context anyway the queue pointer in the
common alg object is redundant.Signed-off-by: Herbert Xu
-
This patch ensures that kernel.h and slab.h are included for
the setkey_unaligned function. It also breaks a couple of
long lines.Signed-off-by: Herbert Xu
-
This patch adds support for having multiple parameters to
a template, separated by a comma. It also adds support
for integer parameters in addition to the current algorithm
parameter type.This will be used by the authenc template which will have
four parameters: the authentication algorithm, the encryption
algorithm, the authentication size and the encryption key
length.Signed-off-by: Herbert Xu
-
This patch adds crypto_aead which is the interface for AEAD
(Authenticated Encryption with Associated Data) algorithms.AEAD algorithms perform authentication and encryption in one
step. Traditionally users (such as IPsec) would use two
different crypto algorithms to perform these. With AEAD
this comes down to one algorithm and one operation.Of course if traditional algorithms were used we'd still
be doing two operations underneath. However, real AEAD
algorithms may allow the underlying operations to be
optimised as well.Signed-off-by: Herbert Xu
-
This patch adds support for the SEED cipher (RFC4269).
This patch have been used in few VPN appliance vendors in Korea for
several years. And it was verified by KISA, who developed the
algorithm itself.As its importance in Korean banking industry, it would be great
if linux incorporates the support.Signed-off-by: Hye-Shik Chang
Signed-off-by: Herbert Xu -
Other options requiring specific block cipher algorithms already have
the appropriate select's.Signed-off-by: Adrian Bunk
Signed-off-by: Herbert Xu
25 Sep, 2007
1 commit
-
Fix dma_wait_for_async_tx to not loop forever in the case where a
dependency chain is longer than two entries. This condition will not
happen with current in-kernel drivers, but fix it for future drivers.Found-by: Saeed Bishara
Signed-off-by: Dan Williams
10 Sep, 2007
1 commit
-
The previous patch had the conditional inverted. This patch fixes it
so that we return the original position if it does not straddle a page.Thanks to Bob Gilligan for spotting this.
Signed-off-by: Herbert Xu
09 Sep, 2007
1 commit
-
The function blkcipher_get_spot tries to return a buffer of
the specified length that does not straddle a page. It has
an off-by-one bug so it may advance a page unnecessarily.What's worse, one of its callers doesn't provide a buffer
that's sufficiently long for this operation.This patch fixes both problems. Thanks to Bob Gilligan for
diagnosing this problem and providing a fix.Signed-off-by: Herbert Xu
06 Aug, 2007
1 commit
-
setkey_unaligned() commited in ca7c39385ce1a7b44894a4b225a4608624e90730
overwrites unallocated memory in the following memset() because
I used the wrong buffer length.Signed-off-by: Sebastian Siewior
Signed-off-by: Herbert Xu
20 Jul, 2007
1 commit
-
Andrew Morton:
[async_memcpy] is very wrong if both ASYNC_TX_KMAP_DST and
ASYNC_TX_KMAP_SRC can ever be set. We'll end up using the same kmap
slot for both src add dest and we get either corrupted data or a BUG.Evgeniy Polyakov:
Btw, shouldn't it always be kmap_atomic() even if flag is not set.
That pages are usual one returned by alloc_page().So fix the usage of kmap_atomic and kill the ASYNC_TX_KMAP_DST and
ASYNC_TX_KMAP_SRC flags.Cc: Andrew Morton
Cc: Evgeniy Polyakov
Signed-off-by: Dan Williams
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
17 Jul, 2007
1 commit
-
Simple and stupid - just use the same code from another place in the kernel.
Signed-off-by: Pavel Emelianov
Acked-by: Herbert Xu
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds