我正在尝试用Luna HSM(Gemalto)实现EDDSA签名
Signature signature = null;
signature = Signature.getInstance("EDDSA", "LunaProvider");
PrivateKey privateKey = getPrivateByAlias(privateKeyLabel);
signature.initSign(privateKey);
signature.update(payload);
byte[] byteArray = signature.sign();
但是在签名后,byteArray的大小为71,但根据规范EDDSA签名的大小为64。我不确定我在这里想念的是什么。我在网上都找不到任何文档。
问题来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这恰好是您期望的X9.63兼容签名的大小,该签名由两个有符号大端整数的DER编码组成。如果要具有64字节的签名,则应使用[以下说明] (https://crypto.stackexchange.com/a/60011/1172)在内部转换2个整数。在I2OSP和OS2IP对Java的实现,可以发现在这里。
因此,步骤如下:
回答来源:Stack Overflow