Skip to content

Commit 85a36f1

Browse files
committed
add DID workflow mermaid charts
Signed-off-by: Chuck Adams <chaz@chaz.works>
1 parent ead36b7 commit 85a36f1

1 file changed

Lines changed: 50 additions & 0 deletions

File tree

docs/flowcharts/did-workflows.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# DID Workflows
2+
3+
# did:plc
4+
5+
```mermaid
6+
flowchart TD
7+
A1["Install: Get package did:plc from user input"]
8+
A2["Update: Resolve package did:plc from header comment"]
9+
A1 --> B["Fetch DID Document from plc.directory"]
10+
A2 --> B
11+
B --> C{"DID verification enabled?"}
12+
C -- Yes --> D["Fetch PLC audit log: plc.directory/$did/log/audit"]
13+
D --> E["Hash genesis op"]
14+
E --> F["Verify DID match"]
15+
F --> G["Recompute CID of each op"]
16+
G --> H["Verify ECDSA with prior keys"]
17+
H --> I["Derive verificationMethods & services"]
18+
I --> J{Valid?}
19+
J -- No --> X1[Fail: Invalid DID verification]
20+
J -- Yes --> K["Select #fairpm publicKeyMultibase key"]
21+
C -- No --> K["Select #fairpm publicKeyMultibase key"]
22+
K --> L["Select FairPackageManagementRepo URL from serviceEndpoint"]
23+
L --> M["Download package ZIP from FairPackageManagementRepo"]
24+
M --> N["Calculate package ZIP file SHA384 hash"]
25+
M --> O["Extract package signature from ZIP download HTTP response header"]
26+
N --> P{"Verify calculated SHA384 signature"}
27+
O --> P
28+
P -- No --> X2["Fail: Invalid package signature"]
29+
P -- Yes --> Q["Success: install/update package"]
30+
```
31+
32+
#
33+
34+
```mermaid
35+
flowchart TD
36+
A1["Install: Get package did:web from user input"]
37+
A2["Update: Resolve did:web from package header comment"]
38+
A1 --> B["Construct DID Document URL from did:web"]
39+
A2 --> B
40+
B --> C["Fetch DID Document via HTTPS"]
41+
C --> D["Select #fairpm publicKeyMultibase key"]
42+
D --> E["Select FairPackageManagementRepo URL from serviceEndpoint"]
43+
E --> F["Download package ZIP from FairPackageManagementRepo"]
44+
F --> G["Calculate package ZIP file SHA384 hash"]
45+
F --> H["Extract package signature from ZIP download HTTP response header"]
46+
G --> I{"Verify calculated SHA384 signature"}
47+
H --> I
48+
I -- Invalid --> X1["Fail: Invalid package signature"]
49+
I -- Valid --> J["Success: install/update package"]
50+
```

0 commit comments

Comments
 (0)