diff options
-rw-r--r-- | meta-oe/classes/signing.bbclass | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/meta-oe/classes/signing.bbclass b/meta-oe/classes/signing.bbclass index ee32cc12f7..7bc3e7cb12 100644 --- a/meta-oe/classes/signing.bbclass +++ b/meta-oe/classes/signing.bbclass | |||
@@ -180,6 +180,27 @@ signing_has_ca() { | |||
180 | return $? | 180 | return $? |
181 | } | 181 | } |
182 | 182 | ||
183 | # signing_get_intermediate_certs <cert_name> | ||
184 | # | ||
185 | # return a list of role/name intermediary CA certificates for a given | ||
186 | # <cert_name> by walking the chain setup with signing_import_set_ca. | ||
187 | # | ||
188 | # The returned list will not include the the root CA, and can | ||
189 | # potentially be empty. | ||
190 | # | ||
191 | # To be used with SoftHSM. | ||
192 | signing_get_intermediate_certs() { | ||
193 | local cert_name="${1}" | ||
194 | local intermediary="" | ||
195 | while signing_has_ca "${cert_name}"; do | ||
196 | cert_name="$(signing_get_ca ${cert_name})" | ||
197 | if signing_has_ca "${cert_name}"; then | ||
198 | intermediary="${intermediary} ${cert_name}" | ||
199 | fi | ||
200 | done | ||
201 | echo "${intermediary}" | ||
202 | } | ||
203 | |||
183 | # signing_get_root_cert <cert_name> | 204 | # signing_get_root_cert <cert_name> |
184 | # | 205 | # |
185 | # return the role/name of the CA root certificate for a given | 206 | # return the role/name of the CA root certificate for a given |