Tapkey Lock Control Protocol¶
The Tapkey Lock Control Protocol (TLCP) defines how entities within Tapkey communicate with each other.
Examples¶
Trigger Lock¶
The following sequence diagram shows a simplified overview of the execution of a trigger lock command.
sequenceDiagram Trust Service->>+Mobile App: Lock ID, KeyU, enc_L(KeyU), enc_L(CertU), enc_L(RCL) Mobile App->>-Mobile App: Persist data User->>Mobile App: User initiates trigger lock activate Mobile App Mobile App->>Lock: Connect activate Lock Lock-->>Mobile App: Hello Message: Lock ID, rclSerialNo, Nonce(C), current timestamp opt Sync lock time Trust Service->>Lock: Set clock Note over Trust Service,Lock: Direct tunnel via HTTPS end opt Get access log Mobile App->>+Lock: Get access log Lock-->>-Mobile App: Access log end Mobile App->>Lock: enc_L(CertU), enc_L(KeyU) Mobile App->>Lock: enc_U(CMD) Mobile App->>Mobile App: Calculate signature Mobile App->>Lock: sig_U(C, KeyU, enc_U(CMD)) Lock->>Lock: Verify signature Lock->>Lock: Execute command Lock->>Mobile App: Acknowledgement, Access log deactivate Lock Mobile App->>Trust Service: Access log deactivate Mobile App
Legend
Lock ID
:= l ⟶ The lock's identification (ID).
KeyU
:= k_{u} ⟶ The user's symmetrical encrypting and signing key, for example, abc123
.
CertU
:= c_{u} ⟶ The user's certificate.
RCL
:= (r_{1}, r_{2}, r_{3}) ⟶ The lock's revocation control list.
enc_L
:= E_{l}(x) ⟶ Function encrypting parameter x using the lock's master key.
sig_U
:= S_{u}(x) ⟶ Function signin x using the user's symmetrical key.