mirror of
https://github.com/amnezia-vpn/amneziawg-go.git
synced 2026-10-14 13:52:03 +00:00
[GH-ISSUE #133] Documentation clarification request #70
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
amnezia-vpn/amneziawg-go#70
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @asciimoth on GitHub (Apr 29, 2026).
Original GitHub issue: https://github.com/amnezia-vpn/amneziawg-go/issues/133
During clean room reimplementation of AmnesiaWG obfuscation I found a few places where the public docs and current source appear to disagree, plus one historical question about the removed
<c>CPS tag.Could you please clarify which behavior is intended and, ideally, add an authoritative protocol/implementation docs & test vectors?
Mismatches
First
When
I1missing docs say skip entireI2-I5chain but source still sends any configuredI2-I5.Public docs say:
Current source does not implement that rule.
It just iterates over all 5 slots and sends every non-nil one:
So if only
I2orI4is configured, node will still send it.Seconf
Docs say:
Current source uses only 52 letters and receive-side validation also accepts only letters.
So should
<rc>be letters-only, or should the implementation include digits to match the docs?Third
On the same docs page described fixed-size
S3addition:len(init) = 148 + S1len(resp) = 92 + S2len(cookie) = 64 + S3len(data) = payload + S4But later the cookie section says that cookie reply gets "a random-length padding prefix of 0..S3 bytes".
Current source uses fixed prefix length for cookie reply and receive-side classification also expects exact fixed length
64 + S3:So the current implementation is clearly fixed-length for
S3, not random0..S3.Historical tag
I also noticed that early AWG code had a CPS counter tag
<c>:Later,
<c>was removed from the README/docs.I could not find an explanation in code comments, docs, or that commit message.
@ygurov commented on GitHub (Apr 29, 2026):
Hi
Thanks for reporting the issue. 1-3 should be addressed on the docs page, I have let our writers know
Regarding the tag - it was removed in process of migrating AWG 1.5 -> AWG 2.0 due to its useless and untrivial implementation