]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
tpm2-util: allow to control if legend and/or footer shown by tpm2_list_devices()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 12 Dec 2024 02:01:00 +0000 (11:01 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 12 Dec 2024 06:21:16 +0000 (15:21 +0900)
src/creds/creds.c
src/cryptenroll/cryptenroll.c
src/measure/measure.c
src/pcrextend/pcrextend.c
src/repart/repart.c
src/shared/tpm2-util.c
src/shared/tpm2-util.h
src/tpm2-setup/tpm2-setup.c

index 7635aee37ca3a761bac21bbaa7f5c51473ae675e..866fcd63671a2c6ed2e03af5d53a3859a47df7ac 100644 (file)
@@ -911,7 +911,7 @@ static int parse_argv(int argc, char *argv[]) {
 
                 case ARG_TPM2_DEVICE:
                         if (streq(optarg, "list"))
-                                return tpm2_list_devices();
+                                return tpm2_list_devices(arg_legend, arg_quiet);
 
                         arg_tpm2_device = streq(optarg, "auto") ? NULL : optarg;
                         break;
index 3fb58c2874bda7defb53d3d6a0d061202076a637..a3ca50fd0d69cf293e8ccc0e904319dd8678c5ad 100644 (file)
@@ -493,7 +493,7 @@ static int parse_argv(int argc, char *argv[]) {
                         _cleanup_free_ char *device = NULL;
 
                         if (streq(optarg, "list"))
-                                return tpm2_list_devices();
+                                return tpm2_list_devices(/* legend = */ true, /* quiet = */ false);
 
                         if (arg_enroll_type >= 0 || arg_tpm2_device)
                                 return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
index e583444e0bf6bcb1447d5cacb5efeb49a344dab6..22dd18312537adde8611641f1e41916cf05b8562 100644 (file)
@@ -295,7 +295,7 @@ static int parse_argv(int argc, char *argv[]) {
                         _cleanup_free_ char *device = NULL;
 
                         if (streq(optarg, "list"))
-                                return tpm2_list_devices();
+                                return tpm2_list_devices(/* legend = */ true, /* quiet = */ false);
 
                         if (!streq(optarg, "auto")) {
                                 device = strdup(optarg);
index 6bdb5418b53faf4c04dbd65a6dc95d830eb17ccf..ef4d1a1f17895f652f65b3dc57c77473045eae7c 100644 (file)
@@ -131,7 +131,7 @@ static int parse_argv(int argc, char *argv[]) {
                         _cleanup_free_ char *device = NULL;
 
                         if (streq(optarg, "list"))
-                                return tpm2_list_devices();
+                                return tpm2_list_devices(/* legend = */ true, /* quiet = */ false);
 
                         if (!streq(optarg, "auto")) {
                                 device = strdup(optarg);
index 7e6fd2a29a4d9486c503ab85840db2b647af701b..e485cd5231d5c1e6b33b6854a20f308bc3abd331 100644 (file)
@@ -8160,7 +8160,7 @@ static int parse_argv(int argc, char *argv[], X509 **ret_certificate, EVP_PKEY *
                         _cleanup_free_ char *device = NULL;
 
                         if (streq(optarg, "list"))
-                                return tpm2_list_devices();
+                                return tpm2_list_devices(/* legend = */ true, /* quiet = */ false);
 
                         if (!streq(optarg, "auto")) {
                                 device = strdup(optarg);
index 36a0f906daae412858801ccb5d27e331cddfaaa7..252136af3e13ec0e70a44e2c6684705f100450ad 100644 (file)
@@ -6165,7 +6165,7 @@ int tpm2_unseal_data(
 }
 #endif /* HAVE_TPM2 */
 
-int tpm2_list_devices(void) {
+int tpm2_list_devices(bool legend, bool quiet) {
 #if HAVE_TPM2
         _cleanup_(table_unrefp) Table *t = NULL;
         _cleanup_closedir_ DIR *d = NULL;
@@ -6179,6 +6179,8 @@ int tpm2_list_devices(void) {
         if (!t)
                 return log_oom();
 
+        (void) table_set_header(t, legend);
+
         d = opendir("/sys/class/tpmrm");
         if (!d) {
                 log_full_errno(errno == ENOENT ? LOG_DEBUG : LOG_ERR, errno, "Failed to open /sys/class/tpmrm: %m");
@@ -6224,7 +6226,7 @@ int tpm2_list_devices(void) {
                 }
         }
 
-        if (table_isempty(t)) {
+        if (table_isempty(t) && !quiet) {
                 log_info("No suitable TPM2 devices found.");
                 return 0;
         }
index 77cd7dbcaf7e78effb935eabc1c9b8503e10ed5f..76b4dd3cc15dbaa7ba77c1d5af112d229dd0fa44 100644 (file)
@@ -385,7 +385,7 @@ static inline int tpm2_pcrlock_search_file(const char *path, FILE **ret_file, ch
 
 #endif /* HAVE_TPM2 */
 
-int tpm2_list_devices(void);
+int tpm2_list_devices(bool legend, bool quiet);
 int tpm2_find_device_auto(char **ret);
 
 int tpm2_make_pcr_json_array(uint32_t pcr_mask, sd_json_variant **ret);
index ee9d243d5ee49ce236f7f3d4da386944e5121be1..ab5bd9bff9d6d5aa95741a5bff3d2e56d9e31a04 100644 (file)
@@ -91,7 +91,7 @@ static int parse_argv(int argc, char *argv[]) {
 
                 case ARG_TPM2_DEVICE:
                         if (streq(optarg, "list"))
-                                return tpm2_list_devices();
+                                return tpm2_list_devices(/* legend = */ true, /* quiet = */ false);
 
                         if (free_and_strdup(&arg_tpm2_device, streq(optarg, "auto") ? NULL : optarg) < 0)
                                 return log_oom();