Package-level declarations
Types
Link copied to clipboard
A constraint variable for the confidentiality or the integrity component of a SecurityLattice element.
Link copied to clipboard
typealias Constraint<C, V, T> = io.github.aplcornell.viaduct.algebra.solver.Constraint<C, io.github.aplcornell.viaduct.security.solver.ComponentVariable<V>, T>
A SecurityLattice constraint.
Link copied to clipboard
A solution to a system of constraints. Maps variables to values.
Link copied to clipboard
class ConstraintSystem<C : HeytingAlgebra<C>, V, T : Throwable>(constraints: Iterable<Constraint<C, V, T>>, bounds: BoundedLattice<C>, delegationContext: LatticeCongruence<C>)
Given a set of SecurityLattice constraints, finds an assignment to all variables that minimizes the trust assigned to each variable (if one exists).
Link copied to clipboard
Represents a SecurityLattice expression that can appear in Constraints.
Functions
Link copied to clipboard
fun <C : HeytingAlgebra<C>, V, T> Term<C, V>.confidentialityFlowsTo(that: Term<C, V>, bounds: BoundedLattice<C>, failWith: (SecurityLattice<C>, SecurityLattice<C>) -> T): Iterable<Constraint<C, V, T>>
Link copied to clipboard
fun <C : HeytingAlgebra<C>, V, T> Term<C, V>.flowsTo(that: Term<C, V>, bounds: BoundedLattice<C>, failWith: (SecurityLattice<C>, SecurityLattice<C>) -> T): Iterable<Constraint<C, V, T>>
Returns a constraint that represents [this] flowsTo [that]
.
Link copied to clipboard
fun <C : HeytingAlgebra<C>, V, T> Term<C, V>.integrityFlowsTo(that: Term<C, V>, bounds: BoundedLattice<C>, failWith: (SecurityLattice<C>, SecurityLattice<C>) -> T): Iterable<Constraint<C, V, T>>