Ticket request
A user requests a ticket for access to certain participants and columns. They either specify a list of subject groups or polymorphic pseudonyms. The servers will translate the PPs and return encrypted local pseudonyms for servers and the user in the ticket. The ticket can be presented to e.g. the Storage Facility later on.
sequenceDiagram
title Ticket request
actor User
participant AM as Access Manager
participant TS as Transcryptor
User->>+AM: Subject groups or PPs, columns,<br/>signature + log signature
%% Space to prevent parsing error in GitLab
AM-->>AM: #32;
note right of AM: Check signature
note right of AM: Check column access
opt Request with subject groups
note right of AM: Check subject group access
note right of AM: Retrieve PPs from DB
note right of AM: Re-randomize PPs
end
note right of AM: RSK with proof on PPs for AM, SF, TS, user
AM->>+TS: User request with only log signature#59;<br/>PPs, partial pseudonyms, proofs
TS-->>TS: #32;
note right of TS: Check log signature
note right of TS: Check RSK proofs for AM, SF, TS from PP
note right of TS: Finish RSK for AM, SF, TS, user
note right of TS: Log: user request with only log signature#59;<br/>TS pseudonyms#59; access modes#59;<br/>hash of PPs & translated AM, SF, user pseudonyms
TS->>-AM: PPs & translated AM, SF, user pseudonyms#59; log ID
AM-->>AM: #32;
note right of AM: Check participant access<br/>(using decrypted AM pseudonyms)
opt Write request with PPs
note right of AM: Add PPs for LPs to DB
end
note right of AM: Create ticket signed by AM with<br/>timestamp#59; access modes#59; columns#59; user group#59;<br/>PPs & translated AM, SF, user pseudonyms
AM->>+TS: Ticket signed by AM, log ID
TS-->>TS: #32;
note right of TS: Check signature
note right of TS: Log: log ID, columns, timestamp
note right of TS: Sign ticket
TS->>-AM: TS ticket signature
AM-->>AM: #32;
note right of AM: Add TS signature to ticket
AM->>-User: Ticket signed by AM & TS