Skip to content

feat: add secure connections and FastFrame reliability - #189

Closed
SaiDeepikaKuchibhotla wants to merge 2 commits into
tektronix:mainfrom
SaiDeepikaKuchibhotla:secure-fastframe-focused
Closed

SaiDeepikaKuchibhotla wants to merge 2 commits into
tektronix:mainfrom
SaiDeepikaKuchibhotla:secure-fastframe-focused

Conversation

@SaiDeepikaKuchibhotla

Copy link
Copy Markdown
Contributor

Proposed changes

This PR adds secure connection support and improves FastFrame waveform transfer reliability.

Secure connection support

  • Add TLS and token-based authentication for Tektronix instruments.
  • Add automatic security negotiation while preserving the existing insecure connection path.
  • Add certificate discovery, fingerprint validation, trust-on-first-use handling, and certificate mismatch detection.
  • Add persistent credential storage for trusted instruments.
  • Support TLS server-name resolution for hostnames and IP-based connections.
  • Add authentication and secure connection examples.
  • Document secure connection and EUCRA usage.

FastFrame reliability

  • Add waveform transfer timing and FastFrame metadata handling.
  • Improve FastFrame frame-count and summary-frame reporting.
  • Improve streamed waveform response handling.
  • Add safeguards for zero or negative transfer times.
  • Improve connection and background-thread behavior during waveform acquisition.

Testing

  • Added unit tests for:
    • TLS and token authentication
    • Certificate parsing and trust handling
    • Credential storage and password obfuscation
    • Secure-channel wiring
    • Connection error handling
    • Waveform transfer timing
    • FastFrame metadata and frame-count behavior
  • Non-documentation test suite passes locally: 193 passed, 2 deselected.

Related documentation and usage examples were added under docs/ and examples/.

Addresses #< fill in issue number here >

Types of changes

What types of changes does your code introduce?
Put an x in the boxes that apply

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Functionality update (non-breaking change which updates or changes existing functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • CI/CD update (an update to the CI/CD workflows, scripts, and/or configurations)
  • Documentation update (an update to enhance the user experience when reading through the docs)

Checklist

Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

  • I have followed the guidelines in the CONTRIBUTING document
  • I have signed the CLA
  • I have checked to ensure there aren't other open Pull Requests for the same update/change
  • I have created (or updated) an Issue to track the status of this update/change and updated the link in this PR description (see above in the Proposed changes section) using the wording Addresses #<issue_number>
  • I have performed a self-review of my code
  • My code follows the style guidelines of this project
  • I have commented my code, particularly in hard-to-understand areas
  • Basic linting passes locally with my changes
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have added necessary documentation (if appropriate)
  • I have updated the Changelog with a brief description of my changes

@github-actions

github-actions Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

Breaking API Changes

src/tekhsi/_tek_highspeed_server_pb2.py:185: WaveformHeader.__slots__:
Attribute value was changed:
  Old: ['bitmask', 'chunksize', 'dataid', 'hasdata', 'horizontalUnits', 'horizontalfractionalzeroindex', 'horizontalspacing', 'horizontalzeroindex', 'iq_centerFrequency', 'iq_fftLength', 'iq_rbw', 'iq_span', 'iq_windowType', 'noofsamples', 'pairtype', 'sourcename', 'sourcewidth', 'transid', 'verticaloffset', 'verticalspacing', 'verticalunits', 'wfmtype']
  New: ('sourcename', 'sourcewidth', 'dataid', 'transid', 'horizontalUnits', 'horizontalspacing', 'horizontalzeroindex', 'horizontalfractionalzeroindex', 'noofsamples', 'chunksize', 'wfmtype', 'bitmask', 'pairtype', 'verticalunits', 'verticalspacing', 'verticaloffset', 'iq_centerFrequency', 'iq_fftLength', 'iq_rbw', 'iq_span', 'iq_windowType', 'hasdata', 'num_frames', 'frame_info', 'current_frame_index', 'probe_details', 'channel_sparam')

Link to workflow run

@github-actions

github-actions Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

Test Results (windows)

path passed xpassed subtotal
tests\test_auth_basic.py 14 14
tests\test_client.py 81 5 86
tests\test_credential_store.py 20 20
tests\test_load_timing.py 9 9
tests\test_logging.py 3 3
tests\test_security.py 38 38
tests\test_security_wiring.py 4 4
tests\test_tek_hsi_connect_security.py 19 19
TOTAL 188 5 193

Link to workflow run

@github-actions

github-actions Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

Test Results (macos)

path passed subtotal
tests/test_auth_basic.py 14 14
tests/test_client.py 86 86
tests/test_credential_store.py 20 20
tests/test_load_timing.py 9 9
tests/test_logging.py 3 3
tests/test_security.py 38 38
tests/test_security_wiring.py 4 4
tests/test_tek_hsi_connect_security.py 19 19
TOTAL 193 193

Link to workflow run

@github-actions

github-actions Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

Test Results (ubuntu)

path passed subtotal
tests/test_auth_basic.py 14 14
tests/test_client.py 86 86
tests/test_credential_store.py 20 20
tests/test_load_timing.py 9 9
tests/test_logging.py 3 3
tests/test_security.py 38 38
tests/test_security_wiring.py 4 4
tests/test_tek_hsi_connect_security.py 19 19
TOTAL 193 193

Link to workflow run

@SaiDeepikaKuchibhotla
SaiDeepikaKuchibhotla deleted the secure-fastframe-focused branch October 5, 2026 15:39

This branch was successfully deployed

1 active deployment
package-build — 7d9a2b19 Deployed Oct 3, 2026 by SaiDeepikaKuchibhotla via package-build / Build package #461
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant