# [NTG-context] new hash for buffer (as file)

Max Chernoff mseven at telus.net
Fri Sep 23 06:01:25 CEST 2022

Hi Pablo,

> I mean, to get hash of the file attached to the document, I need to save
>
> But I don’t need to save the buffer to attach it to the PDF document.
>
> My question is how to define \shabufferfile to avoid \savebuffer (only
> required to get the hash).

The SHA calculation isn't working properly because of a weird newline
issue. Try this:

\setupinteraction[state=start]
\setupinteractionscreen[option={attachment}]

\startbuffer[test]
just a test
and another one
\stopbuffer

\starttext
\startluacode
require("util-sha")

function sha256(str)
return utilities.sha2.hash256(
str:gsub(string.char(0x0D), string.char(0x0A))
)
end
\stopluacode

\def\shabuffer#1%
{\cldcontext{sha256(buffers.raw("#1"))}}

\def\shafile#1%

\shabuffer{test}

\savebuffer[test][temporary-αβγ, prefix=no]

\shafile{temporary-αβγ}

\attachment[buffer=test, name=\shabuffer{test}, method=hidden]
\stoptext

You can remove the "\savebuffer" and the "\shafile"; I just kept that in to
show that the two hashes are now the same.

-- Max
>