| # SPDX-License-Identifier: GPL-2.0-or-later | |
| # Copyright 2025 Cherry Embedded Solutions GmbH | |
| # | |
| """Bintool implementation for SoftHSMv2 (softhsm2-util)""" | |
| from binman import bintool | |
| class Bintoolsofthsm2_util(bintool.Bintool): | |
| """SoftHSMv2 -- support tool for libsofthsm2 | |
| This bintool wraps the `softhsm2-util` command shipped with SoftHSMv2 (a | |
| software implementation of a PKCS#11 token). Binman uses this wrapper only | |
| to check that softhsm2-util is installed (and to fetch it if missing); any | |
| actual token initialisation or key import for signing FIT images or | |
| capsules is done outside binman, typically via mkimage and the OpenSSL | |
| PKCS#11 engine. | |
| See https://www.opendnssec.org/softhsm/ for more details. | |
| """ | |
| def __init__(self, name): | |
| super().__init__('softhsm2-util', | |
| 'SoftHSMv2 support tool for libsofthsm2', | |
| version_args='-v') | |
| def fetch(self, method): | |
| """Install softhsm2-util via APT """ | |
| if method != bintool.FETCH_BIN: | |
| return None | |
| return self.apt_install('softhsm2') |