[U-Boot] [RFC 0/9] import x509/pkcs7 parsers from linux

AKASHI Takahiro takahiro.akashi at linaro.org
Thu Oct 3 05:51:41 UTC 2019


Ping.

Does anybody have any comments on this patch set?
Happy or unhappy with my approach here?

Thanks,
-Takahiro Akashi

On Tue, Sep 03, 2019 at 02:42:37PM +0900, AKASHI Takahiro wrote:
> Asn1 parsers of x509 certificates and pkcs7 messages are required
> to implement image authentication and variable authentication as
> part of UEFI secure boot feature.
> 
> As we discussed before in the thread[1], most people insisted that
> we should re-use corresponding source code from Linux repository
> for this purpose.
> 
> Here is my attempt to import all the necessary files from Linux; Those
> will eventually be part of UEFI secure boot implementation, but I'd like
> to get early feedback from other peoples before submitting the whole
> patchset so that they will be better formatted for merging.
> 
> My approach here is
> * files from Linux 5.0
>   (will be updated to the latest when I will submit them as finalized
>    patches.)
> * modify files as little as possible
> * mark/protect unavoidable changes with "#if(n)def __UBOOT__"
> so that future fixes/differences in Linux repository will easily
> be applied to U-Boot.
> 
> Please note that checkpatch.pl will complain with a bunch of
> warnings/errors but I intentionally left them unchanged for the sake
> of better maintainability I said above.
> 
> Any comments will be appreciated.
> -Takahiro Akashi
> 
> [1] https://lists.denx.de/pipermail/u-boot/2019-April/366423.html
> 
> AKASHI Takahiro (9):
>   cmd: add asn1_compiler
>   Makefile: add build script for asn1 parsers
>   lib: add asn1 decoder
>   lib: add oid registry utility
>   lib: crypto: add public key utility
>   lib: crypto: add public_key_verify_signature()
>   lib: crypto: add x509 parser
>   lib: crypto: add pkcs7 message parser
>   lib: crypto: add rsa public key parser
> 
>  cmd/Kconfig                       |    3 +
>  include/crypto/internal/rsa.h     |   62 ++
>  include/crypto/pkcs7.h            |   51 +
>  include/crypto/public_key.h       |   89 ++
>  include/keys/asymmetric-type.h    |   92 ++
>  include/linux/asn1.h              |   69 ++
>  include/linux/asn1_ber_bytecode.h |   93 ++
>  include/linux/asn1_decoder.h      |   24 +
>  include/linux/oid_registry.h      |  103 ++
>  lib/Kconfig                       |   12 +
>  lib/Makefile                      |   18 +
>  lib/asn1_decoder.c                |  520 ++++++++++
>  lib/build_OID_registry            |  207 ++++
>  lib/crypto/Kconfig                |   38 +
>  lib/crypto/Makefile               |   46 +
>  lib/crypto/asymmetric_type.c      |  655 ++++++++++++
>  lib/crypto/pkcs7.asn1             |  135 +++
>  lib/crypto/pkcs7_parser.c         |  690 ++++++++++++
>  lib/crypto/pkcs7_parser.h         |   69 ++
>  lib/crypto/public_key.c           |  344 ++++++
>  lib/crypto/public_key_local.c     |   69 ++
>  lib/crypto/rsa_helper.c           |   81 ++
>  lib/crypto/rsapubkey.asn1         |    4 +
>  lib/crypto/x509.asn1              |   60 ++
>  lib/crypto/x509_akid.asn1         |   35 +
>  lib/crypto/x509_cert_parser.c     |  644 ++++++++++++
>  lib/crypto/x509_parser.h          |   61 ++
>  lib/crypto/x509_public_key.c      |  284 +++++
>  lib/oid_registry.c                |  178 ++++
>  scripts/Makefile                  |    3 +
>  scripts/Makefile.build            |    2 +-
>  scripts/asn1_compiler.c           | 1615 +++++++++++++++++++++++++++++
>  32 files changed, 6355 insertions(+), 1 deletion(-)
>  create mode 100644 include/crypto/internal/rsa.h
>  create mode 100644 include/crypto/pkcs7.h
>  create mode 100644 include/crypto/public_key.h
>  create mode 100644 include/keys/asymmetric-type.h
>  create mode 100644 include/linux/asn1.h
>  create mode 100644 include/linux/asn1_ber_bytecode.h
>  create mode 100644 include/linux/asn1_decoder.h
>  create mode 100644 include/linux/oid_registry.h
>  create mode 100644 lib/asn1_decoder.c
>  create mode 100755 lib/build_OID_registry
>  create mode 100644 lib/crypto/Kconfig
>  create mode 100644 lib/crypto/Makefile
>  create mode 100644 lib/crypto/asymmetric_type.c
>  create mode 100644 lib/crypto/pkcs7.asn1
>  create mode 100644 lib/crypto/pkcs7_parser.c
>  create mode 100644 lib/crypto/pkcs7_parser.h
>  create mode 100644 lib/crypto/public_key.c
>  create mode 100644 lib/crypto/public_key_local.c
>  create mode 100644 lib/crypto/rsa_helper.c
>  create mode 100644 lib/crypto/rsapubkey.asn1
>  create mode 100644 lib/crypto/x509.asn1
>  create mode 100644 lib/crypto/x509_akid.asn1
>  create mode 100644 lib/crypto/x509_cert_parser.c
>  create mode 100644 lib/crypto/x509_parser.h
>  create mode 100644 lib/crypto/x509_public_key.c
>  create mode 100644 lib/oid_registry.c
>  create mode 100644 scripts/asn1_compiler.c
> 
> -- 
> 2.21.0
> 


More information about the U-Boot mailing list