- 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
Equations
Instances For
@[instance_reducible]
Instances For
@[instance_reducible]
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
Equations
Instances For
@[instance_reducible]
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
- 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]
[BytesInvariants]
[BytesInvariants.Has Vk.invariants]
(inp : Bytes)
(tr : ProofTrace)
:
@[simp]
theorem
DY.Signature.vk.label
[ExecTraceTypes]
[ProofTraceTypes]
[BytesFunctor]
[BytesFunctor.Has SubF]
[BytesInvariants]
[BytesInvariants.Has Vk.invariants]
(inp : Bytes)
(tr : ProofTrace)
:
@[simp]
theorem
DY.Signature.vk.Invariant
[ExecTraceTypes]
[ProofTraceTypes]
[BytesFunctor]
[BytesFunctor.Has SubF]
[BytesInvariants]
[BytesInvariants.Has Vk.invariants]
(inp : Bytes)
(tr : ProofTrace)
:
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]
(id✝ : Fin 2)
:
Equations
Instances For
@[instance_reducible]
def
DY.Signature.invariants
[BytesFunctor]
[ExecTraceTypes]
[ProofTraceTypes]
[BytesFunctor.Has SubF]
[SignPred]
:
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]
[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]
[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_vk
[BytesFunctor]
[BytesFunctor.Has Signature.SubF]
[ExecTraceTypes]
[ProofTraceTypes]
[BytesInvariants]
[Signature.SignPred]
[BytesInvariants.Has Signature.invariants]
(sk : Bytes)
(tr : ProofTrace)
:
theorem
DY.Bytes.signkeyLabel_later
[BytesFunctor]
[BytesFunctor.Has Signature.SubF]
[ExecTraceTypes]
[ProofTraceTypes]
[BytesInvariants]
[BytesInvariantsProofs]
[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]
[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]
[SignPred]
[BytesInvariants]
[BytesInvariants.Has invariants]
(sk nonce msg : Bytes)
(tr : ProofTrace)
:
@[simp]
theorem
DY.Signature.sign.label
[ExecTraceTypes]
[ProofTraceTypes]
[BytesFunctor]
[BytesFunctor.Has SubF]
[SignPred]
[BytesInvariants]
[BytesInvariants.Has invariants]
(sk nonce msg : Bytes)
(tr : ProofTrace)
:
@[simp]
theorem
DY.Signature.sign.Invariant
[ExecTraceTypes]
[ProofTraceTypes]
[BytesFunctor]
[BytesFunctor.Has SubF]
[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]
[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
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
instance
DY.Signature.instHasGhostMetaprogramBytesSignSignMetaprog
[BytesFunctor]
[BytesFunctor.Has SubF]
(sk nonce msg : Bytes)
:
HasGhostMetaprogram (sign sk nonce msg) signMetaprog
@[instance_reducible]
instance
DY.Signature.instHasGhostArgumentTypeBoolVerifyBytesUsage
[BytesFunctor]
[BytesFunctor.Has SubF]
(vkey msg sig : Bytes)
:
HasGhostArgumentType (verify vkey msg sig) Usage
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
instance
DY.Signature.instHasGhostMetaprogramBoolVerifyBytesVerifyMetaprog
[BytesFunctor]
[BytesFunctor.Has SubF]
(vkey msg sig : Bytes)
:
HasGhostMetaprogram (verify vkey msg sig) verifyMetaprog