问题标签 [gemalto]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - WinBioEnrollCommit 失败并出现错误 0x80004005(未指定错误)
我正在按照示例http://msdn.microsoft.com/en-us/library/windows/desktop/dd401620(v=vs.85).aspx将指纹注册到智能卡。
我可以捕获指纹,但在 WinBioEnrollCommit 期间我收到错误“WinBioEnrollCommit failed”,错误代码为 0x80004005。
我只是简单地复制了示例代码,所有其他示例都运行良好。
我在这里想念什么?
我有强烈的感觉,我必须在智能卡上进行身份验证才能进行这些更改。如果我使用制造商(gemalto)提供的软件,我必须通过质询-响应进行身份验证。
编辑:当我尝试注册已经注册的手指时,我收到正确的错误 WINBIO_E_DUPLICATE_TEMPLATE。
java - ME 密钥库到 SE 密钥库
我有一个问题,因为我丢失了原始 SE 密钥库文件。现在我只有包含 ME 密钥库的 .bin 文件。有谁知道如何将 ME 密钥库转换回 SE 密钥库。对于 SE to ME,我使用了 keytool 和 mekeytool。如果有人知道用于将 ME 更改为 SE 的“密钥”就足够了,如果没有 ME 到 SE 的工具,我可以手动完成。我需要获取原始 ME 密钥,以便解锁我的 Gemalto BGS5 模块。
java - BGS5T RS232 与 1 线传感器通信
我有 Gemalto BGS5T java 模块和 1 线温度传感器。我有使用 RS232 端口与温度传感器通信的 java midlet。但问题是,无论我发送什么,我都没有收到传感器的响应。传感器上有正确的电压,所以连接应该没问题。我尝试测试我的程序,以便将 rs232 端口连接到计算机并使用终端(白蚁)观察发送的数据是否正确并且一切看起来都应该正确。另一个测试是我将温度传感器直接连接到计算机并使用终端发送数据,它的工作原理应该是这样。我什至得到了一些随机输入的响应,例如 9999。我检查了终端内的连接参数并将它们复制到 java midlet,但没有成功。只有一次我得到了一些回应,但是当我第二天尝试继续工作时,我没有成功。终端内部参数:波特率:9600 数据位:8 停止位:1 奇偶校验:无 流量控制:RTS/CTS
这是Java代码:
smartcard - 智能卡总是返回 69 99 - 命令不允许
无论我使用什么命令(APDU)(甚至是 VERIFY),我都会得到 SW1=69 SW2=99 响应!我从字面上理解一切(更改默认 PIN,使用 Gemalto MiniDriver Manager 添加证书)
有谁知道该怎么做?到目前为止,我只需要简单的事情——在卡上的某个地方写入 2 个字节的数据,然后再读取它们。我不敢相信它这么复杂!
smartcard - 与 Java Card 和 Global Platform 建立安全连接
在模拟器上成功开发 Java Card 之后,现在我正在处理真正的 Java Card ( Gemalto IDCore 3010 )。我一直在使用Global Platform,但即使是最基本的示例代码也有问题,它会列出卡上的小程序。
这是原始代码:
我已经修改了,现在是这样的:
在 Global Platform 页面上,可以发现这些是open_sc命令的开关:
但遗憾的是,我找不到关于这些开关的足够信息。
- keyind:我发现的唯一信息是它是一个关键索引,我自己也猜到了。
- keyver:密钥集版本。和上面一样。
- key:我读到如果我有一张使用密钥派生的卡,我必须使用 -keyDerivation 选项启用派生模式,并且我必须使用 -key 指定主(母)密钥。所以在这里我提供了我的母钥匙(4F454D5850524553534F53414D504C45)。
- mac_key:它应该不相关,因为它是根据主密钥计算的。
- enc_key:它应该不相关,因为它是根据主密钥计算的。
- kek_key:它应该不相关,因为它是根据主密钥计算的。
- 安全性:我找到的信息是:0:清除,1:MAC,3:MAC+ENC。因为在我卡的数据表中我找不到这样的东西,所以我选择了“0”。
- scp:安全通道协议(1 SCP01、2 SCP02,默认未设置)。不需要明确说明。我的卡同时支持 SCP01 和 SCP02。
- scpimpl:安全通道实现(默认未设置)。不需要明确说明。
- keyDerivation:可能的值为“none”、“visa2”或“emvcps11”。此外,由于我在数据表中找不到这方面的信息,因此我将其堆叠为“无”。
这是我使用修改后的代码得到的错误消息:
有人可以告诉我出了什么问题以及我应该如何参数化和执行open_sc命令?非常感谢!
解决方案:这是工作版本:
c# - C# PInvoke CryptImportKey 因“指定的类型无效”而失败
我正在尝试使用 CryptImportKey 函数将 PFX 导入 Gemalto .NET IDPrime 智能购物车,但我收到“指定的类型无效”(2148073482) 错误。我怀疑 RSACryptoServiceProvider.ExportCspBlob(true) 调用以错误的格式返回密钥。我正在使用来自http://www.idrix.fr/Root/Samples/PfxImporter.cs的示例代码。注意:我已经将 Microsoft Base Smart Card Crypto Provider 的 AllowPrivateExchangeKeyImport 和 AllowPrivateSignatureKeyImport 设置为 0x1,但仍然没有变化。我正在运行 Windows Server 2012,但不认为这是问题所在。
有人可以告诉我这个代码示例有什么问题吗?
gsm - 如何使用 SIM 卡(安装小程序)
我有一张具有以下 ATR 的智能卡:
ATR = 3B 9E 94 80 1F 42 80 31 00 73 BE 21 10 66 54 59 53 04 4C 25 CF
.
根据atr-parse.appspot.com的输出,我发现它是一张MCI(伊朗移动通信公司)SIM 卡。
这些是我从历史字节中获得的信息:
(紧凑 TLV 数据对象)
Tag:3,Len:1(卡服务数据字节)
卡服务数据字节:0
EF.DIR 和 EF.ATR 访问服务:通过 GET RECORD(s) 命令
MF卡
标签:7,Len:3(卡片功能)
选择方法:190
支持的记录号
支持短 EF 标识符
隐式 DF 选择
按文件标识符选择 DF
DF选择路径
按全 DF 名称选择 DF
数据编码字节:33
写函数的行为:专有
BER-TLV 标签字段的第一个字节的值“FF”:有效
四重奏数据单位:1
命令链、长度字段和逻辑通道:16
逻辑通道号分配:由卡
最大逻辑通道数:1
标签:6,Len:6(发布前数据)
数据:54 59 53 04 4C 25“TYS.L%”
正如您在上面看到的,提到该卡有一个MF
.
问题是我不能用这张卡做任何事情。在第一步中,我想列出它的内容。我查看了TS 11.11、TS 102.221、TS 131.102和TS 151.011规范。
据我从上述文件中了解到,该卡的系统文件Master File
由其 AID3F00
和一些 DF-s 和 EF-s 组成。例如,基于TS 151.011规范的下表,我尝试选择一些 DF-s:
这些是结果:
正如你在上面看到的,我都失败了,我只能找到 ISD 的 AID。
我也尝试使用GlobalPlatformPro工具列出内容,但该卡似乎不支持 Initial Update APDU 命令:
我想知道怎么了?如何在这张 SIM 卡上安装 java 卡小程序?
请注意,我已经成功地使用了 Java Card,但我对这些 SIM 卡完全感到困惑。我很感激任何人都可以对这个问题有所了解。问候。
reverse-engineering - Javacard:ATR 和协议更改
我正在使用逻辑分析仪对智能卡进行逆向工程。我让小程序像原来的 SC 一样响应,但不起作用。经过进一步分析,我发现了3个问题:
1-ATR:需要改变ATR
2-ATR 通信协议:不知道为什么,原来的智能卡没有像标准一样发送ATR(在标准中:偶校验位),但它是在没有奇偶校验位的情况下传输的
3-PTS:在 ATR 之后,我需要将通信协议设置为 T=0,波特率:210526 而不是奇偶校验(clk=6MHz)。
我知道 1 和 3 是可能的,但我不知道由谁来做,我真的不知道第二个问题是否可以解决。
我有金雅拓 IDcore30 卡。我也有一个金雅拓IDbridge CT30,但由于奇偶校验位的差异,甚至无法读取原始的ATR,它无法读取ATR。
任何链接或帮助都将非常有用。
谢谢。
javacard - javacard 只发送一个/第一个字节形式的数组
我的小程序有一点问题。它在我的一些 Java 卡上运行良好,应该如此,但在其他一些卡上它工作得粗略!它以一种发回数组的方式编写,但它只发回数组的第一个字节。我尝试了不同的方法,但它总是只发送第一个字节。是卡错误还是我的应用程序有什么问题?这是一个示例函数。此函数工作正常,仅将整个数组发送到我的一半卡片中,而不是全部发送!
PS。我正在使用 2 种类型的金雅拓卡,其中一种可能具有 NFC。
smartcard - 通过脚本更改金雅拓智能卡的 PIN
我们必须使用金雅拓 IDPrime .Net 卡智能卡。我们得到这些 USB 加密狗并且必须更改 PIN。
金雅拓通过窗户说:
http://support.gemalto.com/index.php?id=how_to_change_pin_in_a_idprime#.VWYTWUa8rV8
这可行,但我想通过 powershell 或 c# 设置一个新的 PIN/密码,即在程序的控制下。怎么做或者是不可能的?