]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
creds-util: refuse unexpected key types explicitly
authorLennart Poettering <lennart@poettering.net>
Thu, 14 Apr 2022 13:26:02 +0000 (15:26 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 20 Apr 2022 15:19:45 +0000 (17:19 +0200)
src/shared/creds-util.c

index c4dcc396ac28fbd993d0cd8bcc019c4f9c6c51e9..93c8b93fa98537dfe5680c2a027c29155fda4b70 100644 (file)
@@ -483,6 +483,13 @@ int encrypt_credential_and_warn(
         assert(ret);
         assert(ret_size);
 
+        if (!sd_id128_in_set(with_key,
+                             SD_ID128_NULL,
+                             CRED_AES256_GCM_BY_HOST,
+                             CRED_AES256_GCM_BY_TPM2_HMAC,
+                             CRED_AES256_GCM_BY_HOST_AND_TPM2_HMAC))
+                return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Invalid key type: " SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL(with_key));
+
         if (name && !credential_name_valid(name))
                 return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Invalid credential name: %s", name);