After TLS 1.3 handshake is finished, 512-bit keying material is
exported. Various 256-bit keys are derived from it:
- InitEncKey = BLAKE3-DeriveKey(seed, "go.cypherpunks.ru/udpobfs/v2 init enc")
- InitMACKey = BLAKE3-DeriveKey(seed, "go.cypherpunks.ru/udpobfs/v2 init mac")
- InitObfsKey = BLAKE3-DeriveKey(seed, "go.cypherpunks.ru/udpobfs/v2 init obfs")
- RespEncKey = BLAKE3-DeriveKey(seed, "go.cypherpunks.ru/udpobfs/v2 resp enc")
- RespMACKey = BLAKE3-DeriveKey(seed, "go.cypherpunks.ru/udpobfs/v2 resp mac")
- RespObfsKey = BLAKE3-DeriveKey(seed, "go.cypherpunks.ru/udpobfs/v2 resp obfs")
+ InitEncKey = BLAKE3-DeriveKey(seed, "go.cypherpunks.su/udpobfs/v2 init enc")
+ InitMACKey = BLAKE3-DeriveKey(seed, "go.cypherpunks.su/udpobfs/v2 init mac")
+ InitObfsKey = BLAKE3-DeriveKey(seed, "go.cypherpunks.su/udpobfs/v2 init obfs")
+ RespEncKey = BLAKE3-DeriveKey(seed, "go.cypherpunks.su/udpobfs/v2 resp enc")
+ RespMACKey = BLAKE3-DeriveKey(seed, "go.cypherpunks.su/udpobfs/v2 resp mac")
+ RespObfsKey = BLAKE3-DeriveKey(seed, "go.cypherpunks.su/udpobfs/v2 resp obfs")
Each peer has 64-bit packet sequence counter. It is fed to
BLAKE3(len=256, key=*EncKey) and then its XOF output is XORed with