populateTlsSettings method

void populateTlsSettings({
  1. required String? streamSecurity,
  2. required bool allowInsecure,
  3. required String? sni,
  4. required String? fingerprint,
  5. required String? alpns,
  6. required String? publicKey,
  7. required String? shortId,
  8. required String? spiderX,
  9. String? pinnedPeerCertSha256,
  10. String? verifyPeerCertByName,
})

Updates the transport builder from TLS/Reality share-link settings.

streamSecurity selects the tls or reality settings object. sni keeps the configured server identity; alpns is a comma-separated ALPN list. publicKey, shortId and spiderX are Reality parameters. Optional pinnedPeerCertSha256 and verifyPeerCertByName retain explicit verification settings. allowInsecure is accepted for compatibility but is not emitted as a certificate-verification bypass.

Implementation

void populateTlsSettings({
  required String? streamSecurity,
  required bool allowInsecure,
  required String? sni,
  required String? fingerprint,
  required String? alpns,
  required String? publicKey,
  required String? shortId,
  required String? spiderX,
  String? pinnedPeerCertSha256,
  String? verifyPeerCertByName,
}) {
  streamSettingsBuilder.security = streamSecurity ?? '';
  Map<String, dynamic> tlsSetting = {
    "serverName": sni,
    "alpn": alpns == '' ? null : alpns?.split(','),
    "minVersion": null,
    "maxVersion": null,
    "preferServerCipherSuites": null,
    "cipherSuites": null,
    "fingerprint": fingerprint,
    "certificates": null,
    "disableSystemRoot": null,
    "enableSessionResumption": null,
    "show": false,
    "publicKey": publicKey,
    "shortId": shortId,
    "spiderX": spiderX,
    "pinnedPeerCertSha256": _emptyToNull(pinnedPeerCertSha256),
    "verifyPeerCertByName": _emptyToNull(verifyPeerCertByName),
  };
  if (streamSecurity == 'tls') {
    streamSettingsBuilder.realitySettings = null;
    streamSettingsBuilder.tlsSettings = tlsSetting;
  } else if (streamSecurity == 'reality') {
    streamSettingsBuilder.tlsSettings = null;
    streamSettingsBuilder.realitySettings = tlsSetting;
  }
}