← SkillSafe / Proto Verif

Your protocol, drawn from what the text actually says

Paste the material behind one protocol — an RFC excerpt, a paper's pseudocode, plain prose, a handshake implementation, or an existing .pv / .spthy model. A reader in this page classifies it, profiles the parties and the cryptographic operations, and draws any Mermaid diagram it finds as SVG. Then the model extracts the message flow, annotates every cryptographic step on the party that computes it, and tells you where the input is silent.

Both examples ship with a saved model run for both lanes, so you can see all four complete outputs without signing in and without spending a credit.

nothing pasted yet
Drag a file in, or Everything is read in your browser. Nothing uploads until you run.

This only tells the model which extraction workflow to use. A formal model is read as a specification, not as source code.

Paste a protocol to price the run.

What this does, and what it does not

The prescan is a real reader, not a word count. It classifies the paste with the same signal table the source skill uses to choose its workflow — RFC keywords and section numbers, process and reduc forall for ProVerif, rule and --[ ]-> for Tamarin — and tells you which signals it matched. If the paste is a Mermaid sequenceDiagram it is tokenised into participants, all eight arrow forms, notes and grouping blocks, then drawn in this page as SVG. There is no Mermaid library in this bundle and no request to a CDN: the layout is computed here and painted with createElementNS, because a content security policy that allows a third-party script is a policy that allows exfiltrating your session.

If the paste is a ProVerif model, the reader walks its eleven canonical sections with nesting-aware comment handling and checks the things that quietly invalidate a verification: a destructor such as verify or adec declared without an inline reduc, so it never aborts and the party accepts a forged signature; an event declared but never fired, so every query mentioning it holds trivially; a query naming an event that does not exist; a channel written but never read; a main process with no ! replication, so replay across sessions is out of scope. The same reader then runs over the model this app produces, which is why the model lane can tell you its own output is weak.

It reads and it writes. It does not run ProVerif or Tamarin, it does not execute your code, and it never claims a protocol is secure — it says what each query would establish if it came back true. Everything the prescan finds is handed to the model as facts with stable ids that must each be reconciled, and the reconciliation is checked here afterwards.

Nothing to hand? Load the , a prose specification with an unstated message ordering, an unnamed encryption scheme and no described abort path, or the , a two-party authenticated key exchange with ephemeral DH, signatures and a phase structure. Both replay a saved run for both lanes, for free.