[{"id":3679174,"web_url":"http://patchwork.ozlabs.org/comment/3679174/","msgid":"<CAFLszThUZYSAJmw1kux22Xbs5Uyhf=27vKfbR21bPw24RqdLLw@mail.gmail.com>","list_archive_url":null,"date":"2026-04-20T02:11:29","subject":"Re: [PATCH v4 03/14] test: lib: ecdsa: add initial test","submitter":{"id":6170,"url":"http://patchwork.ozlabs.org/api/people/6170/","name":"Simon Glass","email":"sjg@chromium.org"},"content":"Hi Philippe,\n\nOn 2026-04-17T13:02:04, Philippe Reynes <philippe.reynes@softathome.com> wrote:\n> test: lib: ecdsa: add initial test\n>\n> Adds tests to check that the function ecdsa_hash_verify\n> using mbedtls is valid.\n>\n> Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>\n>\n> include/u-boot/sha256.h |   2 +\n>  include/u-boot/sha512.h |   3 +\n>  test/lib/Makefile       |   1 +\n>  test/lib/ecdsa.c        | 453 ++++++++++++++++++++++++++++++++++++++++++++++++\n>  4 files changed, 459 insertions(+)\n\n> diff --git a/test/lib/ecdsa.c b/test/lib/ecdsa.c\n> @@ -0,0 +1,453 @@\n> +     } else {\n> +             ut_failf(uts, __FILE__, __LINE__, __func__, \"Unknown hash type (%s)\", tv->hash_type);\n> +             return -EINVAL;\n> +     }\n\nCan you use ut_reportf() here?\n\n> diff --git a/include/u-boot/sha256.h b/include/u-boot/sha256.h\n> @@ -15,6 +15,8 @@\n> +#define SHA256_DEF_CHUNK_SZ 0x10000\n\nI suspect you could use the existing CHUNKSZ_SHA256 (64 * 1024)\ninstead. The same applies to SHA384_DEF_CHUNK_SZ and\nSHA512_DEF_CHUNK_SZ\n\n> diff --git a/test/lib/ecdsa.c b/test/lib/ecdsa.c\n> @@ -0,0 +1,453 @@\n> +static int ecdsa_test(struct unit_test_state *uts,\n> +                   const struct ecdsa_test_vector_s *tv)\n> +{\n> +     struct ecdsa_public_key pubkey;\n> +     unsigned char x[528 / 8];\n> +     unsigned char y[528 / 8];\n> +     unsigned char hash[512 / 8];\n> +     size_t hash_len;\n> +     unsigned char signature[528 / 8 * 2];\n> +     size_t sig_len;\n> +     int ret;\n\nThe magic number 528 is confusing since secp521r1 uses 521 bits.\nPlease can you add a comment or define a constant like\nDIV_ROUND_UP(521, 8) ?\n\nReviewed-by: Simon Glass <sjg@chromium.org>\n\nRegards,\nSimon","headers":{"Return-Path":"<u-boot-bounces@lists.denx.de>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256\n header.s=google header.b=g1zRRAkz;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)","phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=chromium.org","phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de","phobos.denx.de;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=chromium.org header.i=@chromium.org\n header.b=\"g1zRRAkz\";\n\tdkim-atps=neutral","phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=chromium.org","phobos.denx.de;\n spf=pass smtp.mailfrom=sjg@chromium.org"],"Received":["from phobos.denx.de (phobos.denx.de\n [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fzTWl5QxWz1yGt\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 20 Apr 2026 12:12:03 +1000 (AEST)","from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id A861D8425F;\n\tMon, 20 Apr 2026 04:12:01 +0200 (CEST)","by phobos.denx.de (Postfix, from userid 109)\n id B655184181; Mon, 20 Apr 2026 04:11:59 +0200 (CEST)","from mail-ej1-x631.google.com (mail-ej1-x631.google.com\n [IPv6:2a00:1450:4864:20::631])\n (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id C7AA982BF2\n for <u-boot@lists.denx.de>; Mon, 20 Apr 2026 04:11:57 +0200 (CEST)","by mail-ej1-x631.google.com with SMTP id\n a640c23a62f3a-b8f9568e074so464914066b.0\n for <u-boot@lists.denx.de>; Sun, 19 Apr 2026 19:11:57 -0700 (PDT)"],"X-Spam-Checker-Version":"SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de","X-Spam-Level":"","X-Spam-Status":"No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,\n DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,\n RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham\n autolearn_force=no version=3.4.2","ARC-Seal":"i=1; a=rsa-sha256; t=1776651117; cv=none;\n d=google.com; s=arc-20240605;\n b=OYAFm6px6BypIVmqMI6qsx+CTP5NjwIL0rvvflXT0nvaaWmz3r0bMPEdk/uixPjPuP\n 5GP9OwJ67ptNI7gh+ssGnHGgHXP0BYzWNxOJ1Utf9FzqldBVJqx6CZeQfukPiI2jetQL\n jVrt2RItCwnohAORQSpCDZDCrRmTG/rnv4tY8EAmOuG/xjsf1IW+A3EBMoEmjpShvhBK\n ytbIQhC+OdJArMJ3gge0YBVQSP94PYyaXWybXGLjtFKnTPN2xtWxCIa/vGmjbSuoTlKJ\n FK8R+igweEj4MLydyU/hyBDWkgIJrVLPipxC/TGj388jpD8LSK0SKjOfLh31pPjlLHly\n avMg==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:dkim-signature;\n bh=rVaKExI84GM/txYKnit3r+WY2vZGsjxrb5nbcti3tVs=;\n fh=P8BakoZEtxSaV7Px0invJW+WKuenx0/FsDVFsdlITls=;\n b=jXVrWo3QzA/P+v92QB1NITb5NC2rNGmMetIStXSoO23e7u1hfsy3pFy7TwiFUzBrf8\n C2ZYrUQD6D7GO3mCRvuV9d65deDN6PD9IX3Q68DwprWCrldDu0tBK6qGYqR2awABJlMY\n RMXqzH1gevehS+fttclzCw31UFR0qnp9jGlXE6LvWUCml3SMGS0HwLrIgUnTifMd781w\n 1eM2cahXYh/7dNqrDfR1p0ewRDBjiaMcxFqD/xdPtNykB7taO3XzrcZ1qjCp/+PurfRw\n uO9PiYtHRyyL/HguhnoH3ytHSB3BWJ8AehqP86IBEkJkAjXUadszi6jCdPwuAjK7SxB7\n o0yw==; darn=lists.denx.de","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=chromium.org; s=google; t=1776651117; x=1777255917; darn=lists.denx.de;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:from:to:cc:subject:date:message-id:reply-to;\n bh=rVaKExI84GM/txYKnit3r+WY2vZGsjxrb5nbcti3tVs=;\n b=g1zRRAkz1tcx/lIVzhRlVzCKO+xOwE2R8DdyTeAAwP/VqjQpjBolpfaGqBSpZO/Mve\n UeDRURUu4Urw4uwJAYkx9RhLZwG5QC3vga6isdqVdbh+Vz9OXvtxFHQiQxvX6e0oSYly\n aGyOVE+GvGOQy5ltoC+rVYdtD3Unca1DsxhD8=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776651117; x=1777255917;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=rVaKExI84GM/txYKnit3r+WY2vZGsjxrb5nbcti3tVs=;\n b=ppdWZ1kUPifHm0txnGj7aApwPFdG+CB0/bJxvMISXB0YYXUDz5WIHPZl05S1DPnG3W\n RfXjh33lXkcfQpW1/u7zFiv5XiTWg1GNSbr1ArKOGm5Nt8t/uQ2q4j52i/7SoYlkxesJ\n ArJkaJYBdsQ4618QfwW+VGvzTbcOtfc6n7vtZBpwHuJisCXJvjAkl27NB4FX6EMccTDj\n 9OR6M8nvktXAFoPxkKHYHMN2DjnknrXeXFS/H2eoOkz+FIGYD+zLDLhkB5mS+j7/dY+6\n IYf9o8znZnarpYIFx5rJK768RB2ElQoA3NpjganatQ2A8LG9/e4yw2WYeHlucFQQTjNA\n kfFg==","X-Forwarded-Encrypted":"i=1;\n AFNElJ+PonqeB9UxXpkzWVE2Hu+gjoHq27k7aNduNfDz+AUgyK3GTM1yv3UJ+j1roy6UK4qA7tzxYbk=@lists.denx.de","X-Gm-Message-State":"AOJu0YxrgAIxQaPq7RwI3ibJc04DvMrxSC9g9xpMLAz0xDkSekXosNBN\n OQPca2KfVS8WpN+r4/7sUYo1hHZkHYgqHZ29gQPPN0RYT+tXccNaNOwrMemqSTf+9MZZJ+TPw5c\n /IGRyDp/+HLDhpGg3juEqME4ZkEnMU8IUGvA0H9rQ","X-Gm-Gg":"AeBDiet7e8kr6haDU/SuoySxYBc0Gc8iJ2vQUDzIa5dZbqw+ZCN8ZadPCaSRdc+kzov\n 03TqelL9F6n3csrRviDwuiu4Tv0cq5uhPdy84xZTQ1QaVEib13vx1x7GmvbQsEls+d6peOIIdCj\n DLI1yNut+TJarx89QbdxyfYyjv53/WantpkFnqgegtTP8U7gulckYu2M2RqRffpKB9dpOSAvB/+\n jgCBIne6iUrUsaUyDGn9AtYDZHEFh2Atqf+yvx1oSpKBHG79jSwYkBpIHqB1Y/kXmOm99WHRazD\n PWscpOmHQuiTUgus+l2p","X-Received":"by 2002:a17:907:3f8d:b0:ba7:3d21:c137 with SMTP id\n a640c23a62f3a-ba73d31091dmr143419366b.17.1776651117199; Sun, 19 Apr 2026\n 19:11:57 -0700 (PDT)","MIME-Version":"1.0","References":"<20260417130204.49896-1-philippe.reynes@softathome.com>\n <20260417130204.49896-4-philippe.reynes@softathome.com>","In-Reply-To":"<20260417130204.49896-4-philippe.reynes@softathome.com>","From":"Simon Glass <sjg@chromium.org>","Date":"Mon, 20 Apr 2026 14:11:29 +1200","X-Gm-Features":"AQROBzDMGmbTqfDpWfYgnd-6RfMMCeaLrN1T07CXcN2oBWW9b7FGNkBSbmPb770","Message-ID":"\n <CAFLszThUZYSAJmw1kux22Xbs5Uyhf=27vKfbR21bPw24RqdLLw@mail.gmail.com>","Subject":"Re: [PATCH v4 03/14] test: lib: ecdsa: add initial test","To":"philippe.reynes@softathome.com","Cc":"marko.makela@iki.fi, jonny.green@keytechinc.com, raymondmaoca@gmail.com,\n trini@konsulko.com, simon.glass@canonical.com, u-boot@lists.denx.de","Content-Type":"text/plain; charset=\"UTF-8\"","X-BeenThere":"u-boot@lists.denx.de","X-Mailman-Version":"2.1.39","Precedence":"list","List-Id":"U-Boot discussion <u-boot.lists.denx.de>","List-Unsubscribe":"<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>","List-Archive":"<https://lists.denx.de/pipermail/u-boot/>","List-Post":"<mailto:u-boot@lists.denx.de>","List-Help":"<mailto:u-boot-request@lists.denx.de?subject=help>","List-Subscribe":"<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>","Errors-To":"u-boot-bounces@lists.denx.de","Sender":"\"U-Boot\" <u-boot-bounces@lists.denx.de>","X-Virus-Scanned":"clamav-milter 0.103.8 at phobos.denx.de","X-Virus-Status":"Clean"}},{"id":3679469,"web_url":"http://patchwork.ozlabs.org/comment/3679469/","msgid":"<CAMDkj5wb=k5kY5vCtSkmr7hks8CioNbgU22p+88jzLwGavgT6g@mail.gmail.com>","list_archive_url":null,"date":"2026-04-20T16:45:27","subject":"Re: [PATCH v4 03/14] test: lib: ecdsa: add initial test","submitter":{"id":91989,"url":"http://patchwork.ozlabs.org/api/people/91989/","name":"Raymond Mao","email":"raymondmaoca@gmail.com"},"content":"Hi Philippe,\n\nOn Fri, Apr 17, 2026 at 9:02 AM Philippe Reynes\n<philippe.reynes@softathome.com> wrote:\n>\n> Adds tests to check that the function ecdsa_hash_verify\n> using mbedtls is valid.\n>\n> Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>\n> ---\n> v2:\n> - little change to only use test with sha enabled\n> v3:\n> - remove useless field *k in struct ecdsa_test_vector_s\n> - change expected value on error (don't use mbedtls error)\n> - manage function returns\n> - update third parameter of sha*_csum_wd\n> v4:\n> - define SHA256_DEF_CHUNK_SZ, SHA384_DEF_CHUNK_SZ and SHA512_DEF_CHUNK_SZ\n> - report skipped tests\n> - add const on some variables\n> - code cleanup\n>\n>  include/u-boot/sha256.h |   2 +\n>  include/u-boot/sha512.h |   3 +\n>  test/lib/Makefile       |   1 +\n>  test/lib/ecdsa.c        | 453 ++++++++++++++++++++++++++++++++++++++++\n>  4 files changed, 459 insertions(+)\n>  create mode 100644 test/lib/ecdsa.c\n>\n> diff --git a/include/u-boot/sha256.h b/include/u-boot/sha256.h\n> index 2d86508332e..abaf8e9f330 100644\n> --- a/include/u-boot/sha256.h\n> +++ b/include/u-boot/sha256.h\n> @@ -15,6 +15,8 @@\n>  #define SHA256_SUM_LEN 32\n>  #define SHA256_DER_LEN 19\n>\n> +#define SHA256_DEF_CHUNK_SZ 0x10000\n> +\n>  extern const uint8_t sha256_der_prefix[];\n>\n>  /* Reset watchdog each time we process this many bytes */\n> diff --git a/include/u-boot/sha512.h b/include/u-boot/sha512.h\n> index 92660d93357..3405d569409 100644\n> --- a/include/u-boot/sha512.h\n> +++ b/include/u-boot/sha512.h\n> @@ -14,6 +14,9 @@\n>  #define SHA512_DER_LEN          19\n>  #define SHA512_BLOCK_SIZE       128\n>\n> +#define SHA384_DEF_CHUNK_SZ 0x10000\n> +#define SHA512_DEF_CHUNK_SZ 0x10000\n> +\n>  #define CHUNKSZ_SHA384 (16 * 1024)\n>  #define CHUNKSZ_SHA512 (16 * 1024)\n>\n> diff --git a/test/lib/Makefile b/test/lib/Makefile\n> index f25383a40e5..2ac80afefdb 100644\n> --- a/test/lib/Makefile\n> +++ b/test/lib/Makefile\n> @@ -8,6 +8,7 @@ obj-$(CONFIG_$(PHASE_)UT_COMPRESSION) += compression.o\n>  ifeq ($(CONFIG_XPL_BUILD),)\n>  obj-y += abuf.o\n>  obj-y += alist.o\n> +obj-$(CONFIG_ECDSA_MBEDTLS) += ecdsa.o\n>  obj-$(CONFIG_EFI_LOADER) += efi_device_path.o efi_memory.o\n>  obj-$(CONFIG_EFI_SECURE_BOOT) += efi_image_region.o\n>  ifdef CONFIG_RISCV\n> diff --git a/test/lib/ecdsa.c b/test/lib/ecdsa.c\n> new file mode 100644\n> index 00000000000..7353072607c\n> --- /dev/null\n> +++ b/test/lib/ecdsa.c\n> @@ -0,0 +1,453 @@\n> +// SPDX-License-Identifier: GPL-2.0+\n> +/*\n> + * Copyright (C) 2026 Philippe Reynes <philippe.reynes@softathome.com>\n> + */\n> +\n> +#include <command.h>\n> +#include <image.h>\n> +#include <test/lib.h>\n> +#include <test/test.h>\n> +#include <test/ut.h>\n> +#include <crypto/ecdsa-uclass.h>\n> +#include <crypto/internal/ecdsa.h>\n> +\n> +struct ecdsa_test_vector_s {\n> +       const char *test_name;\n> +       const char *curve_name;\n> +       const char *x;\n> +       const char *y;\n> +       int size_bits;\n> +       const char *hash_type;\n> +       const char *hash_message;\n> +       const char *r;\n> +       const char *s;\n> +       int expected;\n> +};\n> +\n> +/*\n> + * Those data come from RFC6979\n> + */\n> +\n> +static const struct ecdsa_test_vector_s ecdsa_test_vector[] = {\n> +       /*\n> +        * secp192r1\n> +        */\n> +       {\n> +       .test_name = \"secp192r1 sha1\",\n> +       .curve_name = \"secp192r1\",\n> +       .x = \"AC2C77F529F91689FEA0EA5EFEC7F210D8EEA0B9E047ED56\",\n> +       .y = \"3BC723E57670BD4887EBC732C523063D0A7C957BC97C1C43\",\n> +       .size_bits = 192,\n> +       .hash_type = \"sha-1\",\n> +       .hash_message = \"sample\",\n> +       .r = \"98C6BD12B23EAF5E2A2045132086BE3EB8EBD62ABF6698FF\",\n> +       .s = \"57A22B07DEA9530F8DE9471B1DC6624472E8E2844BC25B64\",\n> +       .expected = 0,\n> +       },\n> +       {\n> +       .test_name = \"secp192r1 sha256\",\n> +       .curve_name = \"secp192r1\",\n> +       .x = \"AC2C77F529F91689FEA0EA5EFEC7F210D8EEA0B9E047ED56\",\n> +       .y = \"3BC723E57670BD4887EBC732C523063D0A7C957BC97C1C43\",\n> +       .size_bits = 192,\n> +       .hash_type = \"sha-256\",\n> +       .hash_message = \"sample\",\n> +       .r = \"4B0B8CE98A92866A2820E20AA6B75B56382E0F9BFD5ECB55\",\n> +       .s = \"CCDB006926EA9565CBADC840829D8C384E06DE1F1E381B85\",\n> +       .expected = 0,\n> +       },\n> +       {\n> +       .test_name = \"secp192r1 sha384\",\n> +       .curve_name = \"secp192r1\",\n> +       .x = \"AC2C77F529F91689FEA0EA5EFEC7F210D8EEA0B9E047ED56\",\n> +       .y = \"3BC723E57670BD4887EBC732C523063D0A7C957BC97C1C43\",\n> +       .size_bits = 192,\n> +       .hash_type = \"sha-384\",\n> +       .hash_message = \"sample\",\n> +       .r = \"DA63BF0B9ABCF948FBB1E9167F136145F7A20426DCC287D5\",\n> +       .s = \"C3AA2C960972BD7A2003A57E1C4C77F0578F8AE95E31EC5E\",\n> +       .expected = 0,\n> +       },\n> +       {\n> +       .test_name = \"secp192r1 sha512\",\n> +       .curve_name = \"secp192r1\",\n> +       .x = \"AC2C77F529F91689FEA0EA5EFEC7F210D8EEA0B9E047ED56\",\n> +       .y = \"3BC723E57670BD4887EBC732C523063D0A7C957BC97C1C43\",\n> +       .size_bits = 192,\n> +       .hash_type = \"sha-512\",\n> +       .hash_message = \"sample\",\n> +       .r = \"4D60C5AB1996BD848343B31C00850205E2EA6922DAC2E4B8\",\n> +       .s = \"3F6E837448F027A1BF4B34E796E32A811CBB4050908D8F67\",\n> +       .expected = 0,\n> +       },\n> +       {\n> +       .test_name = \"secp192r1 sha512 error\",\n> +       .curve_name = \"secp192r1\",\n> +       .x = \"AC2C77F529F91689FEA0EA5EFEC7F210D8EEA0B9E047ED56\",\n> +       .y = \"3BC723E57670BD4887EBC732C523063D0A7C957BC97C1C43\",\n> +       .size_bits = 192,\n> +       .hash_type = \"sha-512\",\n> +       .hash_message = \"sample\",\n> +       .r = \"4D60C5AB1996BD848343B31C00850205E2EA6922DAC2E4B8\",\n> +       .s = \"0F6E837448F027A1BF4B34E796E32A811CBB4050908D8F67\",\n> +       .expected = -EINVAL,\n> +       },\n> +       /*\n> +        * secp224r1\n> +        */\n> +       {\n> +       .test_name = \"secp224r1 sha1\",\n> +       .curve_name = \"secp224r1\",\n> +       .x = \"00CF08DA5AD719E42707FA431292DEA11244D64FC51610D94B130D6C\",\n> +       .y = \"EEAB6F3DEBE455E3DBF85416F7030CBD94F34F2D6F232C69F3C1385A\",\n> +       .size_bits = 224,\n> +       .hash_type = \"sha-1\",\n> +       .hash_message = \"sample\",\n> +       .r = \"22226F9D40A96E19C4A301CE5B74B115303C0F3A4FD30FC257FB57AC\",\n> +       .s = \"66D1CDD83E3AF75605DD6E2FEFF196D30AA7ED7A2EDF7AF475403D69\",\n> +       .expected = 0,\n> +       },\n> +       {\n> +       .test_name = \"secp224r1 sha256\",\n> +       .curve_name = \"secp224r1\",\n> +       .x = \"00CF08DA5AD719E42707FA431292DEA11244D64FC51610D94B130D6C\",\n> +       .y = \"EEAB6F3DEBE455E3DBF85416F7030CBD94F34F2D6F232C69F3C1385A\",\n> +       .size_bits = 224,\n> +       .hash_type = \"sha-256\",\n> +       .hash_message = \"sample\",\n> +       .r = \"61AA3DA010E8E8406C656BC477A7A7189895E7E840CDFE8FF42307BA\",\n> +       .s = \"BC814050DAB5D23770879494F9E0A680DC1AF7161991BDE692B10101\",\n> +       .expected = 0,\n> +       },\n> +       {\n> +       .test_name = \"secp224r1 sha384\",\n> +       .curve_name = \"secp224r1\",\n> +       .x = \"00CF08DA5AD719E42707FA431292DEA11244D64FC51610D94B130D6C\",\n> +       .y = \"EEAB6F3DEBE455E3DBF85416F7030CBD94F34F2D6F232C69F3C1385A\",\n> +       .size_bits = 224,\n> +       .hash_type = \"sha-384\",\n> +       .hash_message = \"sample\",\n> +       .r = \"0B115E5E36F0F9EC81F1325A5952878D745E19D7BB3EABFABA77E953\",\n> +       .s = \"830F34CCDFE826CCFDC81EB4129772E20E122348A2BBD889A1B1AF1D\",\n> +       .expected = 0,\n> +       },\n> +       {\n> +       .test_name = \"secp224r1 sha512\",\n> +       .curve_name = \"secp224r1\",\n> +       .x = \"00CF08DA5AD719E42707FA431292DEA11244D64FC51610D94B130D6C\",\n> +       .y = \"EEAB6F3DEBE455E3DBF85416F7030CBD94F34F2D6F232C69F3C1385A\",\n> +       .size_bits = 224,\n> +       .hash_type = \"sha-512\",\n> +       .hash_message = \"sample\",\n> +       .r = \"074BD1D979D5F32BF958DDC61E4FB4872ADCAFEB2256497CDAC30397\",\n> +       .s = \"A4CECA196C3D5A1FF31027B33185DC8EE43F288B21AB342E5D8EB084\",\n> +       .expected = 0,\n> +       },\n> +       {\n> +       .test_name = \"secp224r1 sha512 error\",\n> +       .curve_name = \"secp224r1\",\n> +       .x = \"00CF08DA5AD719E42707FA431292DEA11244D64FC51610D94B130D6C\",\n> +       .y = \"EEAB6F3DEBE455E3DBF85416F7030CBD94F34F2D6F232C69F3C1385A\",\n> +       .size_bits = 224,\n> +       .hash_type = \"sha-512\",\n> +       .hash_message = \"sample\",\n> +       .r = \"074BD1D979D5F32BF958DDC61E4FB4872ADCAFEB2256497CDAC30397\",\n> +       .s = \"04CECA196C3D5A1FF31027B33185DC8EE43F288B21AB342E5D8EB084\",\n> +       .expected = -EINVAL,\n> +       },\n> +       /*\n> +        * secp256r1\n> +        */\n> +       {\n> +       .test_name = \"secp256r1 sha1\",\n> +       .curve_name = \"secp256r1\",\n> +       .x = \"60FED4BA255A9D31C961EB74C6356D68C049B8923B61FA6CE669622E60F29FB6\",\n> +       .y = \"7903FE1008B8BC99A41AE9E95628BC64F2F1B20C2D7E9F5177A3C294D4462299\",\n> +       .size_bits = 256,\n> +       .hash_type = \"sha-1\",\n> +       .hash_message = \"sample\",\n> +       .r = \"61340C88C3AAEBEB4F6D667F672CA9759A6CCAA9FA8811313039EE4A35471D32\",\n> +       .s = \"6D7F147DAC089441BB2E2FE8F7A3FA264B9C475098FDCF6E00D7C996E1B8B7EB\",\n> +       .expected = 0,\n> +       },\n> +       {\n> +       .test_name = \"secp256r1 sha256\",\n> +       .curve_name = \"secp256r1\",\n> +       .x = \"60FED4BA255A9D31C961EB74C6356D68C049B8923B61FA6CE669622E60F29FB6\",\n> +       .y = \"7903FE1008B8BC99A41AE9E95628BC64F2F1B20C2D7E9F5177A3C294D4462299\",\n> +       .size_bits = 256,\n> +       .hash_type = \"sha-256\",\n> +       .hash_message = \"sample\",\n> +       .r = \"EFD48B2AACB6A8FD1140DD9CD45E81D69D2C877B56AAF991C34D0EA84EAF3716\",\n> +       .s = \"F7CB1C942D657C41D436C7A1B6E29F65F3E900DBB9AFF4064DC4AB2F843ACDA8\",\n> +       .expected = 0,\n> +       },\n> +       {\n> +       .test_name = \"secp256r1 sha384\",\n> +       .curve_name = \"secp256r1\",\n> +       .x = \"60FED4BA255A9D31C961EB74C6356D68C049B8923B61FA6CE669622E60F29FB6\",\n> +       .y = \"7903FE1008B8BC99A41AE9E95628BC64F2F1B20C2D7E9F5177A3C294D4462299\",\n> +       .size_bits = 256,\n> +       .hash_type = \"sha-384\",\n> +       .hash_message = \"sample\",\n> +       .r = \"0EAFEA039B20E9B42309FB1D89E213057CBF973DC0CFC8F129EDDDC800EF7719\",\n> +       .s = \"4861F0491E6998B9455193E34E7B0D284DDD7149A74B95B9261F13ABDE940954\",\n> +       .expected = 0,\n> +       },\n> +       {\n> +       .test_name = \"secp256r1 sha512\",\n> +       .curve_name = \"secp256r1\",\n> +       .x = \"60FED4BA255A9D31C961EB74C6356D68C049B8923B61FA6CE669622E60F29FB6\",\n> +       .y = \"7903FE1008B8BC99A41AE9E95628BC64F2F1B20C2D7E9F5177A3C294D4462299\",\n> +       .size_bits = 256,\n> +       .hash_type = \"sha-512\",\n> +       .hash_message = \"sample\",\n> +       .r = \"8496A60B5E9B47C825488827E0495B0E3FA109EC4568FD3F8D1097678EB97F00\",\n> +       .s = \"2362AB1ADBE2B8ADF9CB9EDAB740EA6049C028114F2460F96554F61FAE3302FE\",\n> +       .expected = 0,\n> +       },\n> +       {\n> +       .test_name = \"secp256r1 sha512 error\",\n> +       .curve_name = \"secp256r1\",\n> +       .x = \"60FED4BA255A9D31C961EB74C6356D68C049B8923B61FA6CE669622E60F29FB6\",\n> +       .y = \"7903FE1008B8BC99A41AE9E95628BC64F2F1B20C2D7E9F5177A3C294D4462299\",\n> +       .size_bits = 256,\n> +       .hash_type = \"sha-512\",\n> +       .hash_message = \"sample\",\n> +       .r = \"8496A60B5E9B47C825488827E0495B0E3FA109EC4568FD3F8D1097678EB97F00\",\n> +       .s = \"0362AB1ADBE2B8ADF9CB9EDAB740EA6049C028114F2460F96554F61FAE3302FE\",\n> +       .expected = -EINVAL,\n> +       },\n> +       /*\n> +        * secp384r1\n> +        */\n> +       {\n> +       .test_name = \"secp384r1 sha1\",\n> +       .curve_name = \"secp384r1\",\n> +       .x = \"EC3A4E415B4E19A4568618029F427FA5DA9A8BC4AE92E02E06AAE5286B300C64DEF8F0EA9055866064A254515480BC13\",\n> +       .y = \"8015D9B72D7D57244EA8EF9AC0C621896708A59367F9DFB9F54CA84B3F1C9DB1288B231C3AE0D4FE7344FD2533264720\",\n> +       .size_bits = 384,\n> +       .hash_type = \"sha-1\",\n> +       .hash_message = \"sample\",\n> +       .r = \"EC748D839243D6FBEF4FC5C4859A7DFFD7F3ABDDF72014540C16D73309834FA37B9BA002899F6FDA3A4A9386790D4EB2\",\n> +       .s = \"A3BCFA947BEEF4732BF247AC17F71676CB31A847B9FF0CBC9C9ED4C1A5B3FACF26F49CA031D4857570CCB5CA4424A443\",\n> +       .expected = 0,\n> +       },\n> +       {\n> +       .test_name = \"secp384r1 sha256\",\n> +       .curve_name = \"secp384r1\",\n> +       .x = \"EC3A4E415B4E19A4568618029F427FA5DA9A8BC4AE92E02E06AAE5286B300C64DEF8F0EA9055866064A254515480BC13\",\n> +       .y = \"8015D9B72D7D57244EA8EF9AC0C621896708A59367F9DFB9F54CA84B3F1C9DB1288B231C3AE0D4FE7344FD2533264720\",\n> +       .size_bits = 384,\n> +       .hash_type = \"sha-256\",\n> +       .hash_message = \"sample\",\n> +       .r = \"21B13D1E013C7FA1392D03C5F99AF8B30C570C6F98D4EA8E354B63A21D3DAA33BDE1E888E63355D92FA2B3C36D8FB2CD\",\n> +       .s = \"F3AA443FB107745BF4BD77CB3891674632068A10CA67E3D45DB2266FA7D1FEEBEFDC63ECCD1AC42EC0CB8668A4FA0AB0\",\n> +       .expected = 0,\n> +       },\n> +       {\n> +       .test_name = \"secp384r1 sha384\",\n> +       .curve_name = \"secp384r1\",\n> +       .x = \"EC3A4E415B4E19A4568618029F427FA5DA9A8BC4AE92E02E06AAE5286B300C64DEF8F0EA9055866064A254515480BC13\",\n> +       .y = \"8015D9B72D7D57244EA8EF9AC0C621896708A59367F9DFB9F54CA84B3F1C9DB1288B231C3AE0D4FE7344FD2533264720\",\n> +       .size_bits = 384,\n> +       .hash_type = \"sha-384\",\n> +       .hash_message = \"sample\",\n> +       .r = \"94EDBB92A5ECB8AAD4736E56C691916B3F88140666CE9FA73D64C4EA95AD133C81A648152E44ACF96E36DD1E80FABE46\",\n> +       .s = \"99EF4AEB15F178CEA1FE40DB2603138F130E740A19624526203B6351D0A3A94FA329C145786E679E7B82C71A38628AC8\",\n> +       .expected = 0,\n> +       },\n> +       {\n> +       .test_name = \"secp384r1 sha512\",\n> +       .curve_name = \"secp384r1\",\n> +       .x = \"EC3A4E415B4E19A4568618029F427FA5DA9A8BC4AE92E02E06AAE5286B300C64DEF8F0EA9055866064A254515480BC13\",\n> +       .y = \"8015D9B72D7D57244EA8EF9AC0C621896708A59367F9DFB9F54CA84B3F1C9DB1288B231C3AE0D4FE7344FD2533264720\",\n> +       .size_bits = 384,\n> +       .hash_type = \"sha-512\",\n> +       .hash_message = \"sample\",\n> +       .r = \"ED0959D5880AB2D869AE7F6C2915C6D60F96507F9CB3E047C0046861DA4A799CFE30F35CC900056D7C99CD7882433709\",\n> +       .s = \"512C8CCEEE3890A84058CE1E22DBC2198F42323CE8ACA9135329F03C068E5112DC7CC3EF3446DEFCEB01A45C2667FDD5\",\n> +       .expected = 0,\n> +       },\n> +       {\n> +       .test_name = \"secp384r1 sha512 error\",\n> +       .curve_name = \"secp384r1\",\n> +       .x = \"EC3A4E415B4E19A4568618029F427FA5DA9A8BC4AE92E02E06AAE5286B300C64DEF8F0EA9055866064A254515480BC13\",\n> +       .y = \"8015D9B72D7D57244EA8EF9AC0C621896708A59367F9DFB9F54CA84B3F1C9DB1288B231C3AE0D4FE7344FD2533264720\",\n> +       .size_bits = 384,\n> +       .hash_type = \"sha-512\",\n> +       .hash_message = \"sample\",\n> +       .r = \"ED0959D5880AB2D869AE7F6C2915C6D60F96507F9CB3E047C0046861DA4A799CFE30F35CC900056D7C99CD7882433709\",\n> +       .s = \"012C8CCEEE3890A84058CE1E22DBC2198F42323CE8ACA9135329F03C068E5112DC7CC3EF3446DEFCEB01A45C2667FDD5\",\n> +       .expected = -EINVAL,\n> +       },\n> +       /*\n> +        * secp521r1\n> +        */\n> +       {\n> +       .test_name = \"secp521r1 sha1\",\n> +       .curve_name = \"secp521r1\",\n> +       .x = \"01894550D0785932E00EAA23B694F213F8C3121F86DC97A04E5A7167DB4E5BCD371123D46E45DB6B5D5370A7F20FB633155D38FFA16D2BD761DCAC474B9A2F5023A4\",\n> +       .y = \"00493101C962CD4D2FDDF782285E64584139C2F91B47F87FF82354D6630F746A28A0DB25741B5B34A828008B22ACC23F924FAAFBD4D33F81EA66956DFEAA2BFDFCF5\",\n> +       .size_bits = 521,\n> +       .hash_type = \"sha-1\",\n> +       .hash_message = \"sample\",\n> +       .r = \"00343B6EC45728975EA5CBA6659BBB6062A5FF89EEA58BE3C80B619F322C87910FE092F7D45BB0F8EEE01ED3F20BABEC079D202AE677B243AB40B5431D497C55D75D\",\n> +       .s = \"00E7B0E675A9B24413D448B8CC119D2BF7B2D2DF032741C096634D6D65D0DBE3D5694625FB9E8104D3B842C1B0E2D0B98BEA19341E8676AEF66AE4EBA3D5475D5D16\",\n> +       .expected = 0,\n> +       },\n> +       {\n> +       .test_name = \"secp521r1 sha256\",\n> +       .curve_name = \"secp521r1\",\n> +       .x = \"01894550D0785932E00EAA23B694F213F8C3121F86DC97A04E5A7167DB4E5BCD371123D46E45DB6B5D5370A7F20FB633155D38FFA16D2BD761DCAC474B9A2F5023A4\",\n> +       .y = \"00493101C962CD4D2FDDF782285E64584139C2F91B47F87FF82354D6630F746A28A0DB25741B5B34A828008B22ACC23F924FAAFBD4D33F81EA66956DFEAA2BFDFCF5\",\n> +       .size_bits = 521,\n> +       .hash_type = \"sha-256\",\n> +       .hash_message = \"sample\",\n> +       .r = \"01511BB4D675114FE266FC4372B87682BAECC01D3CC62CF2303C92B3526012659D16876E25C7C1E57648F23B73564D67F61C6F14D527D54972810421E7D87589E1A7\",\n> +       .s = \"004A171143A83163D6DF460AAF61522695F207A58B95C0644D87E52AA1A347916E4F7A72930B1BC06DBE22CE3F58264AFD23704CBB63B29B931F7DE6C9D949A7ECFC\",\n> +       .expected = 0,\n> +       },\n> +       {\n> +       .test_name = \"secp521r1 sha384\",\n> +       .curve_name = \"secp521r1\",\n> +       .x = \"01894550D0785932E00EAA23B694F213F8C3121F86DC97A04E5A7167DB4E5BCD371123D46E45DB6B5D5370A7F20FB633155D38FFA16D2BD761DCAC474B9A2F5023A4\",\n> +       .y = \"00493101C962CD4D2FDDF782285E64584139C2F91B47F87FF82354D6630F746A28A0DB25741B5B34A828008B22ACC23F924FAAFBD4D33F81EA66956DFEAA2BFDFCF5\",\n> +       .size_bits = 521,\n> +       .hash_type = \"sha-384\",\n> +       .hash_message = \"sample\",\n> +       .r = \"01EA842A0E17D2DE4F92C15315C63DDF72685C18195C2BB95E572B9C5136CA4B4B576AD712A52BE9730627D16054BA40CC0B8D3FF035B12AE75168397F5D50C67451\",\n> +       .s = \"01F21A3CEE066E1961025FB048BD5FE2B7924D0CD797BABE0A83B66F1E35EEAF5FDE143FA85DC394A7DEE766523393784484BDF3E00114A1C857CDE1AA203DB65D61\",\n> +       .expected = 0,\n> +       },\n> +       {\n> +       .test_name = \"secp521r1 sha512\",\n> +       .curve_name = \"secp521r1\",\n> +       .x = \"01894550D0785932E00EAA23B694F213F8C3121F86DC97A04E5A7167DB4E5BCD371123D46E45DB6B5D5370A7F20FB633155D38FFA16D2BD761DCAC474B9A2F5023A4\",\n> +       .y = \"00493101C962CD4D2FDDF782285E64584139C2F91B47F87FF82354D6630F746A28A0DB25741B5B34A828008B22ACC23F924FAAFBD4D33F81EA66956DFEAA2BFDFCF5\",\n> +       .size_bits = 521,\n> +       .hash_type = \"sha-512\",\n> +       .hash_message = \"sample\",\n> +       .r = \"00C328FAFCBD79DD77850370C46325D987CB525569FB63C5D3BC53950E6D4C5F174E25A1EE9017B5D450606ADD152B534931D7D4E8455CC91F9B15BF05EC36E377FA\",\n> +       .s = \"00617CCE7CF5064806C467F678D3B4080D6F1CC50AF26CA209417308281B68AF282623EAA63E5B5C0723D8B8C37FF0777B1A20F8CCB1DCCC43997F1EE0E44DA4A67A\",\n> +       .expected = 0,\n> +       },\n> +       {\n> +       .test_name = \"secp521r1 sha512 error\",\n> +       .curve_name = \"secp521r1\",\n> +       .x = \"01894550D0785932E00EAA23B694F213F8C3121F86DC97A04E5A7167DB4E5BCD371123D46E45DB6B5D5370A7F20FB633155D38FFA16D2BD761DCAC474B9A2F5023A4\",\n> +       .y = \"00493101C962CD4D2FDDF782285E64584139C2F91B47F87FF82354D6630F746A28A0DB25741B5B34A828008B22ACC23F924FAAFBD4D33F81EA66956DFEAA2BFDFCF5\",\n> +       .size_bits = 521,\n> +       .hash_type = \"sha-512\",\n> +       .hash_message = \"sample\",\n> +       .r = \"00C328FAFCBD79DD77850370C46325D987CB525569FB63C5D3BC53950E6D4C5F174E25A1EE9017B5D450606ADD152B534931D7D4E8455CC91F9B15BF05EC36E377FA\",\n> +       .s = \"00017CCE7CF5064806C467F678D3B4080D6F1CC50AF26CA209417308281B68AF282623EAA63E5B5C0723D8B8C37FF0777B1A20F8CCB1DCCC43997F1EE0E44DA4A67A\",\n> +       .expected = -EINVAL,\n> +       },\n> +};\n> +\n> +static int ecdsa_test(struct unit_test_state *uts,\n> +                     const struct ecdsa_test_vector_s *tv)\n> +{\n> +       struct ecdsa_public_key pubkey;\n> +       unsigned char x[528 / 8];\n> +       unsigned char y[528 / 8];\n> +       unsigned char hash[512 / 8];\n> +       size_t hash_len;\n> +       unsigned char signature[528 / 8 * 2];\n> +       size_t sig_len;\n> +       int ret;\n> +\n> +       sig_len = DIV_ROUND_UP(tv->size_bits, 8);\n> +\n> +       pubkey.curve_name = tv->curve_name;\n> +       ret = hex2bin(x, tv->x, strlen(tv->x) / 2);\n> +       ut_asserteq(0, ret);\n> +       pubkey.x          = x;\n> +       ret = hex2bin(y, tv->y, strlen(tv->y) / 2);\n> +       ut_asserteq(0, ret);\n> +       pubkey.y          = y;\n> +       pubkey.size_bits  = tv->size_bits;\n> +\n> +       if (!strcmp(tv->hash_type, \"sha-1\")) {\n> +#if CONFIG_IS_ENABLED(SHA1)\n> +               hash_len = SHA1_SUM_LEN;\n> +               sha1_csum_wd(tv->hash_message, strlen(tv->hash_message),\n> +                            hash, SHA1_DEF_CHUNK_SZ);\n> +#else\n> +               /* sha1 is not supported so we skip this test */\n> +               ut_reportf(\"Test %s skipped (sha1 not supported)\",\n> +                          tv->test_name);\n> +               goto out;\n> +#endif\n> +       } else if (!strcmp(tv->hash_type, \"sha-256\")) {\n> +#if CONFIG_IS_ENABLED(SHA256)\n> +               hash_len = SHA256_SUM_LEN;\n> +               sha256_csum_wd(tv->hash_message, strlen(tv->hash_message),\n> +                              hash, SHA256_DEF_CHUNK_SZ);\n> +#else\n> +               /* sha256 is not supported so we skip this test */\n> +               ut_reportf(\"Test %s skipped (sha256 not supported)\",\n> +                          tv->test_name);\n> +               goto out;\n> +#endif\n> +       } else if (!strcmp(tv->hash_type, \"sha-384\")) {\n> +#if CONFIG_IS_ENABLED(SHA384)\n> +               hash_len = SHA384_SUM_LEN;\n> +               sha384_csum_wd(tv->hash_message, strlen(tv->hash_message),\n> +                              hash, SHA384_DEF_CHUNK_SZ);\n> +#else\n> +               /* sha384 is not supported so we skip this test */\n> +               ut_reportf(\"Test %s skipped (sha384 not supported)\",\n> +                          tv->test_name);\n> +               goto out;\n> +#endif\n> +       } else if (!strcmp(tv->hash_type, \"sha-512\")) {\n> +#if CONFIG_IS_ENABLED(SHA512)\n> +               hash_len = SHA512_SUM_LEN;\n> +               sha512_csum_wd(tv->hash_message, strlen(tv->hash_message),\n> +                              hash, SHA512_DEF_CHUNK_SZ);\n> +#else\n> +               /* sha512 is not supported so we skip this test */\n> +               ut_reportf(\"Test %s skipped (sha512 not supported)\",\n> +                          tv->test_name);\n> +               goto out;\n> +#endif\n> +       } else {\n> +               ut_failf(uts, __FILE__, __LINE__, __func__, \"Unknown hash type (%s)\", tv->hash_type);\n> +               return -EINVAL;\n> +       }\n> +\n> +       ret = hex2bin(signature, tv->r, sig_len);\n> +       ut_asserteq(0, ret);\n> +       ret = hex2bin(signature + sig_len, tv->s, sig_len);\n> +       ut_asserteq(0, ret);\n> +       sig_len = sig_len * 2;\n> +\n> +       ret = ecdsa_hash_verify(&pubkey,\n> +                               hash, hash_len,\n> +                               signature, sig_len);\n> +       ut_asserteq(tv->expected, ret);\n> +\n> +#if !CONFIG_IS_ENABLED(SHA1) || !CONFIG_IS_ENABLED(SHA256) || !CONFIG_IS_ENABLED(SHA384) || !CONFIG_IS_ENABLED(SHA512)\n> + out:\n> +#endif\n> +\n> +       return 0;\n> +}\n> +\n> +static int lib_ecdsa(struct unit_test_state *uts)\n> +{\n> +       int i, ret;\n> +       size_t num_test = ARRAY_SIZE(ecdsa_test_vector);\n> +\n> +       for (i = 0; i < num_test; i++) {\n> +               ret = ecdsa_test(uts, &ecdsa_test_vector[i]);\n> +               if (ret)\n> +                       return ret;\n> +       }\n> +\n> +       return 0;\n> +}\n> +\n> +LIB_TEST(lib_ecdsa, 0);\n> --\n> 2.43.0\n>\n\nReviewed-by: Raymond Mao <raymondmaoca@gmail.com>\n\nThanks and regards,\nRaymond","headers":{"Return-Path":"<u-boot-bounces@lists.denx.de>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=EoPSV/FT;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=85.214.62.61; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)","phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=gmail.com","phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de","phobos.denx.de;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.b=\"EoPSV/FT\";\n\tdkim-atps=neutral","phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=gmail.com","phobos.denx.de;\n spf=pass smtp.mailfrom=raymondmaoca@gmail.com"],"Received":["from phobos.denx.de (phobos.denx.de [85.214.62.61])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fzrvw1tRYz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 21 Apr 2026 02:45:48 +1000 (AEST)","from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 899DB842CD;\n\tMon, 20 Apr 2026 18:45:44 +0200 (CEST)","by phobos.denx.de (Postfix, from userid 109)\n id 0C576842D2; Mon, 20 Apr 2026 18:45:43 +0200 (CEST)","from mail-vs1-xe34.google.com (mail-vs1-xe34.google.com\n [IPv6:2607:f8b0:4864:20::e34])\n (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 58F69842A4\n for <u-boot@lists.denx.de>; Mon, 20 Apr 2026 18:45:40 +0200 (CEST)","by mail-vs1-xe34.google.com with SMTP id\n ada2fe7eead31-6120528b8b4so946563137.0\n for <u-boot@lists.denx.de>; Mon, 20 Apr 2026 09:45:40 -0700 (PDT)"],"X-Spam-Checker-Version":"SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de","X-Spam-Level":"","X-Spam-Status":"No, score=-1.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,\n DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_GMAIL_RCVD,FREEMAIL_FROM,\n NO_DNS_FOR_FROM,RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,T_SPF_TEMPERROR\n autolearn=no autolearn_force=no version=3.4.2","ARC-Seal":"i=1; a=rsa-sha256; t=1776703539; cv=none;\n d=google.com; s=arc-20240605;\n b=Oq4Diy0fYlS2+X9zjBZf/TxA+IRq1kHCqIbNImFpWAD3llwZMOnokJfE7MeHbS0yOO\n PWIeaEXb0eFQmS+oZurfzlz2Sys4VWQPS519L9g+ImNCLchDsE9ryKQd89Zfr2F5uJYz\n thaV9pSPQHX/ULIGmYy7A7rPCXru9WDCe4ER149EXISdYhQ4q2ubfDIoIrbdUAzOYdc3\n mWcansprPKhyz/fMZel52Fr+Cuni3AHGcv/dpTSG2PX68IfyZnWlUBep07DOC8ZdVIPK\n 57k8J0TtaTGTp3ZhfoZ0ewYnNRO5vyX7kzjERALYwmQCnyLfF13H1HSKUcS28a2a8hbJ\n zN3g==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:dkim-signature;\n bh=UoPj7E32maWV+n255bhy4UJavERP8UMgaLq3ZWJCme4=;\n fh=0TIea/Cl2gAN9jcCm32U+9CzxRksZ6RqaQsZhYs/+AQ=;\n b=ZGA6wyk7hyIsgGA2341lL44a+xkXX2V9bsOY4H/SxrYDNdspG/b2iPt4Ac/LXFClq9\n zR3P3sUa1uUQIA8dZ4CjEqPPtD5UvGvPvOT8irwt/g/faVfQuqNO6VFDCUcDY3pErInH\n hAddSw/bymgWVYtcwnxGV6oPuL7UwG04i7VedcaSq0SO0ju6LgLPwbIMTDRLvU1f438h\n s/VPcOV4xrHPyfSVVM/WB6h9xKGl37V/sFp391D7S+NbzMdXGuv9o4jpBjk/GSeGgwwd\n ecfxuNFTHSZf/vZtno4f17cC7cQ0bZKGH2Vky5yZMfyfvgiI41RNvGFSyPMz2Qg+chNM\n bFPQ==; darn=lists.denx.de","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1776703539; x=1777308339; darn=lists.denx.de;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:from:to:cc:subject:date\n :message-id:reply-to;\n bh=UoPj7E32maWV+n255bhy4UJavERP8UMgaLq3ZWJCme4=;\n b=EoPSV/FTQewEM04jGIh+kFyMIiN7pJMLyWhxfe25C1AWO/ZONf/7WvFiC9gyTg2mVB\n LHL4/sELefpS8SXR2GQUdRqnZJOI0g++TQfTTe5Vhsu6CQdE5IV60dSfg2V6zU9Gau2L\n Bkiz/u32W31QyHjIsSiiff5m81lYY3xqPIAVMVTib8+A9huFLKHIyhg8c7Fb2o33C2mX\n 9VYWOiEBwxhBRgDlWnlV+56KZiTEhikqTe+uWSM0Yrc4dY0JQo7nghiEKHBkq+stuQ6P\n PAy6NRh230mm0yOpWeeyA52y5NDfiBPcaCaj7iULI3wVwDMtlJX0YAZ34DXAYx6so/SQ\n j+qw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776703539; x=1777308339;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=UoPj7E32maWV+n255bhy4UJavERP8UMgaLq3ZWJCme4=;\n b=hJTkOsoscRl0gCFdtTgOe0XPG1cEHsNsokuW3sIRySy3WZu9RzPnOaFVXj4znKHGLj\n Oqr31HEdBlLRq53fRq/2iSxVtB15pbgfEhjti/Y7PeypH4JfF2WupjekhBtqH4rq/WVH\n tOWXeLAlGChpnmyEEFIo+/Yijl8bmiGRhtkATeGOZxBtv56B6MHK7I/Km9XO0sA1PThB\n 26Ke5lu22zMYEdvEVsgBUImZNMhybF8GgHDAhCnXJSMo1el2CgxB9irjJ6fBMi/EGht2\n uoH6+KtyzY9rVpgdUY05/1IGUqiTnU9tU04HmckqHQjvZfbp2S2rXTYSlcupbO/0I9Jl\n MLog==","X-Forwarded-Encrypted":"i=1;\n AFNElJ8eZmvsNcz605LWimnBcdglt/v8x/+fVRzoQK1GEjyp+yQrENrXkoKZO8LuIyLCWwfZy+3qllI=@lists.denx.de","X-Gm-Message-State":"AOJu0YzsmY5GFk5imvcRMdZZ/INtgVIMUfMsZhEWc/zM6K+VoC1YKcTf\n YH2Ap50cIC0xOLHIBq/u6xe0jEd3M5lBG8jde6OCsxECyrFnJHHG+pkyImtS90HCF7UFklr70+J\n hout6XZMGnvmxat1WTclbn0OBQYxmOgg=","X-Gm-Gg":"AeBDiet+RTf9R5vC73iPaIPDjMsp++SS5999A2Uc+X0GfyWhNnK46ZMa1VsTx0eF6ND\n krC4n36CV147DufmNj624i+zIv3iJl4egZxygvbBVXrVAzkyKuObiy8oCft1HDEO8R1DagjUhI5\n scR2OBEKfwsyufcCRdjlb8dYDmC8p9il4LQBjcEBzSYorIEeURE8S4dhC1I8iWC/xVcuNLZkJjM\n WJHxfy9tMxpyxliMeW6XlSCEZLzF46zcEg2HYFIZW5nvBRdQgZ+o5bN8dtXq3rBHqen/MksANYx\n tzrjtNAILKsY80C0O/E=","X-Received":"by 2002:a05:6102:8547:20b0:61c:5310:e9d5 with SMTP id\n ada2fe7eead31-61c5310ed40mr222494137.20.1776703538836; Mon, 20 Apr 2026\n 09:45:38 -0700 (PDT)","MIME-Version":"1.0","References":"<20260417130204.49896-1-philippe.reynes@softathome.com>\n <20260417130204.49896-4-philippe.reynes@softathome.com>","In-Reply-To":"<20260417130204.49896-4-philippe.reynes@softathome.com>","From":"Raymond Mao <raymondmaoca@gmail.com>","Date":"Mon, 20 Apr 2026 12:45:27 -0400","X-Gm-Features":"AQROBzBzmYFjZiAm8ovdSGS1mFREotZI9pY2EoJi7B0JzxBVgHPep1PPWZwIsKc","Message-ID":"\n <CAMDkj5wb=k5kY5vCtSkmr7hks8CioNbgU22p+88jzLwGavgT6g@mail.gmail.com>","Subject":"Re: [PATCH v4 03/14] test: lib: ecdsa: add initial test","To":"Philippe Reynes <philippe.reynes@softathome.com>","Cc":"marko.makela@iki.fi, jonny.green@keytechinc.com, trini@konsulko.com,\n simon.glass@canonical.com, u-boot@lists.denx.de","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","X-BeenThere":"u-boot@lists.denx.de","X-Mailman-Version":"2.1.39","Precedence":"list","List-Id":"U-Boot discussion <u-boot.lists.denx.de>","List-Unsubscribe":"<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>","List-Archive":"<https://lists.denx.de/pipermail/u-boot/>","List-Post":"<mailto:u-boot@lists.denx.de>","List-Help":"<mailto:u-boot-request@lists.denx.de?subject=help>","List-Subscribe":"<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>","Errors-To":"u-boot-bounces@lists.denx.de","Sender":"\"U-Boot\" <u-boot-bounces@lists.denx.de>","X-Virus-Scanned":"clamav-milter 0.103.8 at phobos.denx.de","X-Virus-Status":"Clean"}}]