Skip to content

Commit c1fa18c

Browse files
authored
AGDNS-3720 Refactor TLS vol.3
1 parent 3ff8740 commit c1fa18c

33 files changed

Lines changed: 1557 additions & 1575 deletions

internal/aghtest/interface.go

Lines changed: 56 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -203,9 +203,13 @@ func (m *Registrar) Register(method, path string, h http.HandlerFunc) {
203203
m.OnRegister(method, path, h)
204204
}
205205

206-
// TLSConfigProvider is a fake [aghtls.TLSConfigProvider] implementation for
207-
// tests.
208-
type TLSConfigProvider struct {
206+
// Manager is a fake [aghtls.Manager] implementation for tests.
207+
type Manager struct {
208+
OnStart func(ctx context.Context) (err error)
209+
OnShutdown func(ctx context.Context) (err error)
210+
OnRefresh func(ctx context.Context) (err error)
211+
OnSet func(ctx context.Context, certKey aghtls.TLSPair) (err error)
212+
OnUpdates func(ctx context.Context) (updates <-chan aghtls.UpdateSignal)
209213
OnTLSConfig func() (conf *tls.Config)
210214
OnRootCAs func() (cert *x509.CertPool)
211215
OnHasIPAddrs func() (ok bool)
@@ -214,42 +218,68 @@ type TLSConfigProvider struct {
214218
ctx context.Context,
215219
servePlainDNS aghalg.NullBool,
216220
conf *aghtls.ExtendedTLSConfig,
217-
) (changed bool, err error)
221+
) (restartHTTPS bool, err error)
222+
OnCipherSuites func() (cs []uint16)
218223
}
219224

220225
// type check
221-
var _ aghtls.TLSConfigProvider = (*TLSConfigProvider)(nil)
226+
var _ aghtls.Manager = (*Manager)(nil)
227+
228+
// CipherSuites implements the [aghtls.Manager] interface for *Manager.
229+
func (m *Manager) CipherSuites() (cs []uint16) {
230+
return m.OnCipherSuites()
231+
}
232+
233+
// Set implements the [aghtls.Manager] interface for *Manager.
234+
func (m *Manager) Set(ctx context.Context, certKey aghtls.TLSPair) (err error) {
235+
return m.OnSet(ctx, certKey)
236+
}
237+
238+
// Start implements the [aghtls.Manager] interface for *Manager.
239+
func (m *Manager) Start(ctx context.Context) (err error) {
240+
return m.OnStart(ctx)
241+
}
242+
243+
// Shutdown implements the [aghtls.Manager] interface for *Manager.
244+
func (m *Manager) Shutdown(ctx context.Context) (err error) {
245+
return m.OnShutdown(ctx)
246+
}
247+
248+
// Refresh implements the [aghtls.Manager] interface for *Manager.
249+
func (m *Manager) Refresh(ctx context.Context) (err error) {
250+
return m.OnRefresh(ctx)
251+
}
252+
253+
// Updates implements the [aghtls.Manager] interface for *Manager.
254+
func (m *Manager) Updates(ctx context.Context) (updates <-chan aghtls.UpdateSignal) {
255+
return m.OnUpdates(ctx)
256+
}
222257

223-
// TLSConfig implements the [aghtls.TLSConfigProvider] interface for
224-
// *TLSConfigProvider.
225-
func (t *TLSConfigProvider) TLSConfig() (conf *tls.Config) {
226-
return t.OnTLSConfig()
258+
// TLSConfig implements the [aghtls.Manager] interface for *Manager.
259+
func (m *Manager) TLSConfig() (conf *tls.Config) {
260+
return m.OnTLSConfig()
227261
}
228262

229-
// RootCAs implements the [aghtls.TLSConfigProvider] interface for
230-
// *TLSConfigProvider.
231-
func (t *TLSConfigProvider) RootCAs() (pool *x509.CertPool) {
232-
return t.OnRootCAs()
263+
// RootCAs implements the [aghtls.Manager] interface for *Manager.
264+
func (m *Manager) RootCAs() (pool *x509.CertPool) {
265+
return m.OnRootCAs()
233266
}
234267

235-
// HasIPAddrs implements the [aghtls.TLSConfigProvider] interface for
236-
// *TLSConfigProvider.
237-
func (t *TLSConfigProvider) HasIPAddrs() (ok bool) {
238-
return t.OnHasIPAddrs()
268+
// HasIPAddrs implements the [aghtls.Manager] interface for *Manager.
269+
func (m *Manager) HasIPAddrs() (ok bool) {
270+
return m.OnHasIPAddrs()
239271
}
240272

241-
// ExtendedTLSConfig implements the [aghtls.TLSConfigProvider] interface for
242-
// *TLSConfigProvider.
243-
func (t *TLSConfigProvider) ExtendedTLSConfig() (conf *aghtls.ExtendedTLSConfig) {
244-
return t.OnExtendedTLSConfig()
273+
// ExtendedTLSConfig implements the [aghtls.Manager] interface for *Manager.
274+
func (m *Manager) ExtendedTLSConfig() (conf *aghtls.ExtendedTLSConfig) {
275+
return m.OnExtendedTLSConfig()
245276
}
246277

247-
// SetExtendedTLSConfig implements the [aghtls.TLSConfigProvider] interface for
248-
// *TLSConfigProvider.
249-
func (t *TLSConfigProvider) SetExtendedTLSConfig(
278+
// SetExtendedTLSConfig implements the [aghtls.Manager] interface for *Manager.
279+
func (m *Manager) SetExtendedTLSConfig(
250280
ctx context.Context,
251281
servePlainDNS aghalg.NullBool,
252282
conf *aghtls.ExtendedTLSConfig,
253-
) (changed bool, err error) {
254-
return t.OnSetExtendedTLSConfig(ctx, servePlainDNS, conf)
283+
) (restartHTTPS bool, err error) {
284+
return m.OnSetExtendedTLSConfig(ctx, servePlainDNS, conf)
255285
}

internal/aghtls/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77

88
// ExtendedTLSConfig is the TLS configuration for DNS-over-TLS, DNS-over-QUIC,
99
// and HTTPS. When adding new properties, update the [ExtendedTLSConfig.Clone]
10-
// and [home.setPrivateFieldsAndCompare] methods as necessary.
10+
// and [setPrivateFieldsAndCompare] methods as necessary.
1111
//
1212
// TODO(m.kazantsev): Add documentation for each field.
1313
type ExtendedTLSConfig struct {

internal/aghtls/configprovider.go

Lines changed: 0 additions & 80 deletions
This file was deleted.

0 commit comments

Comments
 (0)