Documentation

Cedar.SymCC.Verifier

This file contains verify* functions that use the Cedar symbolic compiler, authorizer, and hierarchy enforcer to generate a list of Asserts. These are boolean terms whose conjunction is unsatisfiable if and only if the verified property holds.

@[reducible, inline]
Equations
Instances For

    Returns asserts that are unsatisfiable iff the evaluation of p, represented as a Term of type .option .bool, satisfies φ on all inputs drawn from εnv. See also verifyNeverErrors, verifyAlwaysMatches, and verifyNeverMatches.

    Equations
    Instances For
      def Cedar.SymCC.verifyEvaluatePair (φ : TermTermTerm) (p₁ p₂ : Spec.Policy) (εnv : SymEnv) :

      Returns asserts that are unsatisfiable iff the evaluation of p₁ and p₂, represented as Terms of type .option .bool, satisfy φ on all inputs drawn from εnv. See also verifyMatchesImplies, verifyMatchesEquivalent, and verifyMatchesDisjoint.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        def Cedar.SymCC.verifyIsAuthorized (φ : TermTermTerm) (ps₁ ps₂ : Spec.Policies) (εnv : SymEnv) :

        Returns asserts that are unsatisfiable iff the authorization decisions produced by ps₁ and ps₂, represented as Terms of type .bool, satisfy φ on all inputs drawn from εnv. See also verifyAlwaysAllows, verifyAlwaysDenies, verifyImplies, verifyEquivalent, and verifyDisjoint.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          Returns asserts that are unsatisfiable iff p does not error on any input in εnv. If the asserts are satisfiable, then there is some input in εnv on which p errors.

          Equations
          Instances For

            Returns asserts that are unsatisfiable iff p matches all inputs in εnv. If the asserts are satisfiable, then there is some input in εnv which p doesn't match.

            Equations
            Instances For

              Returns asserts that are unsatisfiable iff p matches no inputs in εnv. If the asserts are satisfiable, then there is some input in εnv which p does match.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                Returns asserts that are unsatisfiable iff p₁ and p₂ match exactly the same set of inputs in εnv.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For

                  Returns asserts that are unsatisfiable iff p₁ matching implies that p₂ matches, for every input in εnv. In other words, for every request where p₁ matches, p₂ also matches.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For

                    Returns asserts that are unsatisfiable iff there is no input in εnv that is matched by both p₁ and p₂. In other words, the sets of inputs matched by p₁ and p₂ are disjoint. If this query is satisfiable, then there is at least one input that is matched by both p₁ and p₂.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For

                      Returns asserts that are unsatisfiable iff the authorization decision of ps₁ implies that of ps₂ for every input in εnv. In other words, every input allowed by ps₁ is allowed by ps₂.

                      Equations
                      Instances For

                        Returns asserts that are unsatisfiable iff ps allows all inputs in εnv.

                        Equations
                        Instances For
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For

                            Returns asserts that are unsatisfiable iff ps denies all inputs in εnv.

                            Equations
                            Instances For

                              Returns asserts that are unsatisfiable iff ps₁ and ps₂ produce the same authorization decision on all inputs in εnv.

                              Equations
                              Instances For

                                Returns asserts that are unsatisfiable iff there is no input in εnv that is allowed by both ps₁ and ps₂. This checks that the authorization semantics of ps₁ and ps₂ are disjoint. If this query is satisfiable, then there is at least one input that is allowed by both ps₁ and ps₂.

                                Equations
                                Instances For