[PATCH v4 16/29] pkcs7: move common functions to PKCS7 helper
Ilias Apalodimas
ilias.apalodimas at linaro.org
Wed Jul 3 11:33:32 CEST 2024
Hi Raymond
On Tue, 2 Jul 2024 at 21:30, Raymond Mao <raymond.mao at linaro.org> wrote:
>
> Move pkcs7_get_content_data as a helper function that can be
> shared by legacy crypto lib and MbedTLS implementation.
>
> Signed-off-by: Raymond Mao <raymond.mao at linaro.org>
> ---
> Changes in v4
> - Initial patch.
>
> lib/crypto/Makefile | 1 +
> lib/crypto/pkcs7_helper.c | 40 +++++++++++++++++++++++++++++++++++++++
> lib/crypto/pkcs7_parser.c | 28 ---------------------------
> 3 files changed, 41 insertions(+), 28 deletions(-)
> create mode 100644 lib/crypto/pkcs7_helper.c
>
> diff --git a/lib/crypto/Makefile b/lib/crypto/Makefile
> index 946cc3a7b59..16059088f26 100644
> --- a/lib/crypto/Makefile
> +++ b/lib/crypto/Makefile
> @@ -53,6 +53,7 @@ $(obj)/x509_akid.asn1.o: $(obj)/x509_akid.asn1.c $(obj)/x509_akid.asn1.h
> obj-$(CONFIG_$(SPL_)PKCS7_MESSAGE_PARSER) += pkcs7_message.o
> pkcs7_message-y := \
> pkcs7.asn1.o \
> + pkcs7_helper.o \
> pkcs7_parser.o
> obj-$(CONFIG_$(SPL_)PKCS7_VERIFY) += pkcs7_verify.o
>
> diff --git a/lib/crypto/pkcs7_helper.c b/lib/crypto/pkcs7_helper.c
> new file mode 100644
> index 00000000000..6c8dcd1a935
> --- /dev/null
> +++ b/lib/crypto/pkcs7_helper.c
> @@ -0,0 +1,40 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * PKCS7 helper functions
> + *
> + * Copyright (c) 2012 Red Hat, Inc. All Rights Reserved.
> + * Written by David Howells (dhowells at redhat.com)
> + *
> + * Copyright (c) 2024 Linaro Limited
> + * Author: Raymond Mao <raymond.mao at linaro.org>
Copyright and authorship is added if you add a significant portion of
the file. You are moving a function around here, so just keep the
original author & copyright
> + */
> +#include <linux/kernel.h>
> +#include <linux/err.h>
> +#include <crypto/pkcs7_parser.h>
> +
> +/**
> + * pkcs7_get_content_data - Get access to the PKCS#7 content
> + * @pkcs7: The preparsed PKCS#7 message to access
> + * @_data: Place to return a pointer to the data
> + * @_data_len: Place to return the data length
> + * @_headerlen: Size of ASN.1 header not included in _data
> + *
> + * Get access to the data content of the PKCS#7 message. The size of the
> + * header of the ASN.1 object that contains it is also provided and can be used
> + * to adjust *_data and *_data_len to get the entire object.
> + *
> + * Returns -ENODATA if the data object was missing from the message.
> + */
> +int pkcs7_get_content_data(const struct pkcs7_message *pkcs7,
> + const void **_data, size_t *_data_len,
> + size_t *_headerlen)
> +{
> + if (!pkcs7->data)
> + return -ENODATA;
> +
> + *_data = pkcs7->data;
> + *_data_len = pkcs7->data_len;
> + if (_headerlen)
> + *_headerlen = pkcs7->data_hdrlen;
> + return 0;
> +}
> diff --git a/lib/crypto/pkcs7_parser.c b/lib/crypto/pkcs7_parser.c
> index d5efa828d6a..c849dc0d92d 100644
> --- a/lib/crypto/pkcs7_parser.c
> +++ b/lib/crypto/pkcs7_parser.c
> @@ -182,34 +182,6 @@ out_no_ctx:
> }
> EXPORT_SYMBOL_GPL(pkcs7_parse_message);
>
> -/**
> - * pkcs7_get_content_data - Get access to the PKCS#7 content
> - * @pkcs7: The preparsed PKCS#7 message to access
> - * @_data: Place to return a pointer to the data
> - * @_data_len: Place to return the data length
> - * @_headerlen: Size of ASN.1 header not included in _data
> - *
> - * Get access to the data content of the PKCS#7 message. The size of the
> - * header of the ASN.1 object that contains it is also provided and can be used
> - * to adjust *_data and *_data_len to get the entire object.
> - *
> - * Returns -ENODATA if the data object was missing from the message.
> - */
> -int pkcs7_get_content_data(const struct pkcs7_message *pkcs7,
> - const void **_data, size_t *_data_len,
> - size_t *_headerlen)
> -{
> - if (!pkcs7->data)
> - return -ENODATA;
> -
> - *_data = pkcs7->data;
> - *_data_len = pkcs7->data_len;
> - if (_headerlen)
> - *_headerlen = pkcs7->data_hdrlen;
> - return 0;
> -}
> -EXPORT_SYMBOL_GPL(pkcs7_get_content_data);
> -
> /*
> * Note an OID when we find one for later processing when we know how
> * to interpret it.
> --
> 2.25.1
>
with the above fixed
Reviewed-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
More information about the U-Boot
mailing list