Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: nfstream/nfstream
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
Loading
...
head repository: drnpkr/nfstream
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: all-features-merged-ja4-fixes
Choose a head ref
Loading
Checking mergeability… Don’t worry, you can still create the pull request.
  • 17 commits
  • 68 files changed
  • 1 contributor

Commits on Jan 22, 2025

  1. fixing transport layer sizes

    drnpkr committed Jan 22, 2025
    Configuration menu
    Copy the full SHA
    7367ea5 View commit details
    Browse the repository at this point in the history
  2. bump version

    drnpkr committed Jan 22, 2025
    Configuration menu
    Copy the full SHA
    0b3dd50 View commit details
    Browse the repository at this point in the history

Commits on Feb 9, 2025

  1. Configuration menu
    Copy the full SHA
    f8e3878 View commit details
    Browse the repository at this point in the history

Commits on Jul 9, 2025

  1. Configuration menu
    Copy the full SHA
    17b74d2 View commit details
    Browse the repository at this point in the history
  2. Upgrade nDPI to 4.12 and update test expectations

    - Upgraded nDPI submodule from 4.0 to 4.12
    - Added JA4 client fingerprint support alongside existing JA3 support
    - Updated 33 test result files to match improved nDPI 4.12 detection:
      - 1kxun.pcap: 5 flows now detected as Mikrotik (previously Unknown)
      - KakaoTalk_talk.pcap: 1 flow now detected as AmazonAWS (previously Unknown)
      - Various other test files with improved protocol detection
    - All tests now pass with nDPI 4.12
    drnpkr committed Jul 9, 2025
    Configuration menu
    Copy the full SHA
    aafec4e View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    e3681f6 View commit details
    Browse the repository at this point in the history
  4. Upgrade to nDPI 4.14 with fingerprint field updates

    - Upgrade nDPI submodule from 4.12 to 4.14
    - Remove JA3C support (removed in nDPI 4.14)
    - Rename fingerprint fields: ja4_client_fingerprint → ja4c_fingerprint, ja3_server_fingerprint → ja3s_fingerprint
    - Update C code to use JA4C instead of JA3C
    - Update Python code to match new field names
    - Update test expectations for nDPI 4.14's improved protocol classification
    - All tests passing with new nDPI 4.14 detection results
    drnpkr committed Jul 9, 2025
    Configuration menu
    Copy the full SHA
    4439c68 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    ae865b0 View commit details
    Browse the repository at this point in the history

Commits on Jul 10, 2025

  1. Enhance CSV export with safer data handling

    - Replace manual string concatenation with csv.writer() for RFC 4180 compliance
    - Update open_file() to use text mode with proper encoding and newline handling
    - Remove manual quoting from csv_converter() as csv.writer() handles this properly
    - Bump version to 6.7.0
    
    This addresses potential data corruption with special characters (commas, quotes,
    newlines) in network flow data by using Python's standard CSV module instead
    of manual string formatting.
    drnpkr committed Jul 10, 2025
    Configuration menu
    Copy the full SHA
    0e5bb12 View commit details
    Browse the repository at this point in the history
  2. Update nDPI to include JA4 fingerprinting fixes from PR #2915

    - Updates nDPI from 4.14 stable (90090b9ae) to dev branch (5f312c0cd)
    - Includes fixes for JA4 ALPN fingerprint calculation
    - Includes fixes for JA4 SNI detection with missing extensions
    - Resolves JA4 fingerprint accuracy issues for proper interoperability
    drnpkr committed Jul 10, 2025
    Configuration menu
    Copy the full SHA
    4af71b6 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    24715bb View commit details
    Browse the repository at this point in the history
  4. Add JA4 fingerprinting fixes and bump version to 6.7.1

    - Update nDPI submodule to custom fork with JA4 fixes (drnpkr/nDPI:ja4-fixes-4.14)
    - Incorporates fixes from nDPI PR #2915: ntop/nDPI#2915
    - Fix JA4 ALPN calculation to use first+last characters (not first+second)
    - Fix JA4 SNI detection to properly handle missing SNI extensions
    - Bump version from 6.7.0 to 6.7.1
    - Maintains nDPI 4.14 API compatibility while improving JA4 accuracy
    - All tests pass successfully with corrected JA4 fingerprints
    drnpkr committed Jul 10, 2025
    Configuration menu
    Copy the full SHA
    c5c2468 View commit details
    Browse the repository at this point in the history
  5. Revert fingerprint field names to reflect multi-protocol nature

    Reverted field names from ja4c_fingerprint/ja3s_fingerprint back to
    client_fingerprint/server_fingerprint to better reflect that these
    fields contain protocol-specific fingerprints:
    
    - DHCP: Option request list fingerprints
    - SSH: HASSH client/server fingerprints
    - TLS: JA4C client / JA3S server fingerprints
    
    This resolves confusion where field names suggested they only
    contained JA4/JA3 values, when they actually store various
    protocol fingerprints by design (as in the original NFStream design).
    
    Changes:
    - Reverted Python field names in flow.py
    - Updated C code field references in lib_engine.c
    - Updated test assertions in tests.py
    - Added comments explaining multi-protocol fingerprint nature
    
    The underlying C struct fields remain ja4c/ja3s for nDPI compatibility.
    drnpkr committed Jul 10, 2025
    Configuration menu
    Copy the full SHA
    d40c02e View commit details
    Browse the repository at this point in the history

Commits on Jul 13, 2025

  1. Fix C struct field names to match nDPI convention

    Update fingerprint field names from ja4c/ja3s to ja4_client/ja3_server
    to align with nDPI's struct field naming convention. This improves code
    clarity and consistency with the underlying nDPI library.
    
    Changes:
    - Update C struct fields in lib_engine.c
    - Update Python field access in flow.py
    - Maintain existing client_fingerprint/server_fingerprint API
    
    The CFFI bindings were rebuilt to sync the new field names, and all
    tests pass including TLS fingerprinting verification.
    drnpkr committed Jul 13, 2025
    Configuration menu
    Copy the full SHA
    46de15b View commit details
    Browse the repository at this point in the history
  2. Fix bumpversion configuration and add to dev requirements

    - Update setup.cfg with correct current version (6.7.1)
    - Fix quote style to match actual file patterns
    - Remove reference to non-existent lib_engine.c version field
    - Add bumpversion>=0.6.0 to dev_requirements.txt for proper version management
    drnpkr committed Jul 13, 2025
    Configuration menu
    Copy the full SHA
    b41fc54 View commit details
    Browse the repository at this point in the history

Commits on Jul 14, 2025

  1. Fix IPv6 accounting mode consistency with IPv4

    Make IPv6 ip_size calculation consistent with IPv4 for unified accounting modes.
    IPv6 ip6_un1_plen field excludes the IPv6 header (per RFC), while IPv4 tot_len
    includes the IPv4 header. This caused inconsistent accounting behavior between
    IPv4 and IPv6 flows.
    
    Updated packet_get_ipv6_info() to include IPv6 header size in total length
    calculation for consistent accounting semantics:
    - Before: iph.tot_len = iph6->ip6_hdr.ip6_un1_plen (payload only)
    - After: iph.tot_len = htons(sizeof(struct ndpi_ipv6hdr) + ntohs(iph6->ip6_hdr.ip6_un1_plen))
    
    This ensures unified accounting behavior across IPv4 and IPv6:
    - Mode 0: Raw packet (all headers + data)
    - Mode 1: IP packet (IP header + transport + data)
    - Mode 2: Transport segment (transport header + data)
    - Mode 3: Application payload (data only)
    
    Previously IPv6 Mode 1 and Mode 2 were identical, now they differ by 40 bytes.
    drnpkr committed Jul 14, 2025
    Configuration menu
    Copy the full SHA
    9e1ffed View commit details
    Browse the repository at this point in the history
  2. Bump version: 6.7.1 → 6.7.2

    drnpkr committed Jul 14, 2025
    Configuration menu
    Copy the full SHA
    719cc5d View commit details
    Browse the repository at this point in the history
Loading
Morty Proxy This is a proxified and sanitized view of the page, visit original site.