Generate a GREASE value (0x?A?A pattern). Real browsers include random GREASE values; their absence is a strong signal of non-browser clients.
()
| 130 | /// Real browsers include random GREASE values; their absence is a strong |
| 131 | /// signal of non-browser clients. |
| 132 | pub fn grease_value() -> u16 { |
| 133 | let idx = rand::random::<u8>() % 16; |
| 134 | let nibble = idx as u16; |
| 135 | (nibble << 12) | (0x0A << 8) | (nibble << 4) | 0x0A |
| 136 | } |
| 137 | |
| 138 | /// Generate a GREASE cipher suite value (RFC 8701). |
| 139 | pub fn grease_cipher_suite() -> u16 { |
nothing calls this directly
no outgoing calls
no test coverage detected