Files
Jimmy Fjällid 0c97d2f64a krb5ssp,ldap: migrate to gokrb5/v9 and adapt to decoupled ldap/v3
go-smb and github.com/jfjallid/ldap/v3 were mutually dependent modules:
go-smb/ldap wraps ldap/v3, while ldap/v3 reached back into go-smb/{gss,
krb5ssp,ntlmssp}. Because krb5ssp.KRB5Token carries gokrb5 types across that
boundary, the two were also pinned to the same gokrb5 major version. ldap/v3
v3.101.0 severs that cycle (it no longer imports go-smb); this is the go-smb
side of the change.

krb5ssp:
- Migrate from gokrb5/v8 to gokrb5/v9 (krb5ssp.go, wrapToken.go, the
  ccache_{linux,darwin,windows}.go ccache loaders and tests). No behaviour
  change; the v9 API is source-compatible for the surface we use.

ldap:
- ldap/v3 now inverts its NTLM dependency instead of importing go-smb/ntlmssp.
  Add ldap/ntlm.go: an ntlmssp.Client-backed adapter implementing ldap's
  NTLMNegotiator plus the optional NTLMChannelBinder and NTLMSessionProvider
  capabilities, registered as ldap.NTLMNegotiatorFactory in init(). Importing
  go-smb/ldap therefore restores out-of-the-box NTLM binds; the wrapper's
  credential-based NTLMChallengeBind path is unchanged and now resolves the
  negotiator through this factory.

go.mod:
- gokrb5/v8 -> gokrb5/v9 v9.0.0; ldap/v3 v3.100.0 -> v3.101.0. gokrb5 is now an
  ordinary shared dependency resolved by MVS.
2026-06-06 16:10:06 +02:00

25 lines
657 B
Modula-2

module github.com/jfjallid/go-smb
go 1.24.0
require golang.org/x/crypto v0.48.0
require (
github.com/go-asn1-ber/asn1-ber v1.5.8-0.20250403174932-29230038a667
github.com/jfjallid/gofork v1.7.6
github.com/jfjallid/gokrb5/v9 v9.0.0
github.com/jfjallid/golog v0.3.6
github.com/jfjallid/ldap/v3 v3.101.0
github.com/jfjallid/mstypes v0.0.2
github.com/jfjallid/ndr v0.1.1
golang.org/x/net v0.50.0
golang.org/x/term v0.40.0
)
require (
github.com/alexbrainman/sspi v0.0.0-20250919150558-7d374ff0d59e // indirect
github.com/google/uuid v1.6.0 // indirect
golang.org/x/sys v0.41.0 // indirect
software.sslmate.com/src/go-pkcs12 v0.7.0 // indirect
)