Message ID | 20240702182325.2904421-15-raymond.mao@linaro.org |
---|---|
State | Changes Requested |
Delegated to: | Tom Rini |
Headers | show |
Series | Integrate MbedTLS v3.6 LTS with U-Boot | expand |
Hi Raymond On Tue, 2 Jul 2024 at 21:29, Raymond Mao <raymond.mao@linaro.org> wrote: > > Move public_key_free and public_key_signature_free as helper > functions that can be shared by legacy crypto lib and MbedTLS > implementation. > > Signed-off-by: Raymond Mao <raymond.mao@linaro.org> > --- > Changes in v4 > - Initial patch. > > lib/crypto/Makefile | 4 +++- > lib/crypto/public_key.c | 31 ------------------------- > lib/crypto/public_key_helper.c | 42 ++++++++++++++++++++++++++++++++++ > 3 files changed, 45 insertions(+), 32 deletions(-) > create mode 100644 lib/crypto/public_key_helper.c > > diff --git a/lib/crypto/Makefile b/lib/crypto/Makefile > index bec1bc95a65..4ad1849040d 100644 > --- a/lib/crypto/Makefile > +++ b/lib/crypto/Makefile > @@ -7,7 +7,9 @@ obj-$(CONFIG_$(SPL_)ASYMMETRIC_KEY_TYPE) += asymmetric_keys.o > > asymmetric_keys-y := asymmetric_type.o > > -obj-$(CONFIG_$(SPL_)ASYMMETRIC_PUBLIC_KEY_SUBTYPE) += public_key.o > +obj-$(CONFIG_$(SPL_)ASYMMETRIC_PUBLIC_KEY_SUBTYPE) += \ > + public_key_helper.o \ > + public_key.o > > # > # RSA public key parser > diff --git a/lib/crypto/public_key.c b/lib/crypto/public_key.c > index 6efe951c057..408742907f1 100644 > --- a/lib/crypto/public_key.c > +++ b/lib/crypto/public_key.c > @@ -51,38 +51,7 @@ static void public_key_describe(const struct key *asymmetric_key, > } > #endif > > -/* > - * Destroy a public key algorithm key. > - */ > -void public_key_free(struct public_key *key) > -{ > - if (key) { > - kfree(key->key); > - kfree(key->params); > - kfree(key); > - } > -} > -EXPORT_SYMBOL_GPL(public_key_free); > - > #ifdef __UBOOT__ > -/* > - * from <linux>/crypto/asymmetric_keys/signature.c > - * > - * Destroy a public key signature. > - */ > -void public_key_signature_free(struct public_key_signature *sig) > -{ > - int i; > - > - if (sig) { > - for (i = 0; i < ARRAY_SIZE(sig->auth_ids); i++) > - free(sig->auth_ids[i]); > - free(sig->s); > - free(sig->digest); > - free(sig); > - } > -} > -EXPORT_SYMBOL_GPL(public_key_signature_free); > > /** > * public_key_verify_signature - Verify a signature using a public key. > diff --git a/lib/crypto/public_key_helper.c b/lib/crypto/public_key_helper.c > new file mode 100644 > index 00000000000..4cb21edddf3 > --- /dev/null > +++ b/lib/crypto/public_key_helper.c > @@ -0,0 +1,42 @@ > +// SPDX-License-Identifier: GPL-2.0+ > +/* > + * X509 helper functions > + * > + * Copyright (c) 2012 Red Hat, Inc. All Rights Reserved. > + * Written by David Howells (dhowells@redhat.com) > + * > + * Copyright (c) 2024 Linaro Limited > + * Author: Raymond Mao <raymond.mao@linaro.org> Similar comments here, the patch is ok, just remove the copyright and author > + */ > +#include <linux/compat.h> > +#include <crypto/public_key.h> > + > +/* > + * Destroy a public key algorithm key. > + */ > +void public_key_free(struct public_key *key) > +{ > + if (key) { > + kfree(key->key); > + kfree(key->params); > + kfree(key); > + } > +} > + > +/* > + * from <linux>/crypto/asymmetric_keys/signature.c > + * > + * Destroy a public key signature. > + */ > +void public_key_signature_free(struct public_key_signature *sig) > +{ > + int i; > + > + if (sig) { > + for (i = 0; i < ARRAY_SIZE(sig->auth_ids); i++) > + kfree(sig->auth_ids[i]); > + kfree(sig->s); > + kfree(sig->digest); > + kfree(sig); > + } > +} > -- > 2.25.1 > With the above fixed Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
diff --git a/lib/crypto/Makefile b/lib/crypto/Makefile index bec1bc95a65..4ad1849040d 100644 --- a/lib/crypto/Makefile +++ b/lib/crypto/Makefile @@ -7,7 +7,9 @@ obj-$(CONFIG_$(SPL_)ASYMMETRIC_KEY_TYPE) += asymmetric_keys.o asymmetric_keys-y := asymmetric_type.o -obj-$(CONFIG_$(SPL_)ASYMMETRIC_PUBLIC_KEY_SUBTYPE) += public_key.o +obj-$(CONFIG_$(SPL_)ASYMMETRIC_PUBLIC_KEY_SUBTYPE) += \ + public_key_helper.o \ + public_key.o # # RSA public key parser diff --git a/lib/crypto/public_key.c b/lib/crypto/public_key.c index 6efe951c057..408742907f1 100644 --- a/lib/crypto/public_key.c +++ b/lib/crypto/public_key.c @@ -51,38 +51,7 @@ static void public_key_describe(const struct key *asymmetric_key, } #endif -/* - * Destroy a public key algorithm key. - */ -void public_key_free(struct public_key *key) -{ - if (key) { - kfree(key->key); - kfree(key->params); - kfree(key); - } -} -EXPORT_SYMBOL_GPL(public_key_free); - #ifdef __UBOOT__ -/* - * from <linux>/crypto/asymmetric_keys/signature.c - * - * Destroy a public key signature. - */ -void public_key_signature_free(struct public_key_signature *sig) -{ - int i; - - if (sig) { - for (i = 0; i < ARRAY_SIZE(sig->auth_ids); i++) - free(sig->auth_ids[i]); - free(sig->s); - free(sig->digest); - free(sig); - } -} -EXPORT_SYMBOL_GPL(public_key_signature_free); /** * public_key_verify_signature - Verify a signature using a public key. diff --git a/lib/crypto/public_key_helper.c b/lib/crypto/public_key_helper.c new file mode 100644 index 00000000000..4cb21edddf3 --- /dev/null +++ b/lib/crypto/public_key_helper.c @@ -0,0 +1,42 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * X509 helper functions + * + * Copyright (c) 2012 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * Copyright (c) 2024 Linaro Limited + * Author: Raymond Mao <raymond.mao@linaro.org> + */ +#include <linux/compat.h> +#include <crypto/public_key.h> + +/* + * Destroy a public key algorithm key. + */ +void public_key_free(struct public_key *key) +{ + if (key) { + kfree(key->key); + kfree(key->params); + kfree(key); + } +} + +/* + * from <linux>/crypto/asymmetric_keys/signature.c + * + * Destroy a public key signature. + */ +void public_key_signature_free(struct public_key_signature *sig) +{ + int i; + + if (sig) { + for (i = 0; i < ARRAY_SIZE(sig->auth_ids); i++) + kfree(sig->auth_ids[i]); + kfree(sig->s); + kfree(sig->digest); + kfree(sig); + } +}
Move public_key_free and public_key_signature_free as helper functions that can be shared by legacy crypto lib and MbedTLS implementation. Signed-off-by: Raymond Mao <raymond.mao@linaro.org> --- Changes in v4 - Initial patch. lib/crypto/Makefile | 4 +++- lib/crypto/public_key.c | 31 ------------------------- lib/crypto/public_key_helper.c | 42 ++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 32 deletions(-) create mode 100644 lib/crypto/public_key_helper.c