GnuTLS暗号化関数への入力はEmacs Lispのプリミティブかリストのいずれかにより、複数の方法で指定できます。
現在のところリストの形式はmd5
とsecure-hash
が動作する方法に似ています。
バッファー
入力として単にバッファーを渡すとバッファー全体が使用されることを意味する。
文字列
文字列は入力として直接使用される。(他のほとんどのEmacs Lisp関数とは異なり)関数の処理後に機密データ漏洩の機会を減少させるために関数が文字列を変更するかもしれない。
(buffer-or-string start end coding-system noerror)
これは上述のようにバッファーか文字列を指定するが、オプションでstartとendで範囲を指定できる。
加えて必要ならオプションでcoding-systemを指定できる。
最後のオプションのアイテムnoerrorは指定もしくは選択されたコーディングシステムを使用してテキストをエンコードできない際の通常のエラーをオーバーライドする。noerrorが非nil
なら関数は暗黙にraw-text
コーディングシステムをかわりに使用する。
(iv-auto
length)
これは指定した長さのランダムなIV(Initialization Vector: 初期化ベクトル)を生成して関数に渡す。これによってIVが予測不可能となり、かつ同一セッション内での再利用があり得なくなることが保証される。