[PR #147] feat: add Salamander ObfsPSK support #165

Open
opened 2026-10-13 21:04:11 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/amnezia-vpn/amneziawg-go/pull/147
Author: @yaroslav-ulta
Created: 6/15/2026
Status: 🔄 Open

Base: master ← Head: feat/salamander-awg2-obfs-psk


📝 Commits (1)

  • 21028ef feat: add Salamander ObfsPSK support

📊 Changes

7 files changed (+227 additions, -4 deletions)

View changed files

📝 device/device.go (+2 -0)
📝 device/peer.go (+13 -1)
📝 device/receive.go (+7 -3)
➕ device/salamander.go (+125 -0)
➕ device/salamander_test.go (+59 -0)
📝 device/send.go (+8 -0)
📝 device/uapi.go (+13 -0)

📄 Description

Summary

  • add stateless Salamander packet obfuscation keyed by device-level obfs_psk
  • expose obfs_psk through UAPI get/set
  • obfuscate data, handshake cookie, and incoming packet paths when ObfsPSK is configured

Validation

  • go test ./device -run 'TestSalamander' -count=1
  • Lima AWG2 E2E with kernel ulta-plus/vpnn-master + tools ObfsPSK: tunnel ping both directions, external ping through tunnel, parallel site fetches, 10MB throughput download, fallback video download

Note: YouTube egress is currently refused from both host and Lima VM before the tunnel, so the YouTube-specific download was recorded as environment-blocked while the tunnel throughput/video fallback passed.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/amnezia-vpn/amneziawg-go/pull/147 **Author:** [@yaroslav-ulta](https://github.com/yaroslav-ulta) **Created:** 6/15/2026 **Status:** 🔄 Open **Base:** `master` ← **Head:** `feat/salamander-awg2-obfs-psk` --- ### 📝 Commits (1) - [`21028ef`](https://github.com/amnezia-vpn/amneziawg-go/commit/21028ef1e5ec9f97c23ef5a911b711a50cda5c85) feat: add Salamander ObfsPSK support ### 📊 Changes **7 files changed** (+227 additions, -4 deletions) <details> <summary>View changed files</summary> 📝 `device/device.go` (+2 -0) 📝 `device/peer.go` (+13 -1) 📝 `device/receive.go` (+7 -3) ➕ `device/salamander.go` (+125 -0) ➕ `device/salamander_test.go` (+59 -0) 📝 `device/send.go` (+8 -0) 📝 `device/uapi.go` (+13 -0) </details> ### 📄 Description ## Summary - add stateless Salamander packet obfuscation keyed by device-level obfs_psk - expose obfs_psk through UAPI get/set - obfuscate data, handshake cookie, and incoming packet paths when ObfsPSK is configured ## Validation - go test ./device -run 'TestSalamander' -count=1 - Lima AWG2 E2E with kernel ulta-plus/vpnn-master + tools ObfsPSK: tunnel ping both directions, external ping through tunnel, parallel site fetches, 10MB throughput download, fallback video download Note: YouTube egress is currently refused from both host and Lima VM before the tunnel, so the YouTube-specific download was recorded as environment-blocked while the tunnel throughput/video fallback passed. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
amnezia-vpn/amneziawg-go#165
No description provided.