====== std.base64 ====== Base64 ist ein Kodierungsverfahren, das Binärdaten in druckbare ASCII-Zeichen umwandelt (RFC 4648). Jede 3-Byte-Gruppe wird als 4 druckbare Zeichen dargestellt, was eine Größenzunahme von ca. 33 % bedeutet. Die Unit implementiert Standard-Base64 und die URL-Safe-Variante (ersetzt ''+/'' durch ''-_''), Padding-Verwaltung, HTTP-Basic-Auth-Kodierung (''Authorization: Basic …'') sowie Data-URL-Erzeugung (''data:;base64,…''). Einsatzbereiche: HTTP-APIs, OAuth-Token, E-Mail-Anhänge (MIME), Einbettung von Binärdaten in Textprotokolle, Browser-kompatible Datenübertragung. **Autor:** Andreas Röne\\ **Copyright:** 2024-2025 Andreas Röne ---- ===== Externe Funktionen ===== ^ Signatur ^ Beschreibung ^ | ''libc_malloc(size: int64): pchar'' | Allociert Ausgabepuffer über libc-Heap | ---- ===== Konstanten ===== ^ Name ^ Typ ^ Wert ^ Sichtbarkeit ^ | ''ENCODE_STD'' | ''int64'' | ''0'' | pub | | ''ENCODE_URL_SAFE'' | ''int64'' | ''1'' | pub | ---- ===== Funktionen ===== ^ Signatur ^ Sichtbarkeit ^ Beschreibung ^ | ''Encode(input: pchar, output: pchar): int64'' | pub | Kodiert C-String als Standard-Base64 | | ''EncodeBytes(input: pchar, input_len: int64, output: pchar): int64'' | pub | Kodiert Bytepuffer mit expliziter Länge | | ''EncodeUrlSafe(input: pchar, output: pchar): int64'' | pub | Kodiert als URL-sicheres Base64 | | ''EncodedLen(input_len: int64): int64'' | pub | Berechnet Ausgabelänge nach Kodierung | | ''buildLookupStd(): pchar'' | priv | Erstellt Standard-Base64-Lookup-Tabelle | | ''buildLookupUrl(): pchar'' | priv | Erstellt URL-Safe-Lookup-Tabelle | | ''decodeWithLookup(input: pchar, output: pchar, max_output_len: int64, lookup: pchar): int64'' | priv | Dekodiert Base64 mit gegebener Lookup-Tabelle | | ''Decode(input: pchar, output: pchar, max_output_len: int64): int64'' | pub | Dekodiert Standard-Base64-String | | ''DecodeUrlSafe(input: pchar, output: pchar, max_output_len: int64): int64'' | pub | Dekodiert URL-sicheres Base64 | | ''DecodedLen(input_len: int64): int64'' | pub | Berechnet Byte-Länge nach Dekodierung | | ''IsValidChar(c: int64): bool'' | pub | Prüft ob Zeichen gültiges Base64-Zeichen | | ''IsValid(input: pchar): bool'' | pub | Prüft ob String valides Base64 ist | | ''HasValidPadding(input: pchar): bool'' | pub | Prüft korrektes Padding am Stringende | | ''StripPadding(input: pchar, output: pchar): int64'' | pub | Entfernt Base64-Padding-Zeichen | | ''AddPadding(input: pchar, output: pchar): int64'' | pub | Ergänzt fehlende Padding-Zeichen | | ''EncodeBasicAuth(username: pchar, password: pchar, output: pchar): int64'' | pub | Kodiert HTTP-Basic-Auth-Header-Wert | | ''DecodeBasicAuth(auth_header: pchar, username: pchar, password: pchar): int64'' | pub | Extrahiert Nutzername und Passwort aus Header | | ''EncodeDataUrl(mime_type: pchar, data: pchar, output: pchar): int64'' | pub | Erzeugt Data-URL mit Base64-Inhalt |