Commit Graph

29 Commits

Author SHA1 Message Date
Hector Palacios fbc92e45b3 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
(cherry picked from commit 4e361ff449)
2023-01-30 12:21:41 +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