問題タブ [winscard]

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.

0 投票する
1 に答える
1218 参照

apdu - ScardTransmit は常にエラー 16 を返します

Winscard ライブラリを使用して Windows でアプリケーションを構築し、非接触型スマートカード リーダーと通信しようとしています。デバイスに接続できますが、scardtransmit を使用してデータを送信しようとすると、エラー 16 が発生します。以下に使用しているコードを添付しました。

0 投票する
1 に答える
1117 参照

smartcard - HID iClass カードに印刷された番号の読み取り

HID iClass(2ks) カードに印字されている数字を読みたいです。WinScard.dll を使用して、UID と ATR を読み取ることができました。

調査を行った結果、印刷​​された番号はプログラムされたデータであり、PIN によって保護されている可能性があるという結論に達しました。私はここで正しいですか?もしそうなら、この印刷された数字をどのように読むのですか?

どんな助けでも大歓迎です。前もって感謝します。

0 投票する
0 に答える
400 参照

c++ - SCardGetStatusChange 初回例外

スレッドで次のコードを使用しています。

どこ:

すべてが正しく動作しますが、この関数は多くのエラーを生成します:

app.exe の 0x7510C42D での初回例外: Microsoft C++ 例外: unsigned long at memory location 0x05A0F3A8.

Visual Studio 2012 と Windows-7 64 ビットを使用しています。

助けてください。
ありがとう!

0 投票する
2 に答える
4024 参照

smartcard - メモリーカードなどの同期専用スマートカードを読み書きする方法

同期インターフェイスのみをサポートする IC メモリ カードを持っています (SLE5532、SLE5542 など)。

メモリの内容を読み取り、PSC (PIN) を確認し、メモリに書き込むアプリケーションの作成方法を知りたいです。

このタイプのカードは、マイクロプロセッサ カードのような通常の APDU を受け入れることができません。データシートでは、バイナリで送信するコマンドを指定します (すべてのコマンドは 3 バイト長)

SCM リーダー (MCSCM.dll に基づく) で動作するように設計されたアプリケーションを見つけましたが、OmniKey リーダーでは動作しません。

Reader の DLL を直接操作しなくても、winsCard API 関数を直接呼び出すアプリケーションを構築できるかどうかを知りたいです。もしそうなら、呼び出す適切な関数は何ですか?

また、それが不可能な場合、OmniKey の API を見つけるにはどうすればよいですか? OmniKey 3121 リーダーと同期カードで動作するサンプルを送ってくれる人はいますか?

前もって感謝します

0 投票する
1 に答える
2288 参照

c# - SCardEstablishContext がリリース モードでコンテキスト ポインタを設定しない

C# から winscard.dll メソッドを呼び出していますが、デバッグ モードではすべて正常に動作しています。私が得ている問題はリリースモードです

コンテキストを確立するための私の呼び出しは

私のテスト アプリでは、これを呼び出すと、pntContext 変数がデバッグ モードで適切に設定されているように見えます。ただし、リリースモードでは設定されません。しかし、奇妙なことに、戻りコードはまだ 0 (成功) です。

だから、これを引き起こす可能性のある状況は何なのか、それとも他に何が間違っているのでしょうか?

PS また、コンパイルプラットフォームが Any CPU に設定されていることを確認します。プラットフォームを変更しようとしましたが、プラットフォームとリリースモードとして x86 を使用すると機能します。なぜデバッグモードで動作するような奇妙な動作ですか?

0 投票する
2 に答える
4866 参照

smartcard - WinScard SCardConnect は SCARD_E_NOT_READY を返します

javax.smartcardio.* を使用して、スマート カード リーダーを備えた Java スマート カードと正常に通信する Java のプログラムがあります。APIモニターを使用すると、java.exeウィッチが実行され、実際にWinSCard winAPIを使用していることがわかりました(通信を開始するとすぐにwinscard.dllがロードされます。実際の呼び出しをまだ見つけることができませんでした)

私の問題は、WinSCard ライブラリを使用して Qt フレームワーク C++ プログラムに同じことを実装しようとしたことです。リーダーが USB に接続されてから 10 秒以内にプログラムを実行すると、すべてがうまく機能しますが、その後、リーダーは省電力状態であると思われる状態になり、数秒後に USB パイプを撃ち落とします。リーダーに接続しようとすると、Java プログラムは自動的にリーダーを「起動」しますが、私が書いた C++ はそうではなく、何が間違っているのかわかりません。

最初にSCardEstablishContext()call でコンテキストを確立し、次にリーダーをSCardListReaders()でリストします。これは実際にリーダーをリストする質問です。最後にSCardConnect()接続するために呼び出しSCARD_E_NOT_READY、スマート カード リーダーがこの「スリープ」状態にある場合はリターンを返します。

スマート カード リーダーがこの「スリープ」モードでない場合、同じコードで問題なくカードと通信できることに注意してください。

winAPI の説明には、この場合に何をすべきかについてのヒントはなく、何をすべきかの痕跡も見つかりませんでした。誰かがこれに対する解決策を知っている場合は、共有してください!

0 投票する
4 に答える
3699 参照

c++ - スマート カードのユーザー データを読み取るには?

まず、私はまだスマート カードを使ったばかりで、データがどのように保存され、どのデータがスマート カード上で保護されているか正確にはわかりません。

PIN で保護された学生証スマート カードを読み取ろうとしています。デフォルトの Windows スマート カード ライブラリ (winscard.lib) を使用して C++ でプログラミングを行っています。

ATR ヘッダーの読み取りに成功しましたが、私の知る限り、ATR ヘッダーにはユーザー情報ではなく、リーダーとの通信方法に関する情報が含まれています。

カードからバイナリを読み取ろうとしましたが、APDU は常に「クラスがサポートされていません」または「間違った命令」を示す 6E 00 を返します。コードは次のとおりです。

cmdRead は次のとおりです。

何が間違っている可能性がありますか?バイナリを読み取るために、最初にカードを検証する必要がありますか? 学籍番号などの基本的なデータを読み取るための読み取りバイナリ権限機能はありますか?

0 投票する
1 に答える
934 参照

delphi - SCardGetStatusChange からの SCARD_F_INTERNAL_ERROR の結果

Mifare Classic 1K カードと HID Omnikey 5421 (5321 の後継) を使用するアプリケーションを開発しています。カードの取り外し/挿入を検出するためにスレッドを使用しています。Delphi コード (スレッド方式):

SendMessage を使用して、適切な状態を検出しているスマート カード クラスに通知しています。また、カードの挿入を検出すると、自動的にスマート カードに接続してデータを読み取ります。

私のアプリケーションはほとんどの場合正しく動作していますが、たとえば 10000 回のカード挿入で 1SCardGetStatusChange. これが発生すると、SCardGetStatusChange の結果は常に SCARD_F_INTERNAL_ERRORのみになり始めます。この状況を検出したとき、スレッドを終了して新しいコンテキストを確立し、この新しいコンテキストで新しいウォッチャー スレッドを作成しようとしましたが、SCardGetStatusChange が SCARD_F_INTERNAL_ERROR を返し続けていたため、これは役に立ちSCardCancelませ。アプリケーションを閉じて再度実行すると、問題がなくなります。私にとってはランダムに発生しています。既知のシナリオを使用して再現することはできません。PC ではより多くのリーダーを使用できますが、Omnikey 5421 にのみ接続を確立しています。SCardReleaseContext

誰かがこの問題に遭遇しましたか?