Message ID | 20220617070754.73667-1-helei.sig11@bytedance.com |
---|---|
Headers | show |
Series | virtio-crypto: support ECDSA algorithm | expand |
On Fri, Jun 17, 2022 at 03:07:49PM +0800, Lei He wrote: > From: lei he <helei.sig11@bytedance.com> > > This patch supports the ECDSA algorithm for virtio-crypto: > 1. fixed the problem that the max_signature_size of ECDSA is > incorrectly calculated. > 2. make pkcs8_private_key_parser can identify ECDSA private keys. > 3. implement ECDSA algorithm for virtio-crypto device virtio bits: Acked-by: Michael S. Tsirkin <mst@redhat.com> > lei he (4): > crypto: fix the calculation of max_size for ECDSA > crypto: pkcs8 parser support ECDSA private keys > crypto: remove unused field in pkcs8_parse_context > virtio-crypto: support ECDSA algorithm > > crypto/Kconfig | 1 + > crypto/Makefile | 2 + > crypto/akcipher.c | 10 + > crypto/asymmetric_keys/pkcs8.asn1 | 2 +- > crypto/asymmetric_keys/pkcs8_parser.c | 46 +++- > crypto/ecdsa.c | 3 +- > crypto/ecdsa_helper.c | 45 +++ > .../virtio/virtio_crypto_akcipher_algs.c | 259 ++++++++++++++++-- > include/crypto/internal/ecdsa.h | 15 + > include/linux/asn1_encoder.h | 2 + > lib/asn1_encoder.c | 3 +- > 11 files changed, 360 insertions(+), 28 deletions(-) > create mode 100644 crypto/ecdsa_helper.c > create mode 100644 include/crypto/internal/ecdsa.h > > -- > 2.20.1
On Fri, Jun 17, 2022 at 03:07:51PM +0800, Lei He wrote: > From: lei he <helei.sig11@bytedance.com> > > According to PKCS#1 standard, the 'otherPrimeInfos' field contains > the information for the additional primes r_3, ..., r_u, in order. > It shall be omitted if the version is 0 and shall contain at least > one instance of OtherPrimeInfo if the version is 1, see: > https://www.rfc-editor.org/rfc/rfc3447#page-44 > > Replace the version number '1' with 0, otherwise, some drivers may > not pass the run-time tests. > > Signed-off-by: lei he <helei.sig11@bytedance.com> Why is this posted as part of the virtio-crypto patchset thread though? > --- > crypto/testmgr.h | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/crypto/testmgr.h b/crypto/testmgr.h > index 4d7449fc6a65..d57f24b906f1 100644 > --- a/crypto/testmgr.h > +++ b/crypto/testmgr.h > @@ -186,7 +186,7 @@ static const struct akcipher_testvec rsa_tv_template[] = { > #ifndef CONFIG_CRYPTO_FIPS > .key = > "\x30\x81\x9A" /* sequence of 154 bytes */ > - "\x02\x01\x01" /* version - integer of 1 byte */ > + "\x02\x01\x00" /* version - integer of 1 byte */ > "\x02\x41" /* modulus - integer of 65 bytes */ > "\x00\xAA\x36\xAB\xCE\x88\xAC\xFD\xFF\x55\x52\x3C\x7F\xC4\x52\x3F" > "\x90\xEF\xA0\x0D\xF3\x77\x4A\x25\x9F\x2E\x62\xB4\xC5\xD9\x9C\xB5" > @@ -216,7 +216,7 @@ static const struct akcipher_testvec rsa_tv_template[] = { > }, { > .key = > "\x30\x82\x01\x1D" /* sequence of 285 bytes */ > - "\x02\x01\x01" /* version - integer of 1 byte */ > + "\x02\x01\x00" /* version - integer of 1 byte */ > "\x02\x81\x81" /* modulus - integer of 129 bytes */ > "\x00\xBB\xF8\x2F\x09\x06\x82\xCE\x9C\x23\x38\xAC\x2B\x9D\xA8\x71" > "\xF7\x36\x8D\x07\xEE\xD4\x10\x43\xA4\x40\xD6\xB6\xF0\x74\x54\xF5" > @@ -260,7 +260,7 @@ static const struct akcipher_testvec rsa_tv_template[] = { > #endif > .key = > "\x30\x82\x02\x20" /* sequence of 544 bytes */ > - "\x02\x01\x01" /* version - integer of 1 byte */ > + "\x02\x01\x00" /* version - integer of 1 byte */ > "\x02\x82\x01\x01\x00" /* modulus - integer of 256 bytes */ > "\xDB\x10\x1A\xC2\xA3\xF1\xDC\xFF\x13\x6B\xED\x44\xDF\xF0\x02\x6D" > "\x13\xC7\x88\xDA\x70\x6B\x54\xF1\xE8\x27\xDC\xC3\x0F\x99\x6A\xFA" > -- > 2.20.1
From: lei he <helei.sig11@bytedance.com> This patch supports the ECDSA algorithm for virtio-crypto: 1. fixed the problem that the max_signature_size of ECDSA is incorrectly calculated. 2. make pkcs8_private_key_parser can identify ECDSA private keys. 3. implement ECDSA algorithm for virtio-crypto device lei he (4): crypto: fix the calculation of max_size for ECDSA crypto: pkcs8 parser support ECDSA private keys crypto: remove unused field in pkcs8_parse_context virtio-crypto: support ECDSA algorithm crypto/Kconfig | 1 + crypto/Makefile | 2 + crypto/akcipher.c | 10 + crypto/asymmetric_keys/pkcs8.asn1 | 2 +- crypto/asymmetric_keys/pkcs8_parser.c | 46 +++- crypto/ecdsa.c | 3 +- crypto/ecdsa_helper.c | 45 +++ .../virtio/virtio_crypto_akcipher_algs.c | 259 ++++++++++++++++-- include/crypto/internal/ecdsa.h | 15 + include/linux/asn1_encoder.h | 2 + lib/asn1_encoder.c | 3 +- 11 files changed, 360 insertions(+), 28 deletions(-) create mode 100644 crypto/ecdsa_helper.c create mode 100644 include/crypto/internal/ecdsa.h