inbound-tls-defaults.ts 958 B

12345678910111213141516171819202122232425262728293031323334
  1. import { TlsStreamSettingsSchema } from '@/schemas/protocols/security/tls';
  2. function defaultCertificate(): Record<string, unknown> {
  3. return {
  4. useFile: true,
  5. certificateFile: '',
  6. keyFile: '',
  7. certificate: [],
  8. key: [],
  9. ocspStapling: 0,
  10. oneTimeLoading: false,
  11. usage: 'encipherment',
  12. buildChain: false,
  13. };
  14. }
  15. export function createTlsSettingsWithDefaultCert(): Record<string, unknown> {
  16. const tls = TlsStreamSettingsSchema.parse({}) as Record<string, unknown>;
  17. tls.certificates = [defaultCertificate()];
  18. return tls;
  19. }
  20. export function createHysteriaTlsSettingsWithDefaultCert(): Record<string, unknown> {
  21. const tls = createTlsSettingsWithDefaultCert();
  22. tls.alpn = ['h3'];
  23. const settings = tls.settings && typeof tls.settings === 'object' && !Array.isArray(tls.settings)
  24. ? { ...(tls.settings as Record<string, unknown>) }
  25. : {};
  26. settings.fingerprint = '';
  27. tls.settings = settings;
  28. return tls;
  29. }