Juvix imports
module arch.node.engines.verification_messages;
import prelude open;
import arch.node.types.identities open;
Verification Messages¶
Message interface¶
type VerificationMsg :=
| MsgVerificationRequest RequestVerification
| MsgVerificationReply ReplyVerification;
Message sequence diagrams¶
Verification sequence (without signs_for
evidence)¶
sequenceDiagram
participant C as Client
participant VE as Verification Engine
C->>VE: RequestVerification(useSignsFor=false)
Note over VE: Verify commitment directly for external identity
VE-->>C: ReplyVerification
signs_for
evidence).
Verification sequence (with signs_for
evidence)¶
sequenceDiagram
participant C as Client
participant VE as Verification Engine
participant SF as SignsFor Engine
C->>VE: RequestVerification(useSignsFor=true)
VE->>SF: QuerySignsForEvidenceRequest
Note over SF: Retrieve signs_for evidence
SF-->>VE: QuerySignsForEvidenceReply
Note over VE: Verify commitment using SignsFor evidence
VE-->>C: ReplyVerification
signs_for
evidence).
Message types¶
RequestVerification
¶
type RequestVerification :=
mkRequestVerification@{
data : Signable;
commitment : Commitment;
externalIdentity : ExternalIdentity;
useSignsFor : Bool;
};
A RequestVerification
instructs the Verification Engine to verify a commitment
(signature) from a particular external identity, possibly using known
signs_for
relationships.
Arguments
data
:- The data that was signed.
commitment
:- The commitment (signature) to verify.
externalIdentity
:- The external identity that supposedly made the commitment.
useSignsFor
:- Whether or not to use known
signs_for
relationships.
ReplyVerification
¶
type ReplyVerification :=
mkReplyVerification@{
result : Bool;
err : Option String;
};
A ReplyVerification
contains the result of verifying a commitment in
response to a RequestVerification
.
Arguments
result
:- True if the verification succeeded, False otherwise.
err
:- An error message if verification failed.
VerificationMsg
¶
type VerificationMsg :=
| MsgVerificationRequest RequestVerification
| MsgVerificationReply ReplyVerification;