[U-Boot] RSA in U-Boot

AKASHI Takahiro takahiro.akashi at linaro.org
Fri May 17 00:12:07 UTC 2019


Tom, Wolfgang,

Thank you for your inputs.

On Thu, May 16, 2019 at 02:18:03PM +0200, Wolfgang Denk wrote:
> Dear Akashi Takahiro,
> 
> In message <20190516115636.GA8052 at fireball> you wrote:
> > 
> > Can you give me an example of U-Boot code which comes from linux (or
> > other projects) and is regularly synced (or updated) with the origin?
> > Who maintains that? and how?
> 
> Comes from Linux: a ton... Kconfig, Linker Script, MTD, UBI, UBIFS,
>         ext2/3/4, jffs2, libfdt, many drivers, network stack,
>         reiserfs, just to name a few.
> 
> Regularly synced: None.  Usually this only happens in irregular
> 	intervals, if incompatibilities or bugs (that have been
> 	fixed in more recent code) show up
> 
> Who: usually the responsible custodians

"Custodians" don't always mean sub-system maintainers. Right?

> How: ideally thius should be a straightforward, though largely
> 	manual process.

In fact, I have already imported relevant kernel code into U-Boot
and it now works perfectly with my experimental UEFI secure boot patch,
but see the total size (and numbers) of files imported is quite big.
I wonder who is willing to maintain them:

 cmd/Kconfig                       |    3 +
 include/crypto/internal/rsa.h     |   65 ++
 include/crypto/pkcs7.h            |   51 ++
 include/crypto/public_key.h       |   88 ++
 include/linux/asn1.h              |   69 ++
 include/linux/asn1_ber_bytecode.h |   93 +++
 include/linux/asn1_decoder.h      |   24 +
 include/linux/oid_registry.h      |  103 +++
 include/u-boot/rsa-mod-exp.h      |    3 +
 lib/Kconfig                       |   12 +
 lib/Makefile                      |   18 +
 lib/asn1_decoder.c                |  518 ++++++++++++
 lib/build_OID_registry            |  207 +++++
 lib/crypto/Kconfig                |   16 +
 lib/crypto/Makefile               |   38 +
 lib/crypto/pkcs7.asn1             |  135 ++++
 lib/crypto/pkcs7_parser.c         |  701 ++++++++++++++++
 lib/crypto/pkcs7_parser.h         |   69 ++
 lib/crypto/public_key.c           |  340 ++++++++
 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     |  681 ++++++++++++++++
 lib/crypto/x509_parser.h          |   72 ++
 lib/crypto/x509_public_key.c      |  277 +++++++
 lib/oid_registry.c                |  170 ++++
 lib/rsa/Kconfig                   |    7 +
 lib/rsa/Makefile                  |    2 +-
 lib/rsa/rsa-keyprop.c             |  631 +++++++++++++++
 lib/rsa/rsa-verify.c              |   59 +-
 scripts/Makefile                  |    3 +
 scripts/Makefile.build            |    6 +-
 scripts/asn1_compiler.c           | 1615 +++++++++++++++++++++++++++++++++++++
 scripts/linux/asn1.h              |   69 ++
 scripts/linux/asn1_ber_bytecode.h |   93 +++
 tools/Makefile                    |    2 +
 37 files changed, 6409 insertions(+), 11 deletions(-)

My modification is not yet optimized to keep updates much easier,
but those numbers will give you a rough idea.

Thanks,
-Takahiro Akashi



More information about the U-Boot mailing list