首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows环境下OpenSC程序与c0000005的崩溃

Windows环境下OpenSC程序与c0000005的崩溃
EN

Stack Overflow用户
提问于 2014-07-28 08:23:42
回答 1查看 1.8K关注 0票数 2

所有,我试图访问opensc dll(最新版本)上的windows 7 64位。我正在尝试访问一个ePass2003令牌。opensc-tool能够检测令牌,并可以获取名称和其他信息。因此,令牌是由OpenSC找到的。然后,我将从另一个程序加载opensc dll并调用standard PKCS#11 functionsC_GetSlotList将槽0 ID返回为-1,槽1 ID返回为1,C_GetFunctionList返回函数的指针。问题是,当我打电话给C_GetMechanismList时,我遇到了c0000005 error的崩溃。

我还通过令牌提供的ePass dll访问了令牌,它运行得很好。

我无法跟踪这个问题,因为它看起来像通过opensc dllopensc无法与卡接口,但开放-工具也应该有同样的问题,但它没有。

如果有人能帮忙,那就太好了。

追踪:pkcs11 11-工具

追踪#1:

代码语言:javascript
复制
C:\Program Files\OpenSC Project\OpenSC\tools>pkcs11-tool.exe --module opensc-pkcs11.dll -I
Cryptoki version 2.20
Manufacturer     OpenSC (www.opensc-project.org)
Library          Smart card PKCS#11 API (ver 0.0)
Using slot 1 with a present token (0x1)

追踪#2:

代码语言:javascript
复制
C:\Program Files\OpenSC Project\OpenSC\tools>pkcs11-tool.exe --module opensc-pkcs11.dll -L
Available slots:
Slot 0 (0xffffffff): Virtual hotplug slot
  (empty)
Slot 1 (0x1): FS USB Token 0
  token state:   uninitialized

追踪#3:

代码语言:javascript
复制
C:\Program Files\OpenSC Project\OpenSC\tools>pkcs11-tool.exe --module opensc-pkcs11.dll -T
Available slots:
No slots.

追踪#4:

代码语言:javascript
复制
C:\Program Files\OpenSC Project\OpenSC\tools>pkcs11-tool.exe --module opensc-pkcs11.dll -M
Using slot 1 with a present token (0x1)

与c0000005相同的结果崩溃

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-28 18:12:21

OpenSC PKCS#11库将您的令牌视为“未初始化”。如果我没记错的话,用Feitian中间件初始化的ePass令牌不能与OpenSC一起使用,反之亦然。因此,如果您想在ePass中使用opensc-pkcs11.dll,那么需要使用OpenSC附带的pkcs15-init.exe应用程序来初始化令牌。

文档参考资料:

OpenSC wiki提到了在ePass3000页面上重新初始化的要求,但没有提到ePass2003页面上的要求。欧洲分销商gooze.eu还指出,需要重新初始化:

原因是ePass2003是预先初始化的,在Windows7下被飞天的灵长类软件所识别。要想使用,ePass2003需要由OpenSC初始化。

实例:

我已经用Feitian中间件初始化了我的ePass2003令牌,并使用专有的eps2003csp11.dll库进行了测试--它运行得很好:

代码语言:javascript
复制
C:\Program Files (x86)\OpenSC Project\OpenSC\tools>pkcs11-tool.exe --module eps2003csp11.dll -M
Using slot 0 with a present token (0x1)
Supported mechanisms:
  RSA-PKCS-KEY-PAIR-GEN, keySize={1024,2048}, hw, encrypt, decrypt, sign, verify, generate_key_pair
  RSA-PKCS, keySize={512,2048}, hw, encrypt, decrypt, sign, sign_recover, verify, verify_recover, wrap, unwrap
  RSA-X-509, keySize={512,2048}, encrypt, decrypt, sign, sign_recover, verify, verify_recover, wrap, unwrap
  MD2-RSA-PKCS, keySize={512,2048}, sign, verify
  MD5-RSA-PKCS, keySize={512,2048}, sign, verify
  SHA1-RSA-PKCS, keySize={512,2048}, hw, sign, verify
  DH-PKCS-KEY-PAIR-GEN, keySize={128,2048}, generate_key_pair
  DH-PKCS-DERIVE, keySize={128,2048}, derive
  SHA256-RSA-PKCS, keySize={512,2048}, hw, sign, verify
  SHA384-RSA-PKCS, keySize={512,2048}, sign, verify
  SHA512-RSA-PKCS, keySize={1024,2048}, sign, verify
  mechtype-70, keySize={512,2048}, sign, verify
  RC2-KEY-GEN, keySize={8,1024}, generate
  RC2-ECB, keySize={8,1024}, encrypt, decrypt
  RC2-CBC, keySize={8,1024}, encrypt, decrypt
  RC2-CBC-PAD, keySize={8,1024}, encrypt, decrypt
  RC4-KEY-GEN, keySize={8,2048}, generate
  RC4, keySize={8,2048}, encrypt, decrypt
  DES-KEY-GEN, keySize={56,56}, generate
  DES-ECB, keySize={64,64}, hw, encrypt, decrypt
  DES-CBC, keySize={64,64}, hw, encrypt, decrypt
  DES-CBC-PAD, keySize={64,64}, encrypt, decrypt
  DES3-KEY-GEN, keySize={112,112}, generate
  DES3-ECB, keySize={128,192}, hw, encrypt, decrypt
  DES3-CBC, keySize={128,192}, hw, encrypt, decrypt
  DES3-CBC-PAD, keySize={128,192}, encrypt, decrypt
  MD2, digest
  MD5, digest
  SHA-1, keySize={512,512}, hw, digest, sign, verify
  SHA-1-HMAC, keySize={8,2048}, sign, verify
  SHA256, keySize={512,512}, hw, digest, sign, verify
  mechtype-597, digest
  SHA384, digest
  SHA512, digest
  GENERIC-SECRET-KEY-GEN, keySize={8,2048}, generate
  AES-KEY-GEN, keySize={128,256}, generate
  AES-ECB, keySize={128,256}, hw, encrypt, decrypt
  AES-CBC, keySize={128,256}, hw, encrypt, decrypt
  AES-CBC-PAD, keySize={128,256}, encrypt, decrypt

然后我用opensc-pkcs11.dll进行了测试,得到了您所描述的相同的崩溃:

代码语言:javascript
复制
C:\Program Files (x86)\OpenSC Project\OpenSC\tools>pkcs11-tool.exe --module opensc-pkcs11.dll -M
Using slot 1 with a present token (0x1)

所以我抹去了卡片..。

代码语言:javascript
复制
C:\Program Files (x86)\OpenSC Project\OpenSC\tools>pkcs15-init.exe --erase-card
Using reader with a card: FS USB Token 0

..initialized与OpenSC pkcs15-init应用程序。

代码语言:javascript
复制
C:\Program Files (x86)\OpenSC Project\OpenSC\tools>pkcs15-init.exe --create-pkcs15 --profile pkcs15+onepin --use-default-transport-key --pin 0000 --puk 111111 --label "ePass2003"
Using reader with a card: FS USB Token 0
2014-07-29 22:35:08.208 cannot lock memory, sensitive data may be paged to disk
2014-07-29 22:35:08.442 cannot lock memory, sensitive data may be paged to disk
2014-07-29 22:35:08.882 cannot lock memory, sensitive data may be paged to disk
2014-07-29 22:35:10.059 cannot lock memory, sensitive data may be paged to disk
2014-07-29 22:35:10.497 cannot lock memory, sensitive data may be paged to disk

..and然后opensc-pkcs11.dll开始工作:

代码语言:javascript
复制
C:\Program Files (x86)\OpenSC Project\OpenSC\tools>pkcs11-tool.exe --module opensc-pkcs11.dll -M
Using slot 1 with a present token (0x1)
Supported mechanisms:
  SHA-1, digest
  SHA256, digest
  SHA384, digest
  SHA512, digest
  MD5, digest
  RIPEMD160, digest
  GOSTR3411, digest
  RSA-X-509, keySize={512,2048}, hw, decrypt, sign, verify
  RSA-PKCS, keySize={512,2048}, hw, decrypt, sign, verify
  SHA1-RSA-PKCS, keySize={512,2048}, sign, verify
  SHA256-RSA-PKCS, keySize={512,2048}, sign, verify
  MD5-RSA-PKCS, keySize={512,2048}, sign, verify
  RIPEMD160-RSA-PKCS, keySize={512,2048}, sign, verify
  RSA-PKCS-KEY-PAIR-GEN, keySize={512,2048}, generate_key_pair

然而,Feitian发布的eps2003csp11.dll停止了预期的工作:

代码语言:javascript
复制
C:\Program Files (x86)\OpenSC Project\OpenSC\tools>pkcs11-tool.exe --module eps2003csp11.dll -M
No slot with a token was found.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24991111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档