update dependencies
Updated Go to 1.23 and the packages used to recent versions.
Thanks! I no longer really work on this repository, but I can merge this. Can you confirm the output of running all of the unit tests?
I failed to build embedded tor and I don't need that mode, so I skipped testing it.
Maybe you know why this may happen when building tor-static?
tor-static$ go run build.go build-all
2025/08/25 22:42:56 *** Building all ***
2025/08/25 22:42:56 *** Building openssl ***
2025/08/25 22:42:56 Running in folder openssl: sh ./config --prefix=/home/user/tor-static/openssl/dist --openssldir=/home/user/tor-static/openssl/dist no-shared no-dso no-zlib
2025/08/25 22:42:56 *** Done building openssl ***
2025/08/25 22:42:56 *** Done building all ***
2025/08/25 22:42:56 exit status 127
exit status 1
(It's a Debian machine with compilers installed.)
So I tested everything else:
$ go test -v ./control/... ./tests/... ./tor/... ./torutil/...
? github.com/cretz/bine/control [no test files]
=== RUN TestAuthenticateNull
context_test.go:63: Only runs if -tor is set
--- SKIP: TestAuthenticateNull (0.00s)
=== RUN TestAuthenticateSafeCookie
context_test.go:63: Only runs if -tor is set
--- SKIP: TestAuthenticateSafeCookie (0.00s)
=== RUN TestAuthenticateHashedPassword
context_test.go:63: Only runs if -tor is set
--- SKIP: TestAuthenticateHashedPassword (0.00s)
=== RUN TestGetSetAndResetConf
context_test.go:63: Only runs if -tor is set
--- SKIP: TestGetSetAndResetConf (0.00s)
=== RUN TestLoadConf
context_test.go:63: Only runs if -tor is set
--- SKIP: TestLoadConf (0.00s)
=== RUN TestSaveConf
context_test.go:63: Only runs if -tor is set
--- SKIP: TestSaveConf (0.00s)
=== RUN TestHSFetch
context_test.go:36: Only runs if -tor and -tor.network are set
--- SKIP: TestHSFetch (0.00s)
=== RUN TestSignal
context_test.go:63: Only runs if -tor is set
--- SKIP: TestSignal (0.00s)
=== RUN TestProtocolInfo
context_test.go:63: Only runs if -tor is set
--- SKIP: TestProtocolInfo (0.00s)
=== RUN TestDialerSimpleHTTP
context_test.go:36: Only runs if -tor and -tor.network are set
--- SKIP: TestDialerSimpleHTTP (0.00s)
=== RUN TestForwardSimpleHTTP
context_test.go:36: Only runs if -tor and -tor.network are set
--- SKIP: TestForwardSimpleHTTP (0.00s)
=== RUN TestEmbeddedGeoIPFile
context_test.go:63: Only runs if -tor is set
--- SKIP: TestEmbeddedGeoIPFile (0.00s)
=== RUN TestIsolateSocksAuth
context_test.go:63: Only runs if -tor is set
--- SKIP: TestIsolateSocksAuth (0.00s)
=== RUN TestListenSimpleHTTPV3
context_test.go:36: Only runs if -tor and -tor.network are set
--- SKIP: TestListenSimpleHTTPV3 (0.00s)
PASS
ok github.com/cretz/bine/tests (cached)
? github.com/cretz/bine/tor [no test files]
=== RUN TestOnionServiceIDFromPrivateKey
--- PASS: TestOnionServiceIDFromPrivateKey (0.08s)
=== RUN TestOnionServiceIDFromPublicKey
--- PASS: TestOnionServiceIDFromPublicKey (0.15s)
=== RUN TestOnionServiceIDFromV2PublicKey
--- PASS: TestOnionServiceIDFromV2PublicKey (0.00s)
=== RUN TestOnionServiceIDFromV3PublicKey
--- PASS: TestOnionServiceIDFromV3PublicKey (0.00s)
=== RUN TestPartitionString
--- PASS: TestPartitionString (0.00s)
=== RUN TestPartitionStringFromEnd
--- PASS: TestPartitionStringFromEnd (0.00s)
=== RUN TestEscapeSimpleQuotedStringIfNeeded
--- PASS: TestEscapeSimpleQuotedStringIfNeeded (0.00s)
=== RUN TestEscapeSimpleQuotedString
--- PASS: TestEscapeSimpleQuotedString (0.00s)
=== RUN TestEscapeSimpleQuotedStringContents
--- PASS: TestEscapeSimpleQuotedStringContents (0.00s)
=== RUN TestUnescapeSimpleQuotedStringIfNeeded
--- PASS: TestUnescapeSimpleQuotedStringIfNeeded (0.00s)
=== RUN TestUnescapeSimpleQuotedString
--- PASS: TestUnescapeSimpleQuotedString (0.00s)
=== RUN TestUnescapeSimpleQuotedStringContents
--- PASS: TestUnescapeSimpleQuotedStringContents (0.00s)
PASS
ok github.com/cretz/bine/torutil (cached)
=== RUN TestUnmarshalMarshal
--- PASS: TestUnmarshalMarshal (0.00s)
=== RUN TestSignVerify
--- PASS: TestSignVerify (0.00s)
=== RUN TestCryptoSigner
--- PASS: TestCryptoSigner (0.00s)
=== RUN TestGolden
--- PASS: TestGolden (0.02s)
=== RUN TestMalleability
--- PASS: TestMalleability (0.00s)
PASS
ok github.com/cretz/bine/torutil/ed25519 (cached)
? github.com/cretz/bine/torutil/ed25519/internal/edwards25519 [no test files]
? github.com/cretz/bine/torutil/geoipembed [no test files]
Installed examples, except ones using embedded tor:
bine/examples$ go install ./grpc/ ./httpaltsvc/ ./simpleclient/ ./simpleserver/
bine/examples$
Also I ran all the network tests:
bine/tests]$ go test -c
bine/tests]$ ./tests.test -test.v -tor -tor.network -tor.verbose
Here is the output: https://gist.githubusercontent.com/starius/e5960b46de1a94eda4bde3123dc3fed4/raw/bf378a6ea4fe6fe248c827bab965993dc3eb86a8/gistfile1.txt
Note that one tests is failing:
Unique IDs without isolate: map[9:{} 11:{}]
tor_isolate_socks_auth_test.go:25:
Error Trace: /home/user/bine/tests/tor_isolate_socks_auth_test.go:25
Error: "map[9:{} 11:{}]" should have 1 item(s), but has 2
Test: TestIsolateSocksAuth
--- FAIL: TestIsolateSocksAuth (23.89s)
I checked master branch - it fails in it as well. Maybe some bug in my Tor version (0.4.8.16)?
Unsure to be honest, I'd have to spend time debugging, but I have effectively abandoned work on this project.
I can dig deeper into it on the weekend. Let's keep it open for now.
@starius Note that this means that users must have at least go 1.23.0 installed to build bine, which is probably too strict, yes?
- go 1.15
+ go 1.23.0
@elimisteve This Go version is needed to bump the dependencies.
Note that even Go 1.23 has stopped receiving security updated from Go team via minor releases. The actual versions are 1.24 and 1.25 now.
Minor releases to address problems (including security issues) for Go 1.x stop once Go 1.x+2 is released.
From https://go.dev/wiki/Go-Release-Cycle