in loadgen/eventhandler/handler.go [386:422]
func randomizeTraceID(out *bytes.Buffer, in string, randomBits uint64) bool {
n := len(in)
for i := 0; i < n; i++ {
b := in[i]
if !((b >= '0' && b <= '9') ||
(b >= 'a' && b <= 'f') ||
(b >= 'A' && b <= 'F')) {
// Not all hex.
return false
}
}
out.Grow(n)
for i := 0; i < n; i++ {
b := in[i]
var h uint8
switch {
case b >= '0' && b <= '9':
h = b - '0'
case b >= 'a' && b <= 'f':
h = 10 + (b - 'a')
case b >= 'A' && b <= 'F':
h = 10 + (b - 'A')
}
h = (h ^ uint8(randomBits)) & 0x0f
randomBits = bits.RotateLeft64(randomBits, 4)
if h < 10 {
b = '0' + h
} else {
b = 'a' + (h - 10)
}
out.WriteByte(b)
}
return true
}