Skip to main content

constant_time_contains

Function constant_time_contains 

Source
pub fn constant_time_contains(haystack: &[u8], needle: &[u8]) -> bool
Expand description

恒定时间子串匹配(AGENT.md §4.9 时序安全)

遍历所有可能的对齐位置,逐字节 XOR 累积差异并用位运算聚合结果, 执行时间仅取决于输入长度,与是否命中、命中位置无关:

  • 不因首个不匹配字节提前退出内层循环
  • 不因已命中提前退出外层循环
  • 无数据相关分支(匹配结果经位运算聚合,而非条件跳转)

长度检查仅依赖输入长度(长度非秘密),不泄露内容信息。

§Arguments

  • haystack - 被搜索的字节串
  • needle - 待匹配的模式串(空模式恒为命中)

§Returns

  • bool - haystack 中是否包含 needle