====== std.net.tls ====== TLS (Transport Layer Security) ist der Standard für verschlüsselte Netzwerkverbindungen und Nachfolger von SSL. Die Unit stellt eine Verbindungsschicht auf Basis von OpenSSL bereit und ermöglicht die Verschlüsselung beliebiger TCP-Verbindungen. Unterstützt wird die Server-Zertifikatsprüfung sowie transparentes Lesen und Schreiben über den verschlüsselten Kanal. ''std.net.tls'' wird intern von ''std.net.https'', ''std.net.imap'' (IMAPS), ''std.net.smtp'' (SMTPS) und anderen sicheren Protokollen als Unterbau verwendet. Direkte Nutzung ist sinnvoll, wenn ein eigenes Protokoll über eine TLS-Verbindung betrieben werden soll. ---- ===== Externe Funktionen ===== ^ Signatur ^ Beschreibung ^ | ''SSL_library_init(): int64'' | Initialisiert OpenSSL-Bibliothek | | ''SSL_load_error_strings()'' | Lädt OpenSSL-Fehlermeldungen | | ''OpenSSL_add_all_algorithms()'' | Registriert alle Krypto-Algorithmen | | ''TLS_method(): int64'' | Gibt TLS-Aushandlungsmethode zurück | | ''SSL_CTX_new(method: int64): int64'' | Erstellt neuen SSL-Kontext | | ''SSL_CTX_free(ctx: int64)'' | Gibt SSL-Kontext frei | | ''SSL_CTX_set_default_verify_paths(ctx: int64): int64'' | Setzt Standard-Zertifikatspfade | | ''SSL_new(ctx: int64): int64'' | Erstellt neue SSL-Verbindungsinstanz | | ''SSL_free(ssl: int64)'' | Gibt SSL-Verbindungsinstanz frei | | ''SSL_set_fd(ssl: int64, fd: int64): int64'' | Verknüpft SSL mit Dateideskriptor | | ''SSL_set_tlsext_host_name(ssl: int64, hostname: int64): int64'' | Setzt SNI-Hostname für TLS | | ''SSL_set_verify(ssl: int64, mode: int64, callback: int64)'' | Konfiguriert Zertifikatsverifizierung | | ''SSL_get_verify_result(ssl: int64): int64'' | Liest Ergebnis der Zertifikatsprüfung | | ''SSL_connect(ssl: int64): int64'' | Führt TLS-Handshake durch | | ''SSL_read(ssl: int64, buf: int64, num: int64): int64'' | Liest Daten über TLS-Verbindung | | ''SSL_write(ssl: int64, buf: int64, num: int64): int64'' | Schreibt Daten über TLS-Verbindung | | ''SSL_shutdown(ssl: int64): int64'' | Beendet TLS-Verbindung geordnet | | ''SSL_get_error(ssl: int64, ret: int64): int64'' | Liest letzten SSL-Fehlercode | ---- ===== Konstanten ===== ^ Name ^ Typ ^ Wert ^ Sichtbarkeit ^ | ''SSL_VERIFY_NONE'' | ''int64'' | ''0'' | pub | | ''SSL_VERIFY_PEER'' | ''int64'' | ''1'' | pub | | ''X509_V_OK'' | ''int64'' | ''0'' | pub | | ''TLS_OK'' | ''int64'' | ''0'' | pub | | ''TLS_ERR_INIT'' | ''int64'' | ''-1'' | pub | | ''TLS_ERR_CTX'' | ''int64'' | ''-2'' | pub | | ''TLS_ERR_SSL'' | ''int64'' | ''-3'' | pub | | ''TLS_ERR_CONNECT'' | ''int64'' | ''-4'' | pub | | ''TLS_ERR_READ'' | ''int64'' | ''-5'' | pub | | ''TLS_ERR_WRITE'' | ''int64'' | ''-6'' | pub | | ''TLS_ERR_VERIFY'' | ''int64'' | ''-7'' | pub | ---- ===== Typen ===== ==== TLSContext (struct) ==== ^ Feld ^ Typ ^ ==== TLSConn (struct) ==== ^ Feld ^ Typ ^ ---- ===== Funktionen ===== ^ Signatur ^ Sichtbarkeit ^ Beschreibung ^ | ''TLSInit(): TLSContext'' | pub | Initialisiert TLS-Kontext via OpenSSL | | ''TLSConnect(ctx: TLSContext, fd: int64, hostname: int64): TLSConn'' | pub | Öffnet TLS-Verbindung über TCP-Socket | | ''TLSRead(conn: TLSConn, buf: int64, bufsize: int64): int64'' | pub | Liest Daten über TLS-Verbindung | | ''TLSWrite(conn: TLSConn, buf: int64, bufsize: int64): int64'' | pub | Schreibt Daten über TLS-Verbindung | | ''TLSClose(conn: TLSConn)'' | pub | Schließt TLS-Verbindung | | ''TLSFree(ctx: TLSContext)'' | pub | Gibt TLS-Kontext frei |