[PATCH 0/9 v3] digest: allow multiple implementation of digest
Antony Pavlov
antonynpavlov at gmail.com
Tue Mar 31 08:44:28 PDT 2015
On Wed, 25 Mar 2015 12:51:40 +0100
Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com> wrote:
Hmmm.
This new digest implementation have some Kconfig inconsistency.
E.g. I can configure barebox like this:
CONFIG_CMD_SHA1SUM=y
...
CONFIG_SHA1=y
# CONFIG_DIGEST_MD5_GENERIC is not set
# CONFIG_DIGEST_SHA1_GENERIC is not set
# CONFIG_DIGEST_SHA224_GENERIC is not set
# CONFIG_DIGEST_SHA256_GENERIC is not set
# CONFIG_DIGEST_SHA384_GENERIC is not set
# CONFIG_DIGEST_SHA512_GENERIC is not set
# CONFIG_DIGEST_HMAC_GENERIC is not set
And here is BUG log for this configuration:
barebox:/ sha1sum foobar
BUG: failure at commands/hashsum.c:61/do_hash()!
BUG!
no stack data available
Could we tune Kconfig somehow (e.g. add addition dependencies) to prevent situations like this?
> Hi,
>
> The following serie allow you to have multiple driver for
> the digest.
>
> This also switch the sha1 implementation to the kernel one and
> add the armv4 asm implementtion that save nearly 6KiB in a zbarebox
> lzo.
>
>
> v2:
> switch sha256 and sha512 to linux implementation
> add arm sha256 asm implementation
>
> v3:
> Fix sha256 for armv4 in a better way as discussed on ARM ML
> Only register the generic hmac one time per sha algo, as we will
> use the best sha algo at runtime
>
> The following changes since commit 52d4a0321405b7525422f04fffbe7f318c9c5a88:
>
> Merge branch 'for-next/state' into next (2015-03-19 07:55:59 +0100)
>
> are available in the git repository at:
>
> git://git.jcrosoft.org/barebox.git delivery/sha1
>
> for you to fetch changes up to 141ffeabaf852f6c11c7aad9c18b1e017578b56a:
>
> arm: crypto: add sha256 assembly support (2015-03-25 19:50:36 +0800)
>
> ----------------------------------------------------------------
> Jean-Christophe PLAGNIOL-VILLARD (9):
> command: digest/hashsum: set key command level
> digest: allow algo to specify their length at runtime
> crypto: prepare to allow multiple digest driver
> crypto: hmac: move register to hmac
> crypto: sha1: switch to linux implementation
> crypto: sha256: switch to linux implementation
> crypto: sha512: switch to linux implementation
> arm: crypto: add sha1 assembly support
> arm: crypto: add sha256 assembly support
>
> arch/arm/Makefile | 1 +
> arch/arm/configs/at91rm9200ek_defconfig | 4 +-
> arch/arm/configs/highbank_defconfig | 4 +-
> arch/arm/configs/mioa701_defconfig | 2 +-
> arch/arm/configs/module-mb7707_defconfig | 4 +-
> arch/arm/configs/nhk8815_defconfig | 2 +-
> arch/arm/configs/phytec-phycard-omap3_defconfig | 6 +-
> arch/arm/configs/rpi_defconfig | 4 +-
> arch/arm/configs/versatilepb_arm1176_defconfig | 4 +-
> arch/arm/configs/versatilepb_defconfig | 4 +-
> arch/arm/configs/vexpress_ca9_defconfig | 4 +-
> arch/arm/configs/vexpress_defconfig | 4 +-
> arch/arm/configs/virt2real_defconfig | 4 +-
> arch/arm/configs/zylonite310_defconfig | 2 +-
> arch/arm/crypto/Makefile | 17 +
> arch/arm/crypto/sha1-armv4-large.S | 497 +++++++++++++++++++++++++++++
> arch/arm/crypto/sha1_glue.c | 137 ++++++++
> arch/arm/crypto/sha256-armv4.pl | 717 ++++++++++++++++++++++++++++++++++++++++++
> arch/arm/crypto/sha256-core.S_shipped | 2779 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> arch/arm/crypto/sha256_glue.c | 213 +++++++++++++
> arch/arm/crypto/sha256_glue.h | 23 ++
> arch/mips/configs/img-ci20_defconfig | 6 +-
> arch/mips/configs/ritmix-rzx50_defconfig | 6 +-
> arch/mips/configs/tplink-mr3020_defconfig | 4 +-
> commands/digest.c | 27 +-
> commands/hashsum.c | 10 +-
> commands/internal.h | 3 +-
> crypto/Kconfig | 57 +++-
> crypto/Makefile | 14 +-
> crypto/digest.c | 32 +-
> crypto/hmac.c | 58 +++-
> crypto/md5.c | 17 +-
> crypto/sha1.c | 539 +++++++++++++++-----------------
> crypto/sha2.c | 593 ++++++++++++++++++-----------------
> crypto/sha4.c | 495 +++++++++++++----------------
> include/asm-generic/barebox.lds.h | 3 +-
> {crypto => include/crypto}/internal.h | 10 -
> include/crypto/sha.h | 95 ++++++
> include/digest.h | 20 +-
> include/init.h | 3 +-
> 40 files changed, 5446 insertions(+), 978 deletions(-)
> create mode 100644 arch/arm/crypto/Makefile
> create mode 100644 arch/arm/crypto/sha1-armv4-large.S
> create mode 100644 arch/arm/crypto/sha1_glue.c
> create mode 100644 arch/arm/crypto/sha256-armv4.pl
> create mode 100644 arch/arm/crypto/sha256-core.S_shipped
> create mode 100644 arch/arm/crypto/sha256_glue.c
> create mode 100644 arch/arm/crypto/sha256_glue.h
> rename {crypto => include/crypto}/internal.h (53%)
> create mode 100644 include/crypto/sha.h
>
> Best Regards,
> J.
>
> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
--
--
Best regards,
Antony Pavlov
More information about the barebox
mailing list