summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-oe/classes/signing.bbclass42
1 files changed, 32 insertions, 10 deletions
diff --git a/meta-oe/classes/signing.bbclass b/meta-oe/classes/signing.bbclass
index 8af7bbf8e0..c768371151 100644
--- a/meta-oe/classes/signing.bbclass
+++ b/meta-oe/classes/signing.bbclass
@@ -123,15 +123,26 @@ signing_import_define_role() {
123 echo "_SIGNING_PKCS11_MODULE_${role}_=\"softhsm\"" >> $_SIGNING_ENV_FILE_ 123 echo "_SIGNING_PKCS11_MODULE_${role}_=\"softhsm\"" >> $_SIGNING_ENV_FILE_
124} 124}
125 125
126# signing_import_cert_from_der <role> <der> 126# signing_import_cert_from_der <cert_name> <der>
127# 127#
128# Import a certificate from DER file to a role. To be used 128# Import a certificate from DER file to a cert_name.
129# with SoftHSM. 129# Where the <cert_name> can either be a previously setup
130# signing_import_define_role linking the certificate to a signing key,
131# or a new identifier when dealing with a standalone certificate.
132#
133# To be used with SoftHSM.
130signing_import_cert_from_der() { 134signing_import_cert_from_der() {
131 local role="${1}" 135 local cert_name="${1}"
132 local der="${2}" 136 local der="${2}"
133 137
134 signing_pkcs11_tool --type cert --write-object "${der}" --label "${role}" 138 # check wether the cert_name/role needs to be defined first,
139 # or do so otherwise
140 local uri=$(siging_get_uri $cert_name)
141 if [ -z "$uri" ]; then
142 signing_import_define_role "$cert_name"
143 fi
144
145 signing_pkcs11_tool --type cert --write-object "${der}" --label "${cert_name}"
135} 146}
136 147
137# signing_import_cert_chain_from_pem <role> <pem> 148# signing_import_cert_chain_from_pem <role> <pem>
@@ -164,17 +175,28 @@ signing_import_cert_chain_from_pem() {
164 done 175 done
165} 176}
166 177
167# signing_import_cert_from_pem <role> <pem> 178# signing_import_cert_from_pem <cert_name> <pem>
168# 179#
169# Import a certificate from PEM file to a role. To be used 180# Import a certificate from PEM file to a cert_name.
170# with SoftHSM. 181# Where the <cert_name> can either be a previously setup
182# signing_import_define_role linking the certificate to a signing key,
183# or a new identifier when dealing with a standalone certificate.
184#
185# To be used with SoftHSM.
171signing_import_cert_from_pem() { 186signing_import_cert_from_pem() {
172 local role="${1}" 187 local cert_name="${1}"
173 local pem="${2}" 188 local pem="${2}"
174 189
190 # check wether the cert_name/role needs to be defined first,
191 # or do so otherwise
192 local uri=$(siging_get_uri $cert_name)
193 if [ -z "$uri" ]; then
194 signing_import_define_role "$cert_name"
195 fi
196
175 openssl x509 \ 197 openssl x509 \
176 -in "${pem}" -inform pem -outform der | 198 -in "${pem}" -inform pem -outform der |
177 signing_pkcs11_tool --type cert --write-object /proc/self/fd/0 --label "${role}" 199 signing_pkcs11_tool --type cert --write-object /proc/self/fd/0 --label "${cert_name}"
178} 200}
179 201
180# signing_import_pubkey_from_der <role> <der> 202# signing_import_pubkey_from_der <role> <der>