core#

JLAP 读取器。

#

JLAP

围绕列表对象的或多或少完整的用户定义包装器。

函数#

keyed_hash(data, key)

键控哈希。

line_and_pos(→ collections.abc.Iterator[tuple[int, bytes]])

属性#

DIGEST_SIZE = 32#
DEFAULT_IV#
keyed_hash(data: bytes, key: bytes)#

键控哈希。

line_and_pos(lines: collections.abc.Iterable[bytes], pos=0) collections.abc.Iterator[tuple[int, bytes]]#
参数:
  • lines -- 迭代器,遍历由 'n' 分隔的输入,并删除 'n'。

  • pos -- 初始位置

class JLAP(initlist=None)#

基类: collections.UserList

围绕列表对象的或多或少完整的用户定义包装器。

property body#

除第一行和最后两行外的所有行。

property penultimate#

倒数第二行。应包含页脚。

property last#

最后一行。应包含尾部校验和。

classmethod from_lines(lines: collections.abc.Iterable[bytes], iv: bytes, pos=0, verify=True)#
参数:
  • lines -- 迭代器,遍历由 b'n' 分隔的输入,并删除 b'n'

  • pos -- 初始位置

  • iv -- 初始化向量(.jlap 流的第一行,十六进制解码)。如果 pos==0,则忽略。

  • verify -- 断言最后一行等于前一行的计算校验和。如果为 False,则对于写入新的 .jlap 文件很有用。

Raises:

ValueError -- 如果尾部校验和与计算校验和不匹配

Returns:

(偏移量,行,校验和)列表

classmethod from_path(path: pathlib.Path | str, verify=True)#
add(line: str)#

根据校验和规则向缓冲区添加行。

缓冲区不能为空。

(请记住弹出尾部校验和以及可能的尾部元数据行,如果追加到完整的 jlap 文件)

效率低于从多行和我们的最后一个 iv 创建新缓冲区并扩展。

Returns:

self

terminate()#

向缓冲区添加尾部校验和。

Returns:

self

write(path: pathlib.Path)#

将缓冲区写入路径。