authorization of the policies (prohibiting an attacker from gaining
 unconstrained root, and deploying an "allow all" policy). These
 policies must be signed by a certificate that chains to the
-``SYSTEM_TRUSTED_KEYRING``. With openssl, the policy can be signed by::
+``SYSTEM_TRUSTED_KEYRING``, or to the secondary and/or platform keyrings if
+``CONFIG_IPE_POLICY_SIG_SECONDARY_KEYRING`` and/or
+``CONFIG_IPE_POLICY_SIG_PLATFORM_KEYRING`` are enabled, respectively.
+With openssl, the policy can be signed by::
 
    openssl smime -sign \
       -in "$MY_POLICY" \
 
 
          If unsure, leave blank.
 
+config IPE_POLICY_SIG_SECONDARY_KEYRING
+       bool "IPE policy update verification with secondary keyring"
+       default y
+       depends on SECONDARY_TRUSTED_KEYRING
+       help
+         Also allow the secondary trusted keyring to verify IPE policy
+         updates.
+
+         If unsure, answer Y.
+
+config IPE_POLICY_SIG_PLATFORM_KEYRING
+       bool "IPE policy update verification with platform keyring"
+       default y
+       depends on INTEGRITY_PLATFORM_KEYRING
+       help
+         Also allow the platform keyring to verify IPE policy updates.
+
+         If unsure, answer Y.
+
 menu "IPE Trust Providers"
 
 config IPE_PROP_DM_VERITY
 
                        goto err;
                }
 
-               rc = verify_pkcs7_signature(NULL, 0, new->pkcs7, pkcs7len, NULL,
+               rc = verify_pkcs7_signature(NULL, 0, new->pkcs7, pkcs7len,
+#ifdef CONFIG_IPE_POLICY_SIG_SECONDARY_KEYRING
+                                           VERIFY_USE_SECONDARY_KEYRING,
+#else
+                                           NULL,
+#endif
                                            VERIFYING_UNSPECIFIED_SIGNATURE,
                                            set_pkcs7_data, new);
+#ifdef CONFIG_IPE_POLICY_SIG_PLATFORM_KEYRING
+               if (rc == -ENOKEY)
+                       rc = verify_pkcs7_signature(NULL, 0, new->pkcs7, pkcs7len,
+                                                   VERIFY_USE_PLATFORM_KEYRING,
+                                                   VERIFYING_UNSPECIFIED_SIGNATURE,
+                                                   set_pkcs7_data, new);
+#endif
                if (rc)
                        goto err;
        } else {