如何解决Javacard J2A040使用GPShell脚本更改默认密钥不起作用
我想更改默认密钥,但GPShell上的以下脚本返回6A80。
mode_211
enable_trace
establish_context
card_connect
select -AID A000000003000000
open_sc -scp 2 -scpimpl 0x15 -security 1 -keyind 0 -keyver 0 -mac_key 404142434445464748494A4B4C4D4E4F -enc_key 404142434445464748494A4B4C4D4E4F // Open secure channel
put_sc_key -keyver 0 -newkeyver 1 -mac_key 404142434445464748494A4B4C4D4E4E -enc_key 404142434445464748494A4B4C4D4E4E -kek_key 404142434445464748494A4B4C4D4E4E -current_kek 404142434445464748494A4B4C4D4E4F
card_disconnect
release_context
怎么了?
我的J2A040已预先个性化,但没有融合并且没有保护。
感谢您的帮助
解决方法
put_sc_key -keyver 0 -newkeyver 1 -mac_key 404142434445464748494A4B4C4D4E4E -enc_key 404142434445464748494A4B4C4D4E4E -kek_key 404142434445464748494A4B4C4D4E4E -current_kek 404142434445464748494A4B4C4D4E4F
正在创建一个新密钥。因为密钥集版本1中的密钥已经存在,所以命令失败。要替换密钥,请使用以下语法:
put_sc_key -keyver 1 -newkeyver 1 -mac_key 404142434445464748494A4B4C4D4E4E -enc_key 404142434445464748494A4B4C4D4E4E -kek_key 404142434445464748494A4B4C4D4E4E -current_kek 404142434445464748494A4B4C4D4E4F
如果失败,那么对我来说,知道添加一个新的密钥集版本是否有用将会很有趣。请尝试(添加密钥集版本2):
put_sc_key -keyver 0 -newkeyver 2 -mac_key 404142434445464748494A4B4C4D4E4E -enc_key 404142434445464748494A4B4C4D4E4E -kek_key 404142434445464748494A4B4C4D4E4E -current_kek 404142434445464748494A4B4C4D4E4F
我认为代码中还存在一些问题,目前我正在对此进行调查,您的支持可能会对您有所帮助。您是否正在使用Windows / Homebrew的最新二进制版本?
,此脚本现在对我有用
var serializeOptions = new JsonSerializerOptions
{
PropertyNamingPolicy = new JsonFirstCharToLowerNamingPolicy(),WriteIndented = true
};
var jsonString = JsonSerializer.Serialize(weatherForecast,serializeOptions);
与此:
mode_211
enable_trace
establish_context
card_connect
select -AID A000000003000000
open_sc -scp 2 -scpimpl 0x15 -security 1 -keyind 0 -keyver 0 -key 404142434445464748494A4B4C4D4E4F -mac_key 404142434445464748494A4B4C4D4E4F -enc_key 404142434445464748494A4B4C4D4E4F -kek_key 404142434445464748494A4B4C4D4E4F // Open secure channel
put_sc_key -keyver 1 -newkeyver 0 -mac_key 404142434445464748494A4B4C4D4E4E -enc_key 404142434445464748494A4B4C4D4E4E -kek_key 404142434445464748494A4B4C4D4E4E -current_kek 404142434445464748494A4B4C4D4E4F
card_disconnect
release_context
它也起作用。 但是我真正想要的是替换3个默认密钥(S-ENC,S-MAC,DEK)而不添加新密钥,现在我有了版本2的3个新密钥,请看“图片”。
Picture from new version 2 key pyResMan
现在如何删除版本2的密钥
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。