GnuTLS 加密函数的输入可以多种方式指定,既可以是基本的 Emacs Lisp 类型,也可以是列表。
列表形式目前与 md5 和 secure-hash 的工作方式类似。
buffer直接传入缓冲区作为输入,表示使用整个缓冲区。
string作为输入的字符串会被直接使用。与大多数其他 Emacs Lisp 函数不同,该字符串可能被函数修改, 以降低函数执行完毕后敏感数据泄露的风险。
(buffer-or-string start end coding-system noerror)该形式指定上述缓冲区或字符串作为输入,并可通过 start 和 end 指定可选范围。
此外,如有需要还可指定可选的编码系统 coding-system。
最后一个可选参数 noerror 用于覆盖文本无法使用指定或选定编码系统编码时的常规报错行为。
当 noerror 为非 nil 时,函数会静默改用 raw-text 编码。
(iv-auto length)该形式会生成指定长度的随机 IV(初始化向量)并传递给函数。 这可以保证 IV 不可预测,且不太可能在同一会话中重复使用。