summaryrefslogtreecommitdiffstats
path: root/recipes-sota/aktualizr/aktualizr-implicit-prov.bb
diff options
context:
space:
mode:
authorAnton Gerasimov <anton@advancedtelematic.com>2018-02-15 18:17:36 +0100
committerAnton Gerasimov <anton@advancedtelematic.com>2018-02-15 18:17:36 +0100
commitc6876b9c0a3b5109b21ff6a7169471511f7c2200 (patch)
tree2995d17ee30ae763665bcf011abc08c4cd8759bb /recipes-sota/aktualizr/aktualizr-implicit-prov.bb
parente9886a382edfe447880aec3a2ca4a08f65892181 (diff)
downloadmeta-updater-wip/cacert.tar.gz
Add provisioning with CAwip/cacert
Diffstat (limited to 'recipes-sota/aktualizr/aktualizr-implicit-prov.bb')
-rw-r--r--recipes-sota/aktualizr/aktualizr-implicit-prov.bb39
1 files changed, 35 insertions, 4 deletions
diff --git a/recipes-sota/aktualizr/aktualizr-implicit-prov.bb b/recipes-sota/aktualizr/aktualizr-implicit-prov.bb
index cf3d22c..c8d0c7e 100644
--- a/recipes-sota/aktualizr/aktualizr-implicit-prov.bb
+++ b/recipes-sota/aktualizr/aktualizr-implicit-prov.bb
@@ -5,7 +5,7 @@ SECTION = "base"
5LICENSE = "MPL-2.0" 5LICENSE = "MPL-2.0"
6LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=9741c346eef56131163e13b9db1241b3" 6LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=9741c346eef56131163e13b9db1241b3"
7 7
8DEPENDS = "aktualizr-native" 8DEPENDS = "aktualizr-native openssl-native"
9RDEPENDS_${PN} = "aktualizr" 9RDEPENDS_${PN} = "aktualizr"
10 10
11SRC_URI = " \ 11SRC_URI = " \
@@ -17,12 +17,43 @@ PR = "1"
17require environment.inc 17require environment.inc
18require credentials.inc 18require credentials.inc
19 19
20export SOTA_CACERT_PATH
21export SOTA_CAKEY_PATH
20do_install() { 22do_install() {
21 install -d ${D}${libdir}/sota 23 install -d ${D}${libdir}/sota
22 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then 24
23 aktualizr_implicit_writer -c ${SOTA_PACKED_CREDENTIALS} \ 25 if [ -z ${SOTA_CACERT_PATH} ]; then
24 -i ${STAGING_DIR_NATIVE}${libdir}/sota/sota_implicit_prov.toml -o ${D}${libdir}/sota/sota.toml -p ${D} 26 SOTA_CACERT_PATH=${DEPLOY_DIR_IMAGE}/CA/cacert.pem
27 SOTA_CAKEY_PATH=${DEPLOY_DIR_IMAGE}/CA/ca.private.pem
28 mkdir -p ${DEPLOY_DIR_IMAGE}/CA
29 bbwarn "SOTA_CACERT_PATH is not specified, use default one at $SOTA_CACERT_PATH"
30
31 if [ ! -f ${SOTA_CACERT_PATH} ]; then
32 bbwarn "${SOTA_CACERT_PATH} doesn't exist, generate a new CA"
33 SOTA_CACERT_DIR_PATH="$(dirname "$SOTA_CACERT_PATH")"
34 openssl genrsa -out ${SOTA_CERTCA_DIR_PATH}/ca.private.pem 4096
35 openssl req -key ${SOTA_CERTCA_DIR_PATH}/ca.private.pem -new -x509 -days 7300 -out ${SOTA_CACERT_PATH} -subj "/C=DE/ST=Berlin/O=Reis und Kichererbsen e.V/commonName=meta-updater" -batch
36 bbwarn "${SOTA_CACERT_PATH} has been created, you'll need to upload it to the server"
37 fi
38 fi
39
40 if [ -z ${SOTA_CAKEY_PATH} ]; then
41 bberror "SOTA_CAKEY_PATH should be set when using implicit provisioning"
25 fi 42 fi
43
44 if [ -z "${SOTA_PACKED_CREDENTIALS}" ]; then
45 bberror "SOTA_PACKED_CREDENTIALS are required for implicit provisioning"
46 fi
47
48 install -d ${D}${libdir}/sota
49 install -d ${D}${localstatedir}/sota
50 install -m 0644 ${STAGING_DIR_NATIVE}${libdir}/sota/sota_implicit_prov.toml ${D}${libdir}/sota/sota.toml
51 aktualizr_cert_provider --credentials ${SOTA_PACKED_CREDENTIALS} \
52 --device-ca ${SOTA_CACERT_PATH} \
53 --device-ca-key ${SOTA_CAKEY_PATH} \
54 -r \
55 --local ${D}${localstatedir}/sota \
56 --config ${D}{libdir}/sota/sota.toml
26} 57}
27 58
28FILES_${PN} = " \ 59FILES_${PN} = " \