node.jsencryption是否使用GCM模式的固定标签大小?

我正在node.js中以GCM模式实现密码scheme。

为了检查完整性,我必须在密文中附加/附加GCM标签。 不过,我不确定标签有多大!

在encryption++维基上 ,我读到的大小可能会有所不同,它实际上是一个GCM模式的参数。 引自维基,重点是我的:

双方必须提供和使用的参数是:

  • 密钥和密钥大小
  • iv和iv大小
  • 标签大小

但是,在节点文档中 ,没有关于标签大小的信息。 只是标签存在。 从文档引用:

cipher.getAuthTag()

对于已validation的encryption模式(当前支持:GCM),此方法返回一个表示从给定数据计算出的validation标记的缓冲区。 在使用最后的方法完成encryption之后应该调用!

我是否应该期望标签大小不同,只需将标签大小和密文一起保存? 或者我可以假设标签大小始终小于128位,并在左侧填充零位?

node.js和browserify-crypto都使用128位标签。

我还没有find实际的代码,但通过查看testing显而易见。

Node.js在这里testing , crypto-browserify在这里testing 。