Refactored detection logic to include ports and a confidence score

This commit is contained in:
2025-10-09 11:54:43 +02:00
parent 2081d684ed
commit 2ab59437fa
17 changed files with 795 additions and 129 deletions

View File

@@ -32,7 +32,7 @@ func TestDetectSSH(t *testing.T) {
httpBanner := []byte("GET / HTTP/1.1\r\nHost: example.com\r\n\r\n")
t.Run("OpenSSH client", func(t *testing.T) {
p, err := Detect(Server, openSSHBanner)
p, _, err := Detect(Server, openSSHBanner, 0, 22)
if err != nil {
t.Fatal(err)
return
@@ -45,7 +45,7 @@ func TestDetectSSH(t *testing.T) {
})
t.Run("OpenSSH server", func(t *testing.T) {
p, err := Detect(Server, openSSHBanner)
p, _, err := Detect(Server, openSSHBanner, 0, 22)
if err != nil {
t.Fatal(err)
return
@@ -58,7 +58,7 @@ func TestDetectSSH(t *testing.T) {
})
t.Run("OpenSSH server with banner", func(t *testing.T) {
p, err := Detect(Server, preBannerSSH)
p, _, err := Detect(Server, preBannerSSH, 0, 22)
if err != nil {
t.Fatal(err)
return
@@ -71,7 +71,7 @@ func TestDetectSSH(t *testing.T) {
})
t.Run("Dropbear server", func(t *testing.T) {
p, err := Detect(Server, dropbearBanner)
p, _, err := Detect(Server, dropbearBanner, 0, 22)
if err != nil {
t.Fatal(err)
return
@@ -84,7 +84,7 @@ func TestDetectSSH(t *testing.T) {
})
t.Run("Invalid MySQL banner", func(t *testing.T) {
_, err := Detect(Server, mysqlBanner)
_, _, err := Detect(Server, mysqlBanner, 0, 3306)
if !errors.Is(err, ErrUnknown) {
t.Fatalf("expected unknown format, got error %T: %q", err, err)
} else {
@@ -93,7 +93,7 @@ func TestDetectSSH(t *testing.T) {
})
t.Run("Invalid HTTP banner", func(t *testing.T) {
_, err := Detect(Server, httpBanner)
_, _, err := Detect(Server, httpBanner, 0, 80)
if !errors.Is(err, ErrUnknown) {
t.Fatalf("expected unknown format, got error %T: %q", err, err)
} else {