Commit Graph

88 Commits

Author SHA1 Message Date
Javier Viguera 9d40092ce5 meta-digi: rework u-boot support
Instead of overriding the whole do_compile function, just to reconfigure
u-boot for Trustfence, create a do_configure pre-function that takes care
of that. This allows the removal of duplicated code.

Also, disable the generation of u-boot environment artifacts. We are
not using them and so many u-boot artifacts in the deploy directory
are confusing.

Finally, adjust the names of the TF u-boot artifacts in the do_deploy
append function.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-12-22 12:37:46 +01:00
Gabriel Valcazar 712907b1c3 trustfence: add artifact authentication to U-Boot in signed image builds
Signed image support in U-Boot has been split into two separate configurations:
one that adds artifact authentication support and another that signs the U-Boot
binary at the end of the build. Reflect this change in meta-digi.

https://onedigi.atlassian.net/browse/DEL-7862

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2022-03-22 12:47:32 +01:00
Hector Palacios 7c1ab66835 trustfence: avoid encryption of read-only SQUASHFS
SQUASHFS read-only rootfs cannot be unencrypted on-the-fly
so skip encryption if read-only-rootfs is active.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-12-01 13:11:37 +01:00
Hector Palacios f4f84881d7 trustfence: if read-only rootfs enabled, add config switch to U-Boot
When TrustFence and a read-only rootfs are enabled, U-Boot must
authenticate the SQUASHFS root file system. Add config switch to force
U-Boot to authenticate this image.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-12-01 13:10:44 +01:00
Gabriel Valcazar e2cd4f6d9a trustfence-initramfs: remove support for platforms with NAND internal storage
This initramfs only makes sense in platforms with an eMMC as the internal
storage, due to how the partition encryption support is implemented. In
plaatforms that use NAND instead, ths initramfs offers no functionality and
increases the recovery image size, so remove it.

https://onedigi.atlassian.net/browse/DEL-7534

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-05-27 12:10:44 +02:00
Gabriel Valcazar 82a76a7106 trustfence: split filesystem encryption support into two variables
Previously, TRUSTFENCE_INITRAMFS_IMAGE was the only variable used to configure
rootfs encryption. Now that any partition can be encrypted and the rootfs
encryption still needs to be handled differently, use two variables instead.

    * TRUSTFENCE_ENCRYPT_PARTITIONS to control partition encryption in general
    * TRUSTFENCE_ENCRYPT_ROOTFS to control rootfs encryption

As with most trustfence functionality, enable both by default. Leave
TRUSTFENCE_INITRAMFS_IMAGE as an internal variable only.

https://onedigi.atlassian.net/browse/DEL-7174

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-05-27 12:10:43 +02:00
Gonzalo Ruiz 39baff1e60 trustfence: add new TRUSTFENCE_SRK_REVOKE_MASK variable
In order to revoke SRKs in platforms with AHAB we need to set a mask
during the signing/encryption process.

Create new TRUSTFENCE_SRK_REVOKE_MASK variable to export the
SRK_REVOKE_MASK variable required by the imx-boot signing script.

The revoke mask is not necessary for signing/encryption of other artifacts,
so set it by default to 0x0.

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2021-01-13 17:00:29 +01:00
Gonzalo Ruiz 25c1ea59b0 trustfence: Add custom CONFIG_SIGN_MODE to UBOOT_EXTRA_CONF
This configuration is required to sign and encrypt U-Boot images during
build time, as it is done for ccimx6ul platform.

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2020-04-08 14:23:18 +02:00
Hector Palacios 6c9341bd8a trustfence: disable environment encryption for CC8X
Environment encryption is not yet supported in U-Boot.
Unset TRUSTFENCE_ENCRYPT_ENVIRONMENT on the machine configuration
and remove the platform conditional on the class.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2020-02-12 18:50:19 +01: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 909a8c9e83 Revert "ccimx8x: prohibit dey-image-qt from building when trustfence is enabled"
Added Trusfence support for the CC8X.

This reverts commit 8b5c710036.

https://jira.digi.com/browse/DEL-6917
2020-02-04 12:20:38 +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
Hector Palacios 8b5c710036 Revert "Revert "ccimx8x: prohibit dey-image-qt from building when trustfence is enabled""
Trustfence is not yet fully supported for the CC8X.
Retore the warning.

This reverts commit 78534ca779.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2019-09-03 18:42:42 +02:00
Mike Engel 78534ca779 Revert "ccimx8x: prohibit dey-image-qt from building when trustfence is enabled"
This reverts commit dce71c9348.
Add Trustfence support for the MX8X platform

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2019-07-08 17:41:01 +02:00
Gabriel Valcazar dce71c9348 ccimx8x: prohibit dey-image-qt from building when trustfence is enabled
The message log level is "fatal" so the compilation ends as soon as possible.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2018-07-06 13:46:23 +02:00
Jose Diaz de Grenu 80626aa749 swupdate: update to 2017.07
Rename recipe and fix the path of the progress binary. Also on the
rocko branch of meta-swupdate several signing mechanisms are
supported, and the value is used as a string to determine which one
to use.

Signed-off-by: Jose Diaz de Grenu <Jose.DiazdeGrenu@digi.com>
2018-01-23 14:33:17 +01:00
Tatiana Leon 38740f9a04 trustfence: get bytes from the console passphrase to feed the hash method
In Python 3, feeding string objects into hash method is not supported. Hashes
work on bytes, not on characters.

So we use 'encode()' on the passphrase to get the bytes object.

See:
 * https://docs.python.org/3/howto/pyporting.html#text-versus-binary-data
 * https://docs.python.org/3/library/hashlib.html#module-hashlib

This commit fixes build failures as:

Exception: TypeError: Unicode-objects must be encoded before hashing

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

Signed-off-by: Tatiana Leon <tatiana.leon@digi.com>
2017-03-27 10:38:13 +02:00
David Escalona 00d22c3d7e swu-sign: do not expand private sign key in TrustFence class
- Trying to set the complete SWU packages signature key in the
  TrustFence class was causing a build error when keys were not
  yet generated. To avoid this, set only the key wildcard in the
  TrustFence class and expand the variable in the SWU packages
  recipes, when keys already exist.

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

Signed-off-by: David Escalona <david.escalona@digi.com>
2017-03-15 12:02:17 +01:00
David Escalona 319576805a swupdate: add sign and hash support to swupdate packages generation
- Enabled signing support while generating the swupdate
  packages for 'core-image-base' and 'dey-image-qt'. The
  signing support is only enabled when 'TUSTFENCE_SIGN=1'
  and requires the recipe to set the private key that will
  be used to generate the signature.
- Enabled hash support while generating the swupdate
  packages for 'core-image-base' and 'dey-image-qt'. The
  hash support requires the sw-description files to include
  a new line for each image and/or file that will be added
  to the update package. The hash is automatically calculated
  and replaced in the sw-description files.

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

Signed-off-by: David Escalona <david.escalona@digi.com>
2017-03-07 17:04:21 +01:00
Javier Viguera 55ba548d61 trustfence: add 'expand' parameter to getVar calls
Starting with Yocto 2.1, the 'expand' parameter of 'getVar' function is
mandatory. See:

http://www.yoctoproject.org/docs/2.2.1/ref-manual/ref-manual.html#migration-2.1-expand-parameter-to-getvar-and-getvarflag-now-mandatory

This fixes build failures as:

Exception: TypeError: getVar() missing 1 required positional argument: 'expand'

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

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-03-01 18:06:36 +01:00
Diaz de Grenu, Jose 262ade8908 Revert "trustfence: disable SDCARD image generation when encryption is enabled"
When encryption is enabled, the signed U-Boot image will be used for the uSD.
This allows the uSD image to boot the device and recover it from the U-Boot
console, which is its main purpose. Nevertheless, the uSD image will not be
able to boot Linux.

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

This reverts commit 2e13e194d9.
2016-10-31 17:03:26 +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
Javier Viguera 2e13e194d9 trustfence: disable SDCARD image generation when encryption is enabled
Currently we don't support booting encrypted images from an SDCARD, so
just disable the generation of such images.

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

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2016-08-10 16:45:38 +02:00
Diaz de Grenu, Jose 6746254558 meta-digi-dey: trustfence: add Yocto macro to unlock key revocation
By default, on closed devices you cannot revoke any key. To do so, it is
required to compile a U-Boot which instructs the HAB not to set the sticky
bit which write protects that field in the OCOTP controller.

This patch introduces a Yocto macro which allows to configure U-Boot in
that way.

In the ConnectCore 6, the value of this settings is ignored, because HAB never
sets the sticky bit which write protects that field.

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

Signed-off-by: Diaz de Grenu, Jose <Jose.DiazdeGrenu@digi.com>
2016-08-09 20:01:59 +02:00
Diaz de Grenu, Jose a9b8d74041 Revert "meta-digi-dey: trustfence: disable encryption for the ConnectCore 6UL"
Encryption is now supported in the ConnectCore 6UL

This reverts commit 454fff56ba.

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

Signed-off-by: Diaz de Grenu, Jose <Jose.DiazdeGrenu@digi.com>
2016-08-08 13:15:22 +02:00
Diaz de Grenu, Jose 454fff56ba meta-digi-dey: trustfence: disable encryption for the ConnectCore 6UL
Encryption of U-Boot and kernel images is not yet supported in the Connect
Core 6 UL.

Signed-off-by: Diaz de Grenu, Jose <Jose.DiazdeGrenu@digi.com>
2016-08-04 10:34:46 +02:00
Alex Gonzalez 0588b4b388 meta-digi-dey: trustfence: Do not disable console access by default.
While performing usability testing on the TrustFence documentation, it has
been noted that in order to follow the secure boot instructions the
console needs to be enabled.

We have now moved the secure console section to the end of the
documentation so that disabling the console is the last configuration to
make in a secure system.

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
2016-08-03 15:55:18 +02:00
Diaz de Grenu, Jose 9e5ee61851 meta-digi: use CAAM for environment encryption
https://jira.digi.com/browse/DUB-652

Signed-off-by: Diaz de Grenu, Jose <Jose.DiazdeGrenu@digi.com>
2016-08-01 20:00:11 +02:00
Diaz de Grenu, Jose f23d8c6abb trustfence: simplify TRUSTFENCE_ configuration macros
Adapt the U-Boot recipe to the last U-Boot Kconfig entries changes.

Simplify the name of some TRUSTFENCE_ configuration macros. These were
used to configure U-Boot, but they will also configure the uImage signature
and encryption processes.

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

Signed-off-by: Diaz de Grenu, Jose <Jose.DiazdeGrenu@digi.com>
2016-07-19 15:48:12 +02:00
Javier Viguera 6f8c58291e meta-digi: add support for Trustfence secure rootfs
When Trustfence is enabled, this adds a dependence on the TF initramfs,
so it's built and added to the boot image.

It also modifies the u-boot boot script on the fly, to boot correctly
using the Trustfence initramfs.

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

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2016-07-07 18:04:08 +02:00
Diaz de Grenu, Jose d223bc68c2 meta-digi-dey: trustfence: fix TRUSTFENCE_UBOOT_DEK_SIZE setting
The TRUSTFENCE_UBOOT_DEK_SIZE Yocto macro maps to the UBOOT_DEK_SIZE U-Boot
Kconfig entry, which is defined as a choice entry. This makes necessary
to explicitly define the choice Kconfig entry for the configuration to
work.

Signed-off-by: Diaz de Grenu, Jose <Jose.DiazdeGrenu@digi.com>
2016-07-01 16:26:53 +02:00
Diaz de Grenu, Jose a91cc4e796 meta-digi-arm: u-boot: fix trustfence checks logic
There are several possible values for TRUSTFENCE_UBOOT_ENV_DEK:

* Not defined: if the trustfence support is not included.
               Should not include the feature.
* 32 characters: when defining a valid key.
                 Should include the feature.
* "0": when explicitly disabling the feature.
       Should not include the feature
* <other>: Invalid value, should trigger the error.

This commits fixes the logic so that 'None' (no defined) is taken as a valid
value.

Signed-off-by: Diaz de Grenu, Jose <Jose.DiazdeGrenu@digi.com>
2016-07-01 16:26:53 +02:00
Mike Engel f88ea99ed3 ccimx6ul: Removed CONSOLE_ENABLE_GPIO_NR platform specific naming.
This commit changes the CONFIG_CCIMX6SBC_CONSOLE_ENABLE_GPIO_NR define
into a platform independent setting.

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

https://jira.digi.com/browse/DEL-2641
2016-06-29 17:23:21 +02:00
Jose Diaz de Grenu de Pedro 3ef4fe1f34 meta-digi-dey: trustfence: add default values for secure boot
Signed-off-by: Jose Diaz de Grenu de Pedro <Jose.DiazdeGrenudePedro@digi.com>
2016-06-20 09:39:04 +02:00
Jose Diaz de Grenu de Pedro 5c6de74288 meta-digi-dey: trustfence: Explicitely check for "1" for variable enable.
https://jira.digi.com/browse/DEL-2603

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
Signed-off-by: Jose Diaz de Grenu de Pedro <Jose.DiazdeGrenudePedro@digi.com>
2016-06-20 09:39:04 +02:00
Alex Gonzalez ac740b7fdc meta-digi-dey: trustfence: Explicitely check for "1" for variable enable
https://jira.digi.com/browse/DEL-2603

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
2016-06-10 09:48:05 +02:00
Jose Diaz de Grenu de Pedro 5f45a87ebd meta-digi-arm: trustfence: implement Yocto secure boot configuration
Implement the set of TRUSTFENCE_ macros to configure each secure boot feature
available in U-Boot.

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

Signed-off-by: Jose Diaz de Grenu de Pedro <Jose.DiazdeGrenudePedro@digi.com>
2016-06-03 17:46:52 +02:00
Alex Gonzalez 2e95ff7519 meta-digi: Add TrustFence configuration class.
This commit adds a trustfence class to encapsulate all trustfence
configurations.

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

Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
2016-05-31 17:51:00 +02:00