arclib

Die gemeinsame Foundation-Library des Arc-Ökosystems

Eine in Go geschriebene Basis-Bibliothek für Kryptografie, das MyClerk-Wire-Protokoll, Transport und Infrastruktur – mit bit-identischen Kotlin- und JavaScript/TypeScript-Spiegeln für plattformübergreifende Interoperabilität.

Quellcode auf GitHub

Was arclib ist

arclib bündelt die wiederkehrenden Bausteine unserer Anwendungen an einer Stelle, damit sie konsistent und nur einmal sorgfältig umgesetzt werden müssen. Sämtliche Kryptografie, das Wire-Protokoll und die Serialisierung stammen aus dieser einen Quelle.

Ein Codepfad pro Primitive – verifiziert gegen gemeinsame Testvektoren über Go, Kotlin und JavaScript hinweg.

Die Bibliothek setzt auf etablierte Standards (NIST, IETF/RFC) statt auf Eigenbau und kombiniert klassische mit post-quanten Verfahren, wo langfristige Vertraulichkeit zählt.

Funktionsumfang

Die Pakete der Bibliothek im Überblick – jeweils mit den enthaltenen Bausteinen.

Kryptografie

Etablierte Primitive, klassisch und post-quanten

  • AEAD-Verschlüsselung: ChaCha20-Poly1305
  • Schlüsselaustausch: X25519, ML-KEM-768 (post-quanten)
  • Signaturen: Ed25519, ML-DSA-65 (post-quanten)
  • Hybride Identitäts-Schlüssel (Ed25519 + ML-DSA)
  • Schlüsselableitung: HKDF-SHA256, X9.63-KDF
  • Passwort-Hashing: Argon2
  • HMAC-SHA256, SHA-256, CRC-16/CRC-32
  • Key-Rotation, Key-Wrapping, CSPRNG-Helfer
  • At-Rest-Cipher für SQLite-Datenbanken

MyClerk-Protokoll

Das Wire-Format des Ökosystems

  • Nachrichten-Framing mit Sicherheits-Tiers 0–5
  • Opcodes, Kategorien und Extension-Header
  • Nachrichten-Fragmentierung
  • MessagePack-Serialisierung
  • Strukturiertes Fehler-Modell
  • Rund 34 Opcode-Kataloge nach Domänen

Sicherer Kanal neu

Authentifizierter post-quanten Channel

  • Hybrider Handshake: X25519 + ML-KEM-768
  • Transcript-gebundene Schlüsselableitung (Downgrade-Schutz)
  • Tier-5-Session mit automatischer Key-Rotation
  • Gegenseitige Identitäts-Authentifizierung (SIGMA)
  • Allowlist serverseitig, Schlüssel-Pinning clientseitig
  • Forward Secrecy innerhalb einer Sitzung

Transport

MyClerk-Protokoll über das Netz

  • WebSocket-Transport-Layer
  • Session- und Handshake-Verwaltung
  • Server-Loop und Request-Dispatch

LLM-Anbindung

Sprachmodelle über das Protokoll

  • Generischer LLM-over-MyClerk-Vertrag
  • Ollama-Client
  • OpenAI-kompatibler Client

WebAuthn

Passwortlose Anmeldung

  • WebAuthn / Passkeys (FIDO2)
  • Registrierung und Authentifizierung

Infrastruktur

Querschnitts-Bausteine

  • Datenbank-Abstraktion mit Migrationen
  • JSON5-Konfiguration (Kommentare, trailing commas)
  • Strukturiertes Logging (auf log/slog)
  • Rate-Limiting

Cross-Language

Eine Spezifikation, drei Sprachen

  • Go als Referenz-Implementierung
  • Kotlin-Spiegel (Android/JVM)
  • JavaScript/TypeScript-Spiegel (Web)
  • Gemeinsame, geprüfte Testvektoren

Protokoll-Domänen

Das MyClerk-Protokoll ist nach Anwendungsbereichen in Opcode-Kataloge gegliedert. Jeder Katalog beschreibt die Operationen einer Domäne.

SystemAuthSync VFSDeviceFamily TenantMDMCalendar TaskMediaAudio CallPresenceRoom SmarthomeHardwareHealth LocationMobilityTravel Market DataAnalyticsAudit AutomationOrchestrationKnowledge Resource SharingCommunitySettings DesktopLegalMaya (LLM)

Einbinden

arclib ist in Go geschrieben und über den kanonischen Modulpfad verfügbar:

# go.mod
require arcan-it.de/arclib latest

# oder
go get arcan-it.de/arclib

Der Quellcode liegt auf GitHub.

github.com/arcanconsulting/arclib