Parsec service. Update PACKAGECONFIG definitions and README.md

Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
This commit is contained in:
Anton Antonov
2021-10-22 13:44:55 +01:00
committed by Armin Kuster
parent 2bc849ada3
commit 14e1db4ce8
2 changed files with 23 additions and 10 deletions

View File

@@ -1,8 +1,7 @@
meta-parsec layer meta-parsec layer
============== ==============
This layer contains recipes for the Parsec service with Mbed-Crypto, This layer contains recipes for the Parsec service and parsec tools.
Pkcs11 and TPM providers and parsec tools.
Dependencies Dependencies
============ ============
@@ -43,9 +42,16 @@ local.conf:
IMAGE_INSTALL:append = " parsec-service" IMAGE_INSTALL:append = " parsec-service"
The Parsec service will be deployed into the image built with all the supported By default the Parsec service will be deployed into the image with
providers and with the default config file from the Parsec repository: TPM, PKCS11, MBED-CRYPTO and CRYPTOAUTHLIB providers build in
and with the default config file from the Parsec repository:
https://github.com/parallaxsecond/parsec/blob/main/config.toml https://github.com/parallaxsecond/parsec/blob/main/config.toml
You can use PACKAGECONFIG for Parsec servic recipe to define
what providers should be built in. For example,
PACKAGECONFIG:pn-parsec-service = "TPM"
The default Parsec service config file contains the MbedCrypto provider The default Parsec service config file contains the MbedCrypto provider
enabled. The config file needs to be updated to use the Parsec service enabled. The config file needs to be updated to use the Parsec service
with other providers like TPM or PKCS11. The required procedures are with other providers like TPM or PKCS11. The required procedures are
@@ -80,12 +86,19 @@ manual testing of the Parsec service:
to test the Parsec service base functionality: to test the Parsec service base functionality:
https://www.youtube.com/watch?v=ido0CyUdMHM&list=PLKjl7IFAwc4S7WQqqphCsyy6DPDxJ2Skg&index=4 https://www.youtube.com/watch?v=ido0CyUdMHM&list=PLKjl7IFAwc4S7WQqqphCsyy6DPDxJ2Skg&index=4
The parsec-tool recipe also includes `parsec-cli-tests.sh` script
which runs e2e tests against all providers enabled and configured
in Parsec service.
You can use runqemu to start a VM with a built image file and run You can use runqemu to start a VM with a built image file and run
manual tests with parsec-tool. manual tests with parsec-tool.
Enabling Parsec providers for manual testing
============================================
1. MbedCrypto provider 1. MbedCrypto provider
The default Parsec service config file contains the MbedCrypto provider The default Parsec service config file contains the MbedCrypto provider
enabled. No changes required for manual testing. enabled. No changes required.
2. PKCS11 provider 2. PKCS11 provider
The Software HSM can be used for manual testing of the provider by The Software HSM can be used for manual testing of the provider by

View File

@@ -13,15 +13,15 @@ SRC_URI += "crate://crates.io/parsec-service/${PV} \
DEPENDS = "clang-native" DEPENDS = "clang-native"
PACKAGECONFIG ??= "TPM PKCS11 MBED-CRYPTO CRYPTOAUTHLIB" PACKAGECONFIG ??= "TPM PKCS11 MBED-CRYPTO CRYPTOAUTHLIB"
PACKAGECONFIG[ALL] = "all-providers,,tpm2-tss libts,libts" PACKAGECONFIG[ALL] = "all-providers cryptoki/generate-bindings tss-esapi/generate-bindings,,tpm2-tss libts,libts"
PACKAGECONFIG[TPM] = "tpm-provider,,tpm2-tss" PACKAGECONFIG[TPM] = "tpm-provider tss-esapi/generate-bindings,,tpm2-tss"
PACKAGECONFIG[PKCS11] = "pkcs11-provider," PACKAGECONFIG[PKCS11] = "pkcs11-provider cryptoki/generate-bindings,"
PACKAGECONFIG[MBED-CRYPTO] = "mbed-crypto-provider," PACKAGECONFIG[MBED-CRYPTO] = "mbed-crypto-provider,"
PACKAGECONFIG[CRYPTOAUTHLIB] = "cryptoauthlib-provider," PACKAGECONFIG[CRYPTOAUTHLIB] = "cryptoauthlib-provider,"
PACKAGECONFIG[TS] = "trusted-service-provider,,libts,libts" PACKAGECONFIG[TS] = "trusted-service-provider,,libts,libts"
PARSEC_PROVIDERS = "${@d.getVar('PACKAGECONFIG_CONFARGS',True).replace(' ', ',')}" PARSEC_FEATURES = "${@d.getVar('PACKAGECONFIG_CONFARGS',True).strip().replace(' ', ',')}"
CARGO_BUILD_FLAGS += " --features ${PARSEC_PROVIDERS},cryptoki/generate-bindings,tss-esapi/generate-bindings" CARGO_BUILD_FLAGS += " --features ${PARSEC_FEATURES}"
inherit systemd inherit systemd
SYSTEMD_SERVICE:${PN} = "parsec.service" SYSTEMD_SERVICE:${PN} = "parsec.service"