3

我如何在 .net 中使用 minidriver for gemalto smart card(axaltocm.dll) 来使用方法

void ChangeReferenceData(byte mode, byte role, byte[] oldPin,byte[] newPin, int maxTries);

我已经从 Windows 更新安装了 gelamto 微型驱动程序。

基本上我想使用 ChangeReferenceData 方法更改管理员密钥。

请帮忙。

4

3 回答 3

2

您可以安装 Gemalto SDK http://www.gemalto.com/products/dotnet_card/resources/development.html

添加 CardModule_stub.dll 作为参考

使用 MSCM 服务:

CardModuleService 服务 = (CardModuleService)Activator.GetObject(typeof(CardModuleService),@"apdu://selfdiscover/MSCM")

service.ChangeReferenceData(.......)

于 2013-06-13T14:59:31.667 回答
1

我更改管理员密钥(在 Gemalto IDPrime.Net 智能卡上)的解决方案是:

            byte[] ch = service.GetChallenge();
            String sData = BitConverter.ToString(ch).Replace("-", "");
            byte[] bResp = Encrypt("000000000000000000000000000000000000000000000000", "0000000000000000", sData);//key, and iv
            service.ExternalAuthenticate(bResp);
            if (service.IsAuthenticated(2))//2-Admin,1-User
            {
                byte[] ch1 = service.GetChallenge();
                String sData1 = BitConverter.ToString(ch1).Replace("-", "");
                byte[] bResp1 = Encrypt("000000000000000000000000000000000000000000000000", "0000000000000000", sData1);
                service.ChangeReferenceData(0, 2, bResp1, b_newpin , -1);//for Admin PIN
                //service.ChangeReferenceData(0, 1, Encoding.ASCII.GetBytes(userpin), Encoding.ASCII.GetBytes("0001"), -1);//for User PIN
            } 
于 2015-04-02T16:31:48.440 回答
0

您不能将 dll 引用导入您的项目吗?如果 dll 是非托管代码(例如 c++),则必须使用 dllimport。http://msdn.microsoft.com/en-us/library/aa288468(v=vs.71).aspx。否则,您只需添加参考。

于 2013-06-03T11:30:38.233 回答