summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClaude <noreply@anthropic.com>2025-11-23 10:41:36 +0000
committerClaude <noreply@anthropic.com>2025-11-23 10:41:36 +0000
commit53501f01e8c8581ab1fba48dd49c6d40f6f4f622 (patch)
treee20d9242f39989e175af156f3e6e3168823c2c0f
parent3d5286365747c7d2418be16544116f67964b8c48 (diff)
downloadnoshitalk-53501f01e8c8581ab1fba48dd49c6d40f6f4f622.tar.gz
noshitalk-53501f01e8c8581ab1fba48dd49c6d40f6f4f622.tar.xz
noshitalk-53501f01e8c8581ab1fba48dd49c6d40f6f4f622.zip
Fix test cases for correct v3 onion address format
- Fix tor_test.go: use 56-char base32 strings for valid onion addresses - Fix crypto_test.go: use net.Pipe() for proper bidirectional auth test - Fix go.sum: remove corrupted first line
-rw-r--r--go.sum1
-rw-r--r--pkg/crypto/crypto_test.go31
-rw-r--r--pkg/tor/tor_test.go34
3 files changed, 21 insertions, 45 deletions
diff --git a/go.sum b/go.sum
index 99f82c5..f51ec4d 100644
--- a/go.sum
+++ b/go.sum
@@ -1,4 +1,3 @@
-cat go.sum
fyne.io/fyne/v2 v2.6.3 h1:cvtM2KHeRuH+WhtHiA63z5wJVBkQ9+Ay0UMl9PxFHyA=
fyne.io/fyne/v2 v2.6.3/go.mod h1:NGSurpRElVoI1G3h+ab2df3O5KLGh1CGbsMMcX0bPIs=
fyne.io/systray v1.11.0 h1:D9HISlxSkx+jHSniMBR6fCFOUjk1x/OOOJLa9lJYAKg=
diff --git a/pkg/crypto/crypto_test.go b/pkg/crypto/crypto_test.go
index 1d76767..47d35c1 100644
--- a/pkg/crypto/crypto_test.go
+++ b/pkg/crypto/crypto_test.go
@@ -339,36 +339,16 @@ func TestSecureBuffer(t *testing.T) {
// We can't easily test this without accessing memguard internals
}
-// Mock connection for auth tests
-type mockConn struct {
- readBuf *bytes.Buffer
- writeBuf *bytes.Buffer
-}
-
-func newMockConnPair() (*mockConn, *mockConn) {
- buf1 := &bytes.Buffer{}
- buf2 := &bytes.Buffer{}
- return &mockConn{readBuf: buf1, writeBuf: buf2},
- &mockConn{readBuf: buf2, writeBuf: buf1}
-}
-
-func (m *mockConn) Read(b []byte) (n int, err error) { return m.readBuf.Read(b) }
-func (m *mockConn) Write(b []byte) (n int, err error) { return m.writeBuf.Write(b) }
-func (m *mockConn) Close() error { return nil }
-func (m *mockConn) LocalAddr() net.Addr { return nil }
-func (m *mockConn) RemoteAddr() net.Addr { return nil }
-func (m *mockConn) SetDeadline(t time.Time) error { return nil }
-func (m *mockConn) SetReadDeadline(t time.Time) error { return nil }
-func (m *mockConn) SetWriteDeadline(t time.Time) error { return nil }
-
func TestMutualAuth(t *testing.T) {
sharedSecret := make([]byte, 32)
for i := range sharedSecret {
sharedSecret[i] = byte(i)
}
- // Create connected mock pair
- serverConn, clientConn := newMockConnPair()
+ // Create a proper bidirectional connection using net.Pipe
+ serverConn, clientConn := net.Pipe()
+ defer serverConn.Close()
+ defer clientConn.Close()
// Run server auth in goroutine
serverErr := make(chan error, 1)
@@ -376,9 +356,6 @@ func TestMutualAuth(t *testing.T) {
serverErr <- PerformServerAuth(serverConn, sharedSecret)
}()
- // Small delay to ensure server sends challenge first
- time.Sleep(10 * time.Millisecond)
-
// Run client auth
err := PerformClientAuth(clientConn, sharedSecret)
if err != nil {
diff --git a/pkg/tor/tor_test.go b/pkg/tor/tor_test.go
index b6411e0..8f78a5e 100644
--- a/pkg/tor/tor_test.go
+++ b/pkg/tor/tor_test.go
@@ -11,20 +11,20 @@ func TestValidateOnionAddress(t *testing.T) {
addr string
wantErr bool
}{
- // Valid v3 .onion addresses
+ // Valid v3 .onion addresses (56 base32 chars + .onion)
{
name: "valid v3 onion with port",
- addr: "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuv.onion:8080",
+ addr: "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuvwx.onion:8080",
wantErr: false,
},
{
name: "valid v3 onion without port",
- addr: "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuv.onion",
+ addr: "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuvwx.onion",
wantErr: false,
},
{
name: "valid v3 onion lowercase",
- addr: "vwxyz234567abcdefghijklmnopqrstuvwxyz234567abcdefghijk.onion:443",
+ addr: "vwxyz234567abcdefghijklmnopqrstuvwxyz234567abcdefghijklm.onion:443",
wantErr: false,
},
@@ -51,27 +51,27 @@ func TestValidateOnionAddress(t *testing.T) {
},
{
name: "uppercase not allowed",
- addr: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567ABCDEFGHIJKLMNOPQRSTUV.onion",
+ addr: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567ABCDEFGHIJKLMNOPQRSTUVWX.onion",
wantErr: true,
},
{
name: "invalid characters",
- addr: "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrst01.onion",
- wantErr: true, // 0 and 1 not in base32
+ addr: "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrst0189.onion",
+ wantErr: true, // 0, 1, 8, 9 not in base32
},
{
name: "too long",
- addr: "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuvwxyz.onion",
+ addr: "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuvwxyzab.onion",
wantErr: true,
},
{
name: "missing .onion",
- addr: "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuv",
+ addr: "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuvwx",
wantErr: true,
},
{
name: "invalid port",
- addr: "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuv.onion:999999",
+ addr: "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuvwx.onion:999999",
wantErr: true,
},
{
@@ -114,12 +114,12 @@ func TestValidateOnionAddress_ErrorMessages(t *testing.T) {
}
func TestOnionRegex(t *testing.T) {
- // Valid patterns
+ // Valid patterns (56 base32 chars + .onion + optional port)
validAddrs := []string{
- "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuv.onion",
- "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuv.onion:80",
- "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuv.onion:8080",
- "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuv.onion:65535",
+ "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuvwx.onion",
+ "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuvwx.onion:80",
+ "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuvwx.onion:8080",
+ "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuvwx.onion:65535",
}
for _, addr := range validAddrs {
@@ -261,7 +261,7 @@ func TestConstants(t *testing.T) {
// Benchmark validation
func BenchmarkValidateOnionAddress_Valid(b *testing.B) {
- addr := "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuv.onion:8080"
+ addr := "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuvwx.onion:8080"
for i := 0; i < b.N; i++ {
ValidateOnionAddress(addr)
}
@@ -275,7 +275,7 @@ func BenchmarkValidateOnionAddress_Invalid(b *testing.B) {
}
func BenchmarkOnionRegex_Match(b *testing.B) {
- addr := "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuv.onion:8080"
+ addr := "abcdefghijklmnopqrstuvwxyz234567abcdefghijklmnopqrstuvwx.onion:8080"
for i := 0; i < b.N; i++ {
OnionRegex.MatchString(addr)
}