Skip to content

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.