diff options
author | Ignat Korchagin <ignat@cloudflare.com> | 2022-08-31 19:37:06 +0100 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2022-09-09 16:18:33 +0800 |
commit | 8b775ba1ab8a3d315dd513c1df00361fa59bec28 (patch) | |
tree | da4aa3fff43cd7d0f19b9eb52a976542f83e5cb9 /crypto/aead.c | |
parent | 845071c2972938c4300c12097d07934756c11640 (diff) | |
download | linux-crypto-8b775ba1ab8a3d315dd513c1df00361fa59bec28.tar.gz linux-crypto-8b775ba1ab8a3d315dd513c1df00361fa59bec28.zip |
crypto: akcipher - default implementation for setting a private key
Changes from v1:
* removed the default implementation from set_pub_key: it is assumed that
an implementation must always have this callback defined as there are
no use case for an algorithm, which doesn't need a public key
Many akcipher implementations (like ECDSA) support only signature
verifications, so they don't have all callbacks defined.
Commit 17cf89128477 ("crypto: akcipher - default implementations for
request callbacks") introduced default callbacks for sign/verify
operations, which just return an error code.
However, these are not enough, because before calling sign the caller would
likely call set_priv_key first on the instantiated transform (as the
in-kernel testmgr does). This function does not have a default stub, so the
kernel crashes, when trying to set a private key on an akcipher, which
doesn't support signature generation.
I've noticed this, when trying to add a KAT vector for ECDSA signature to
the testmgr.
With this patch the testmgr returns an error in dmesg (as it should)
instead of crashing the kernel NULL ptr dereference.
Fixes: 17cf89128477 ("crypto: akcipher - default implementations for request callbacks")
Signed-off-by: Ignat Korchagin <ignat@cloudflare.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/aead.c')
0 files changed, 0 insertions, 0 deletions