Label

data class Label(confidentialityComponent: FreeDistributiveLattice<Principal>, integrityComponent: FreeDistributiveLattice<Principal>) : Lattice<Label> , TrustLattice<Label> , PrettyPrintable

A lattice for information flow security. This is a standard bounded lattice that additionally supports confidentiality and integrity projections. Information flows from less restrictive contexts to more restrictive ones.

top, bottom, meet, and join talk about information flow.

weakest, strongest, and, and or talk about trust.

Constructors

Label
Link copied to clipboard
fun Label(confidentialityComponent: FreeDistributiveLattice<Principal>, integrityComponent: FreeDistributiveLattice<Principal>)

Types

Companion
Link copied to clipboard
object Companion

Functions

actsFor
Link copied to clipboard
open infix override fun actsFor(that: Label): Boolean

Decide if this is trusted to enforce that's security policies.

and
Link copied to clipboard
open infix override fun and(that: Label): Label

The least powerful principal that can act for both this and that. This denotes a conjunction of authority.

confidentiality
Link copied to clipboard
fun confidentiality(): Label

The confidentiality component.

flowsTo
Link copied to clipboard
infix fun flowsTo(that: Label): Boolean

Check if information flow from this to that is safe.

integrity
Link copied to clipboard
fun integrity(): Label

The integrity component.

join
Link copied to clipboard
open infix override fun join(that: Label): Label

The least upper bound of this and that.

lessThanOrEqualTo
Link copied to clipboard
open override fun lessThanOrEqualTo(that: Label): Boolean

Returns true if this is ordered before that.

meet
Link copied to clipboard
open infix override fun meet(that: Label): Label

The greatest lower bound of this and that.

or
Link copied to clipboard
open infix override fun or(that: Label): Label

The most powerful principal both this and that can act for. This denotes a disjunction of authority.

swap
Link copied to clipboard
fun swap(): Label

Switch the confidentiality and integrity components.

toDocument
Link copied to clipboard
open override fun toDocument(): Document
toString
Link copied to clipboard
open override fun toString(): String

Properties

confidentialityComponent
Link copied to clipboard

The confidentiality component in the underlying lattice.

integrityComponent
Link copied to clipboard
val integrityComponent: FreeDistributiveLattice<Principal>

The integrity component in the underlying lattice.