== Software / Protokol ==
=== Konzept ===
* ==== Trennung in Ebenen:====** Übertragungsebene: Wrapper bauen für TCP, UDP, HTTP, WebSocket oder ESPNow** Authentifizierungsebene: Checkt Signatur, checkt Callenge/Response, ermittelt Nutzerrechte, hält Nutzerdatenbank** Kommandoebene: Parst Kommandos ==== Nutzer ====* Können mehrere Schlüssel (Keys) haben (erstmal immer Ed25519 Private-Keys)* Zusätzlich zum Key sollte ein Klartextname (32-Byte String) zur Zuordnung hinterlegt werden* Jedes Schloss speichert Public-Key + Klartextname + Rechte pro Nutzer ==== Schlüsselfile ====Statt mit einem KeyFob kann die Tür auch per anderer Hardware geöffnet werden, z.B. über ein Webinterface. Dazu muss der Nutzer seinen Private-Key irgendwo abspeichern. Das Format dazu ist ein ASCII-Hex-String, je 2 Zeichen pro Byte 00..FF, mit folgendem Aufbau: * 32 Byte (64 Zeichen) Private Key* 32 Byte (64 Zeichen) Public Key (zur Kontrolle)* 32 Byte (64 Zeichen) Klartextname (0 gefüllt) Der Parser für diese Datei sollte alle Zeichen die nicht für HEX sind sowie alle Zeichen nach dem 3x 32x Byte ignorieren.