INNER CODE UNIT · Go
writeTranscriptField
schollz/pake · pake.go:284
func writeTranscriptField(h hash.Hash, value []byte) {
var length [8]byte
binary.LittleEndian.PutUint64(length[:], uint64(len(value)))
_, _ = h.Write(length[:])
_, _ = h.Write(value)
}
func (p *Pake) deriveSessionKey() []byte {
h := sha256.New()
if !p.withIDs {
h.Write(p.Pw)
h.Write(p.Xᵤ.Bytes())
h.Write(p.Xᵥ.Bytes())
h.Write(p.Yᵤ.Bytes())
h.Write(p.Yᵥ.Bytes())
h.Write(p.Zᵤ.Bytes())
h.Write(p.Zᵥ.Bytes())
return h.Sum(nil)