1 package iskra 2 3 import "bytes" 4 5 // NormalizeCode lowercases and trims a code token for hashing. 6 // Strips leading/trailing whitespace. Preserves underscores and digits. 7 func NormalizeCode(token string) []byte { 8 trimmed := bytes.TrimSpace([]byte(token)) 9 b := []byte{:len(trimmed)} 10 copy(b, trimmed) 11 for i := 0; i < len(b); i++ { 12 c := b[i] 13 if c >= 'A' && c <= 'Z' { 14 b[i] = c + 32 15 } 16 } 17 return b 18 } 19