Openssl LibreSSL为aes-256-gcm提供身份验证标签

Openssl LibreSSL为aes-256-gcm提供身份验证标签,openssl,aes-gcm,libressl,Openssl,Aes Gcm,Libressl,我当前正在运行命令,因此: /usr/local/Cellar/libressl/3.0.2/bin/openssl enc -aes-256-gcm -d -in enc.token -out dec.token -iv {IV} -K {KEY} 该命令的输出是坏解密。我的输出文件看起来只有一半解密,文件看起来像 对象(id=998fdsa981sdakj@p²•v'@v[ðt 这是完全解密的吗?我相信这些符号代表二进制,但看起来我的对象只有一半被解密了 我一直在查找坏的解密,这似乎与未提

我当前正在运行命令,因此:

/usr/local/Cellar/libressl/3.0.2/bin/openssl enc -aes-256-gcm -d -in enc.token -out dec.token -iv {IV} -K {KEY}
该命令的输出是
坏解密
。我的输出文件看起来只有一半解密,文件看起来像

对象(id=998fdsa981sdakj@p²•v'@v[ðt

  • 这是完全解密的吗?我相信这些符号代表二进制,但看起来我的对象只有一半被解密了
  • 我一直在查找
    坏的解密
    ,这似乎与未提供用于解密的GCM加密身份验证标记有关。有没有办法将其提供给Libre命令?我一直在通过查看LibreSSL,但似乎没有任何文档

  • 我假设LibreSSL在这方面与OpenSSL相同。OpenSSL在
    enc
    实用程序的手册页上记录了这个问题:

    enc程序不支持经过身份验证的加密模式,如 CCM和GCM,将来将不支持此类模式


    同一段接着解释了这背后的原因。它建议使用
    cms
    实用程序而不是
    enc

    如果LibreSSL不支持GCM,为什么它会将
    aes-256-GCM
    作为命令行选项?原因与OpenSSL相同。它在内部支持GCM-只是不与e enc app。它对多个命令使用通用处理来解析这些选项,并将接受任何密码名称。它只是对其中一些不起作用。OpenSSL检测到这一点并抛出一个错误-但旧版本没有,并且以与您看到的相同的方式失败。警告:我不使用Libressl,只使用OpenSSL。我只知道OpenSSL不起作用他的方式。