- dhPk (sk : Bytes) : Bytes
- dh (pk sk : Bytes) : Bytes
Instances
@[instance_reducible]
Equations
- DY.DiffieHellman.DhPk.instFunctorSizeOfSubF = { sizeOf := fun {t : Type} [SizeOf t] (x : DY.DiffieHellman.DhPk.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
@[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]
Equations
Instances For
@[instance_reducible]
Instances For
Equations
Instances For
@[reducible, inline]
Equations
- x.pack = DY.BytesView.pack x
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.DiffieHellman.attacker_knows_dhPk [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes] [BaseAttackerKnowledge] [AttackerKnowledge] [AttackerKnowledge.Has attackerKnowledge] (sk : Bytes) (tr : ExecTrace) :
sk.AttackerKnows tr → (dhPk sk).AttackerKnows tr
theorem DY.DiffieHellman.attacker_knows_dh [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes] [BaseAttackerKnowledge] [AttackerKnowledge] [AttackerKnowledge.Has attackerKnowledge] (pk sk : Bytes) (tr : ExecTrace) :
pk.AttackerKnows tr → sk.AttackerKnows tr → (dh pk sk).AttackerKnows tr
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem DY.DiffieHellman.dhPk.WellFormed [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has SubF] [BytesInvariants] [BytesInvariants.Has DhPk.invariants] (sk : Bytes) (tr : ProofTrace) :
@[simp]
theorem DY.DiffieHellman.dhPk.label [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has SubF] [BytesInvariants] [BytesInvariants.Has DhPk.invariants] (sk : Bytes) (tr : ProofTrace) :
@[simp]
theorem DY.DiffieHellman.dhPk.Invariant [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has SubF] [BytesInvariants] [BytesInvariants.Has DhPk.invariants] (sk : Bytes) (tr : ProofTrace) :
def DY.DiffieHellman.Dh.invariants [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has DiffieHellman.SubF] :
Equations
- One or more equations did not get rendered due to their size.
Instances For
def DY.DiffieHellman.invariants.internal [BytesFunctor] [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor.Has SubF] (id✝ : Fin 2) :
Equations
Instances For
@[instance_reducible]
def DY.DiffieHellman.invariants [BytesFunctor] [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor.Has SubF] :
Equations
Instances For
noncomputable def DY.Bytes.dhSkLabel [BytesFunctor] [BytesFunctor.Has DiffieHellman.SubF] [ExecTraceTypes] [ProofTraceTypes] [BytesInvariants] (pk : Bytes) (tr : ProofTrace) :
Equations
- pk.dhSkLabel tr = DY.Bytes.xxxLabel DY.DiffieHellman.extractDhSk✝ pk tr
Instances For
theorem DY.Bytes.dhSkLabel_dhPk [BytesFunctor] [BytesFunctor.Has DiffieHellman.SubF] [ExecTraceTypes] [ProofTraceTypes] [BytesInvariants] [BytesInvariants.Has DiffieHellman.invariants] (sk : Bytes) (tr : ProofTrace) :
theorem DY.Bytes.dhSkLabel_later [BytesFunctor] [BytesFunctor.Has DiffieHellman.SubF] [ExecTraceTypes] [ProofTraceTypes] [BytesInvariants] [BytesInvariants.Has DiffieHellman.invariants] [GetLabelLater] (b : Bytes) (tr1 tr2 : ProofTrace) :
b.WellFormed tr1 → tr1 ≤ tr2 → b.dhSkLabel tr1 = b.dhSkLabel tr2
theorem DY.Bytes.dhSkLabel_later_fast [BytesFunctor] [BytesFunctor.Has DiffieHellman.SubF] [ExecTraceTypes] [ProofTraceTypes] [BytesInvariants] [BytesInvariantsProofs] [BytesInvariants.Has DiffieHellman.invariants] (b : Bytes) (tr1 tr2 : ProofTrace) :
@[simp]
theorem DY.DiffieHellman.dh.WellFormed [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has SubF] [BytesInvariants] [BytesInvariants.Has invariants] (pk sk : Bytes) (tr : ProofTrace) :
@[simp]
theorem DY.DiffieHellman.dh.label [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has SubF] [BytesInvariants] [BytesInvariants.Has invariants] (pk sk : Bytes) (tr : ProofTrace) :
@[simp]
theorem DY.DiffieHellman.dh.Invariant [ExecTraceTypes] [ProofTraceTypes] [BytesFunctor] [BytesFunctor.Has SubF] [BytesInvariants] [BytesInvariants.Has invariants] (pk sk : Bytes) (tr : ProofTrace) :
instance DY.DiffieHellman.instHoareTriplePureBytesDhPkInvariantAndEqLabelLabelPub [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes] [ProofTraceTypes] [BytesInvariants] [BytesInvariants.Has invariants] (sk : Bytes) :
HoareTriplePure (dhPk sk) (fun (tr : ProofTrace) => sk.Invariant tr) fun (res : Bytes) (tr : ProofTrace) =>
res.Invariant tr ∧ res.label tr = Label.pub
instance DY.DiffieHellman.instHoareTriplePureBytesDhAndInvariantPublishableEqLabelLabelJoinDhSkLabel [BytesFunctor] [BytesFunctor.Has SubF] [ExecTraceTypes] [ProofTraceTypes] [BytesInvariants] [BytesInvariants.Has invariants] (pk sk : Bytes) :
HoareTriplePure (dh pk sk) (fun (tr : ProofTrace) => sk.Invariant tr ∧ pk.Publishable tr)
fun (res : Bytes) (tr : ProofTrace) => res.Invariant tr ∧ res.label tr = (sk.label tr).join (pk.dhSkLabel tr)