- vk (sk : Bytes) : Bytes
- sign (sk nonce msg : Bytes) : Bytes
- verify (vk msg sig : Bytes) : Bool
Instances
@[instance_reducible]
Equations
- DY.Signature'.Vk.instFunctorSizeOfSubF = { sizeOf := fun {t : Type} [SizeOf t] (x : DY.Signature'.Vk.SubF t) => match x with | { sk := sk } => sizeOf sk }
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
Instances For
- sk : Bytes
- nonce : Bytes
- msg : Bytes
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Instances For
@[instance_reducible]
Equations
Instances For
Equations
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
Instances For
Equations
Instances For
theorem DY.Signature'.attacker_knows_vk [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes] [BaseAttackerKnowledge] [AttackerKnowledge] [AttackerKnowledge.Has attackerKnowledge] (sk : Bytes) (tr : ExecTrace) :
sk.AttackerKnows tr → (vk sk).AttackerKnows tr
theorem DY.Signature'.attacker_knows_sign [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes] [BaseAttackerKnowledge] [AttackerKnowledge] [AttackerKnowledge.Has attackerKnowledge] (sk nonce msg : Bytes) (tr : ExecTrace) :
sk.AttackerKnows tr → nonce.AttackerKnows tr → msg.AttackerKnows tr → (sign sk nonce msg).AttackerKnows tr
Equations
- DY.Signature'.Broken.vkInvert pk = match pk.view? DY.Signature'.Vk.SubF with | some { sk := sk } => some sk | none => none
Instances For
- brokenPk : Bytes
Instances For
@[instance_reducible]
Equations
Instances For
def DY.Signature'.Broken.baseAttackerKnowledge.internal [BytesFunctor] [ExecTraceTypes] (id✝ : Fin 1) :
Equations
Instances For
def DY.Signature'.Broken.ThisVkHasBeenBroken [BytesFunctor] [ExecTraceTypes] [ExecTraceTypes.Has ExecEntryT] (brokenPk : Bytes) (tr : ExecTrace) :
Equations
- DY.Signature'.Broken.ThisVkHasBeenBroken brokenPk tr = DY.Trace.EventLogged { brokenPk := brokenPk } tr
Instances For
def DY.Signature'.Broken.OneVkHasBeenBroken [BytesFunctor] [ExecTraceTypes] [ExecTraceTypes.Has ExecEntryT] (tr : ExecTrace) :
Equations
- DY.Signature'.Broken.OneVkHasBeenBroken tr = ∃ (brokenPk : DY.Bytes), DY.Signature'.Broken.ThisVkHasBeenBroken brokenPk tr
Instances For
def DY.Signature'.Broken.label [BytesFunctor] [ExecTraceTypes] [ExecTraceTypes.Has ExecEntryT] (brokenPk : Bytes) :
Equations
- DY.Signature'.Broken.label brokenPk = { isCorrupt := fun (tr : DY.ExecTrace) => DY.Signature'.Broken.ThisVkHasBeenBroken brokenPk tr, isCorruptLater := ⋯ }
Instances For
def DY.Signature'.Broken.breakVk [BytesFunctor] [ExecTraceTypes] [ExecTraceTypes.Has ExecEntryT] [BytesFunctor.Has SubF] [ExecTraceTypes.Has Network.ExecEntryT] (msgHandle : Nat) :
Equations
- One or more equations did not get rendered due to their size.
Instances For
def DY.Signature'.Broken.breakVk.reachability [BytesFunctor] [ExecTraceTypes] [ExecTraceTypes.Has ExecEntryT] [BytesFunctor.Has SubF] [ExecTraceTypes.Has Network.ExecEntryT] :
Equations
- DY.Signature'.Broken.breakVk.reachability = DY.ReachabilityConfig.make fun (handle : Nat) => DY.Signature'.Broken.breakVk handle
Instances For
def DY.Signature'.Vk.invariants [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has Signature'.SubF] [ExecTraceTypes.Has Broken.ExecEntryT] :
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem DY.Signature'.vk.WellFormed [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes.Has Broken.ExecEntryT] [BytesInvariants] [BytesInvariants.Has Vk.invariants] (inp : Bytes) (tr : ProofTrace) :
@[simp]
theorem DY.Signature'.vk.label [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes.Has Broken.ExecEntryT] [BytesInvariants] [BytesInvariants.Has Vk.invariants] (inp : Bytes) (tr : ProofTrace) :
@[simp]
theorem DY.Signature'.vk.Invariant [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes.Has Broken.ExecEntryT] [BytesInvariants] [BytesInvariants.Has Vk.invariants] (sk : Bytes) (tr : ProofTrace) :
sk.Invariant tr → (sk.label tr).canFlow (Broken.label (vk sk)) (Trace.erase tr) → (vk sk).Invariant tr
Instances
class DY.Signature'.SignPredProof [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesInvariants] [SignPred] :
- pred_later [BytesWellFormedLater] [GetUsageLater] [GetLabelLater] (skUsg : Usage) (vk msg : Bytes) (tr1 tr2 : ProofTrace) : vk.WellFormed tr1 → msg.WellFormed tr1 → tr1 ≤ tr2 → SignPred.pred skUsg vk msg tr1 → SignPred.pred skUsg vk msg tr2
Instances
theorem DY.Signature'.SignPredProof.pred_later_fast [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesInvariants] [SignPred] [SignPredProof] [BytesInvariantsProofs] (skUsg : Usage) (vk msg : Bytes) (tr1 tr2 : ProofTrace) :
vk.Invariant tr1 → msg.Invariant tr1 → tr1 ≤ tr2 → SignPred.pred skUsg vk msg tr1 → SignPred.pred skUsg vk msg tr2
def DY.Signature'.Sign.invariants [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has Signature'.SubF] [SignPred] :
Equations
- One or more equations did not get rendered due to their size.
Instances For
def DY.Signature'.invariants.internal [BytesFunctor] [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor.Has SubF] [SignPred] [ExecTraceTypes.Has Broken.ExecEntryT] (id✝ : Fin 2) :
Equations
Instances For
@[instance_reducible]
def DY.Signature'.invariants [BytesFunctor] [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor.Has SubF] [SignPred] [ExecTraceTypes.Has Broken.ExecEntryT] :
Equations
Instances For
def DY.Bytes.SignkeyHasUsage' [BytesFunctor] [BytesFunctor.Has Signature'.SubF] [ExecTraceTypes] [ProofTraceTypes] [BytesInvariants] (vk : Bytes) (skUsg : Usage) (tr : ProofTrace) :
Equations
- vk.SignkeyHasUsage' skUsg tr = DY.Bytes.XXXHasUsage DY.Signature'.extractSignkey✝ vk skUsg tr
Instances For
theorem DY.Bytes.SignkeyHasUsage'_vk [BytesFunctor] [BytesFunctor.Has Signature'.SubF] [ExecTraceTypes] [ProofTraceTypes] [BytesInvariants] (sk : Bytes) (skUsg : Usage) (tr : ProofTrace) :
theorem DY.Bytes.SignkeyHasUsage'_later [BytesFunctor] [BytesFunctor.Has Signature'.SubF] [ExecTraceTypes] [ProofTraceTypes] [BytesInvariants] [BytesInvariantsProofs] [ExecTraceTypes.Has Signature'.Broken.ExecEntryT] [Signature'.SignPred] [BytesInvariants.Has Signature'.invariants] (b : Bytes) (usg : Usage) (tr1 tr2 : ProofTrace) :
b.WellFormed tr1 → tr1 ≤ tr2 → b.SignkeyHasUsage' usg tr1 → b.SignkeyHasUsage' usg tr2
theorem DY.Bytes.SignkeyHasUsage'_later_fast [BytesFunctor] [BytesFunctor.Has Signature'.SubF] [ExecTraceTypes] [ProofTraceTypes] [BytesInvariants] [BytesInvariantsProofs] [ExecTraceTypes.Has Signature'.Broken.ExecEntryT] [Signature'.SignPred] [BytesInvariants.Has Signature'.invariants] (b : Bytes) (usg : Usage) (tr1 tr2 : ProofTrace) :
b.Invariant tr1 → tr1 ≤ tr2 → b.SignkeyHasUsage' usg tr1 → b.SignkeyHasUsage' usg tr2
noncomputable def DY.Bytes.signkeyLabel' [BytesFunctor] [BytesFunctor.Has Signature'.SubF] [ExecTraceTypes] [ProofTraceTypes] [BytesInvariants] (vk : Bytes) (tr : ProofTrace) :
Equations
- vk.signkeyLabel' tr = DY.Bytes.xxxLabel DY.Signature'.extractSignkey✝ vk tr
Instances For
theorem DY.Bytes.signkeyLabel'_later [BytesFunctor] [BytesFunctor.Has Signature'.SubF] [ExecTraceTypes] [ProofTraceTypes] [BytesInvariants] [BytesInvariantsProofs] [ExecTraceTypes.Has Signature'.Broken.ExecEntryT] [Signature'.SignPred] [BytesInvariants.Has Signature'.invariants] (b : Bytes) (tr1 tr2 : ProofTrace) :
b.WellFormed tr1 → tr1 ≤ tr2 → b.signkeyLabel' tr1 = b.signkeyLabel' tr2
theorem DY.Bytes.signkeyLabel'_later_fast [BytesFunctor] [BytesFunctor.Has Signature'.SubF] [ExecTraceTypes] [ProofTraceTypes] [BytesInvariants] [BytesInvariantsProofs] [ExecTraceTypes.Has Signature'.Broken.ExecEntryT] [Signature'.SignPred] [BytesInvariants.Has Signature'.invariants] (b : Bytes) (tr1 tr2 : ProofTrace) :
b.Invariant tr1 → tr1 ≤ tr2 → b.signkeyLabel' tr1 = b.signkeyLabel' tr2
@[simp]
theorem DY.Signature'.sign.WellFormed [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes.Has Broken.ExecEntryT] [SignPred] [BytesInvariants] [BytesInvariants.Has invariants] (sk nonce msg : Bytes) (tr : ProofTrace) :
@[simp]
theorem DY.Signature'.sign.label [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes.Has Broken.ExecEntryT] [SignPred] [BytesInvariants] [BytesInvariants.Has invariants] (sk nonce msg : Bytes) (tr : ProofTrace) :
@[simp]
theorem DY.Signature'.sign.Invariant [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes.Has Broken.ExecEntryT] [SignPred] [BytesInvariants] [BytesInvariants.Has invariants] (sk nonce msg : Bytes) (sk_usg : Usage) (tr : ProofTrace) :
@[simp]
theorem DY.Signature'.verify.Invariant [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes.Has Broken.ExecEntryT] [SignPred] [BytesInvariants] [BytesInvariants.Has invariants] (vk msg sig : Bytes) (skUsg : Usage) (tr : ProofTrace) :
vk.Invariant tr →
msg.Invariant tr →
sig.Invariant tr →
vk.SignkeyHasUsage' skUsg tr →
verify vk msg sig = true →
(skUsg.type = "SigKey" → SignPred.pred skUsg vk msg tr) ∨ (vk.signkeyLabel' tr).canFlow Label.pub (Trace.erase tr)
@[instance_reducible]
instance DY.Signature'.instHasGhostArgumentTypeBytesSignUsage [BytesFunctor] [BytesFunctor.Has SubF] (sk nonce msg : Bytes) :
HasGhostArgumentType (sign sk nonce msg) Usage
@[instance_reducible]
instance DY.Signature'.instHasGhostArgumentTypeBoolVerifyBytesUsage [BytesFunctor] [BytesFunctor.Has SubF] (vkey msg sig : Bytes) :
HasGhostArgumentType (verify vkey msg sig) Usage
@[instance_reducible]
instance DY.Signature'.Broken.instEventInvBrokenDhEvent [BytesFunctor] [ExecTraceTypes] [ProofTraceTypes] :
Equations
- DY.Signature'.Broken.instEventInvBrokenDhEvent = { invariant := fun (x : DY.ProofTrace) (x_1 : DY.Signature'.Broken.BrokenDhEvent) => True }
@[instance_reducible]
Equations
Instances For
instance DY.Signature'.Broken.instReachableImpliesInvariantReachability [BytesFunctor] [ExecTraceTypes] [ProofTraceTypes] [TraceInvariant] [BytesInvariants] [BytesFunctor.Has SubF] [ExecTraceTypes.Has ExecEntryT] [SignPred] [BytesInvariants.Has invariants] [BytesInvariantsProofs] [ExecTraceTypes.Has Network.ExecEntryT] [ProofTraceTypes.Has ProofEntryT] [ProofTraceTypes.Has Network.ProofEntryT] [TraceInvariant.Has Network.ProofEntryT] [TraceInvariant.Has ProofEntryT] :