Commit Graph

32 Commits

Author SHA1 Message Date
Javier Viguera b4df142805 trustfence-cst: upgrade to version 3.3.2
This version supports i.MX8ULP and i.MX9x devices.

NOTICE: changed the "srk_ca" parameter in ahab_pki_tree.sh from "yes" to
"no". This script is shared between cc8x and ccimx93. The imx93 does not
support that option at the moment (generation of subordinate SGK certs)
and for the cc8x we were generating them but never used them to sign
the artifacts.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2023-09-25 14:23:40 +02:00
Javier Viguera d7692af7a4 trustfence-cst: merge paches, no functional change
Merge the patches for the PKI tree generation scripts, to ease
maintenance (still keeping two separate patches for HAB4/AHAB).

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2023-09-25 14:23:40 +02:00
Hector Palacios 998598415a dey-image: generate public key after rootfs install
When TrustFence is enabled, a PKI tree is generated.
In the case of NXP platforms, the PKI contains public certificates
from which the public key needs to be extracted using an openssl
command.
In the case of STM platforms, the PKI contains directly the
public key.

In all cases, we need the public key to be installed in the
rootfs /etc/ssl/certs/ folder, so that it can be used by
swupdate to authenticate signed SWU packages.
Up to now, this was being done on the dualboot recipe, but the
installation of the public key should really be only dependant
on the fact of TF being enabled.

This commit:
 - Removes the generation of the public key from dualboot.bb.
 - Generates a patch to extract the public key from the certificate
   as part of the PKI tree generation (on NXP platforms).
 - Installs the public key during a post install function after
   the final rootfs has been created.
 - For NXP platforms, extracts the public key using openssl if
   it does not exist (for backwards compatibility).

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-08-21 09:21:30 +02:00
Hector Palacios 4e361ff449 trustfence-cst: fix issue with binutils 2.38 objcopy
There is an issue in binutils 2.38 objcopy when called
with '--weaken' flag:

  https://sourceware.org/bugzilla/show_bug.cgi?id=27493

To circumvent it, patch the trustfence-cst config.mk to
call specifically with 'weaken-symbol err_msg' which is
apparently the only symbol that's overriden by the code.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://onedigi.atlassian.net/browse/DEL-8033
https://onedigi.atlassian.net/browse/DEL-8332
2023-01-30 12:20:12 +01:00
Javier Viguera 3a147dc6cd trustfence-cst: update openssl to version 1.1.1s
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-11-03 10:34:55 +01:00
Javier Viguera 153048c2a7 trustfence-cst: restrict package to native/nativesdk
The recipe fails to build for the target, but that is expected, as this
is a tool you need to run in the host or from the toolchain/SDK, so
rework the recipes to restrict only for native and nativesdk.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-07-06 11:58:57 +02:00
Javier Viguera 47215862cf trustfence-cst: fix build in DEY 4.0
Yocto 4.0 only supports OpenSSL 3.0.x while NXP's CST (code signing
tool) is still using OpenSSL 1.1.x. So the build fails when using the
Yocto-build OpenSSL. Instead, build OpenSSL 1.1.1 as part of the build of
the CST and link statically against libcrypto, so the resulting binaries
(cst, srktool) do not depend on any specific OpenSSL version installed
on the development computer.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-07-06 11:58:21 +02:00
Gonzalo Ruiz ba035acb22 trustfence: add Trustfence tools in default toolchain
In order to perform the standalone signature process, it was required
to rebuild the Toolchain with Trustfence support enabled.

CST source code is now available for downloading in the Digi FTP, so add
Trustfence sign scripts and cst/srktool to the default toolchain for it
to be used for standalone signature without rebuilding.

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
(cherry picked from commit 2c9b721fb9ce38dcd0034e22d95db6e0ee068955)
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-07-05 17:36:12 +02:00
Javier Viguera 065cf3e9c4 kirkstone migration: general update to the new override syntax
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-06-20 11:39:57 +02:00
Arturo Buzarra a26d4661e8 trustfence-cst: fix build warning about a trailing slash in S variable
This commit fixes the following warning:
    WARNING: meta-digi/meta-digi-arm/recipes-bsp/trustfence-cst/trustfence-cst_3.3.1.bb:
    Recipe trustfence-cst sets S variable with trailing slash '/tmp/work/aarch64-dey-linux/trustfence-cst/3.3.1-r0/cst-3.3.1/',
    remove it

https://jira.digi.com/browse/DEL-7508

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2021-05-05 19:18:11 +02:00
Gonzalo Ruiz f91a1d5ebe trustfence-cst: remove premirror for cst tarball
Tarball file is going to be present in the DIGI FTP, so there is no need
for premirrors.

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2020-12-22 10:49:15 +01:00
Gonzalo Ruiz 379ab894c3 trustfence-cst: remove *.inc file
Since there is only 1 supported version of cst, the include file is
only used once.

Move all the recipe implementation to the *.bb recipe and remove the
*.inc file.

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2020-12-22 10:45:06 +01:00
Gonzalo Ruiz 4cc19e5059 trustfence-cst: fetch cst tarball from Digi FTP
Since cst-3.3.1 is now distributed with a BSD-3-Clause license, it is allowed
to distribute its source code from the Digi FTP.

Fetch the tarball from that location.

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2020-12-21 15:16:55 +01:00
Gonzalo Ruiz eb76c33166 trustfence-cst: build CST using libcrypto from SDK
CST was being built linking to the openssl libcrypto library from the host.
When the openssl version in the host didn't match the version in the SDK,
the SDK build failed like this:

Error:
 Problem 1: package nativesdk-packagegroup-sdk-host-1.0-r12.0.x86_64_nativesdk requires nativesdk-trustfence-cst, but none of the providers can be installed
  - conflicting requests
  - nothing provides libcrypto.so.1.0.0()(64bit) needed by nativesdk-trustfence-cst-3.3.1-r0.0.x86_64_nativesdk
  - nothing provides libcrypto.so.1.0.0(OPENSSL_1.0.0)(64bit) needed by nativesdk-trustfence-cst-3.3.1-r0.0.x86_64_nativesdk
  - nothing provides libcrypto.so.1.0.0(OPENSSL_1.0.1)(64bit) needed by nativesdk-trustfence-cst-3.3.1-r0.0.x86_64_nativesdk
 Problem 2: package nativesdk-packagegroup-qt5-toolchain-host-1.0-r0.0.x86_64_nativesdk requires nativesdk-packagegroup-sdk-host, but none of the providers can be installed
  - package nativesdk-packagegroup-sdk-host-1.0-r12.0.x86_64_nativesdk requires nativesdk-trustfence-cst, but none of the providers can be installed
  - conflicting requests
  - nothing provides libcrypto.so.1.0.0()(64bit) needed by nativesdk-trustfence-cst-3.3.1-r0.0.x86_64_nativesdk
  - nothing provides libcrypto.so.1.0.0(OPENSSL_1.0.0)(64bit) needed by nativesdk-trustfence-cst-3.3.1-r0.0.x86_64_nativesdk
  - nothing provides libcrypto.so.1.0.0(OPENSSL_1.0.1)(64bit) needed by nativesdk-trustfence-cst-3.3.1-r0.0.x86_64_nativesdk

Fix that by adding the native dependencies include and lib folders to
the CST build. Also add openssl-native as a dependency for the SDK build,
otherwise it wont link to the SDK libcrypto library.

Additionally, to allow running CST in a host machine where the openssl version
does not match the version in the SDK, libcrypto library is statically linked.

https://jira.digi.com/browse/DEL-7346

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
(cherry picked from commit a95b3ad602)
2020-12-18 17:19:46 +01:00
Gabriel Valcazar 4d0ae35a52 trustfence-cst: add byacc-native as a dependency when building the SDK
The CST package requires byacc to compile, and even though this dependency is
met when building images for the target, said dependency needs to be made
explicit when the package is built for the SDK in order to avoid build errors.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2020-09-16 14:31:42 +02:00
Arturo Buzarra 68720f869b trustfence-cst: add support for cst v3.3.1
This version supports encryption for devices with Advanced High Assurance Boot
(AHAB) capabilities. This commit also updates and simplifies Digi custom
patches.

https://jira.digi.com/browse/DEL-7175

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2020-09-03 12:04:30 +02:00
Hector Palacios 8320168821 trustfence: homogenize SIGN_MODE variables
* prefix TRUSTFENCE_ to variable SIGN_MODE for DEY
* prefix CONFIG_ to variable SIGN_MODE for script

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2020-02-12 18:50:19 +01:00
Mike Engel 5beec04b6a trustfence: Add Trustfence support for CCMX8X
This commit adds Trustfence support for the CCMX8X
platform.

Signed-off-by: Mike Engel <Mike.Engel@digi.com>

https://jira.digi.com/browse/DEL-6917
2020-02-04 12:20:38 +01:00
Gabriel Valcazar ec7511ee8f trustfence-cst: add support for cst v3.1.0
This version supports OpenSSL v1.1.0 by default, which is used in DEY 2.6.
Trying to build older versions of the package will result in failures, so
remove support for said versions entirely.

Our patches apply cleanly except for the hab4_pki_tree.sh automation patch,
which needs a small tweak so it can get applied over the latest version of the
script.

https://jira.digi.com/browse/DEL-6476

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-03-06 10:58:33 +01:00
Arturo Buzarra 5eb88b8c5d sumo migration: meta-digi: replace the deprecated base_conditional function
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2019-01-11 13:26:44 +01:00
Jose Diaz de Grenu f3c7f91d90 trustfence-cst: include in SDK
Generate and include the host tools in the SDK when Trustfence is enabled.
This makes it easier to use the standalone signing and encrypting scripts.

Signed-off-by: Jose Diaz de Grenu <Jose.DiazdeGrenu@digi.com>
2018-01-29 18:33:53 +01:00
Jose Diaz de Grenu 0b7da46eb0 trustfence-cst: avoid warnings about cst tarball
When parsing the recipe, a warning is shown because the tarball is only found
in the downloads folder. However this is expected as it cannot be distributed.

As a workaround, add the tarball to the SRC_URI variable only when Trustfence
is active. That way the warning is not shown in all other cases.

This was incorrectly removed in commit 14fc51147f.

Signed-off-by: Jose Diaz de Grenu <Jose.DiazdeGrenu@digi.com>
2017-11-24 17:26:20 +01:00
Jose Diaz de Grenu 14fc51147f trustfence-cst: add support for CST 2.3.3
https://jira.digi.com/browse/DEL-5337

Signed-off-by: Jose Diaz de Grenu <Jose.DiazdeGrenu@digi.com>
2017-11-23 14:15:14 +01:00
Javier Viguera 116d532813 trustfence-cst-native: add premirror for CST package
This will allow to get the package from a premirror in case it is not
already downloaded in the DL_DIR.

https://jira.digi.com/browse/DEL-3051

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-03-23 12:36:57 +01:00
Javier Viguera 165f58e9df trustfence-cst-native: coding style, no functional change
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-03-23 12:36:57 +01:00
Javier Viguera bbc03c5935 trustfence-cst: refresh patches with git
Refresh the patches with GIT so they apply cleanly using "git am".
Otherwise they fail with:

Applying: openssl_helper: use /dev/urandom as seed source
error: corrupt patch at line 16
Patch failed at 0003 openssl_helper: use /dev/urandom as seed source

Applying: hab4_pki_tree.sh: usa a random password for the default PKI generation
warning: keys/hab4_pki_tree.sh has type 100755, expected 100644

Notice that they were not failing in Yocto, as it does not use "git am"
to apply patches, but it's better to have the patches correctly done.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-02-10 19:37:55 +01:00
Javier Viguera ab5f50e16a meta-digi: trailing whitespace cleanup
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2016-08-31 13:52:15 +02:00
Diaz de Grenu, Jose 5a8e57da72 meta-digi-arm: trustfence-cst: use random password for generated PKI trees
Signed-off-by: Diaz de Grenu, Jose <Jose.DiazdeGrenu@digi.com>
2016-08-01 20:00:09 +02:00
Diaz de Grenu, Jose 36d7311459 meta-digi-arm: trustfence-cst: fix native recipe and Makefile
This package is native only, this patch ensures it can only be built
natively and fix the following problems:
* Add openssl-native rather than openssl to the dependencies.
* Use the $(CC) $(LDFLAGS) and $(CFLAGS) that Yocto provides to avoid a
  compilation error.

Signed-off-by: Diaz de Grenu, Jose <Jose.DiazdeGrenu@digi.com>
2016-07-29 17:08:25 +02:00
Diaz de Grenu, Jose 37eb7db2dc meta-digi-arm: trustfence-cst: use /dev/urandom
This is needed in order to avoid indefinitely blocking.

Signed-off-by: Diaz de Grenu, Jose <Jose.DiazdeGrenu@digi.com>
2016-07-19 15:48:12 +02:00
Diaz de Grenu, Jose ceb9ca1537 trustfence-cst: hab4_pki_tree-sh: automate script
This allows to automatically create a secure PKI tree without user
interaction.

https://jira.digi.com/browse/DUB-618

Signed-off-by: Diaz de Grenu, Jose <Jose.DiazdeGrenu@digi.com>
2016-07-19 15:48:12 +02:00
Diaz de Grenu, Jose 8ac7da51ef meta-digi-arm: add recipe for the Code Signing Tools
NXP Code signing Tool for the High Assurance Boot library is needed for
signing and encrypting different artifacts (U-Boot image, uImage, ...).

As the CST cannot be included in DEY, the user needs to download the
tarball and add it to the recipe folder.

https://jira.digi.com/browse/DUB-618

Signed-off-by: Diaz de Grenu, Jose <Jose.DiazdeGrenu@digi.com>
2016-07-19 15:48:12 +02:00