問題タブ [pcsc]
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.
smartcard - カード番号を読み取るAPDUコマンド
スマート カードからデビット/クレジット カード番号を取得できるかどうかを知りたいのですが、通信プロトコル PC/SC、CCID およびカード インターフェイス ISO/IEC 7816-1/ を備えたスマート カード リーダーを使用して取得しようとしています。 2/3 スマートカード、MicroSD インターフェイス ISO 7816-4 スマートカード。
これまでのところ、挿入されたカードの種類 (Visa、Mastercard、Maestro など) を取得するだけです。
ありがとう!
android - Android に javax.smartcardio の類似物はありますか?
Android に javax.smartcardio の類似物はありますか? ただし、Open Mobile API は使用しません。
ありがとう!
delphi - PCSCConnector と Windows 7
http://nobbi.comPCSCConnectorから使用しています。最終更新日は 2004 年 4 月です。Windows XP ではすべて正常に動作しますが、Windows 7 では問題が発生しました。
Delphi IDE で CTRL+F2 を押して (終了)、ソフトウェアによってカード接続が開かれていると、(自分のソフトウェアを含む) どのソフトウェアもカードへの新しい接続を開くことができません。新しい接続を作成するには、カード (私の場合は USB) を物理的に再接続する必要があります。
に(から) と(から)dwScopeに変更しようとしましたが、問題は解決しません。SCardEstablishContextSCARD_SCOPE_SYSTEMSCARD_SCOPE_USERdwDispositionSCardDisconnectSCARD_LEAVE_CARDSCARD_RESET_CARD
c++ - C++ を使用する RHEL 6 Linux で pcsc-lite を使用してカード リーダーを検出/通信する際の問題
スマート カード リーダーと連携し、スマート カードから情報を読み取るアプリケーションを開発しようとしています。
開発環境と使用ハードウェアをご紹介します。
OS: Red Hat Enterprise Linux 6
IDE: Eclipse Juno CDT
言語: C/C++
ハードウェア:
スマート カード リーダー: Omnikey 5321 ( https://www.hidglobal.com/products/readers/omnikey/5321 )
ドライバーをインストールし、次のディレクトリ/ファイルを見つけることができます。
/usr/lib64/pcsc/drivers/ifd-ccid.bundle
/usr/lib64/pcsc/drivers/ifdokrfid_lnx_x64-2.10.0.1.bundle/Contents
/usr/lib64/pcsc/drivers/ifdokrfid_lnx_x64-2.10.0.1.bundle/Contents /info.plist
/usr/lib64/pcsc/drivers/ifdokrfid_lnx_x64-2.10.0.1.bundle/Contents/Linux
info.plist の内容は、「ifdFriendlyName」キーの下に「OMNIKEY CardMan 5x21」という文字列を明確に示しています。
PC/SC規格を使いたい。そのため、PCSC-lite をダウンロードしてインストールし、デーモン (pcscd) が実行中で、サービスの状態が正常であることを確認しました。
興味深い部分は次のとおりです...
私のコードでは、次の API を順番に使用しました。
SCardEstablishContext() は SCARD_S_SUCCESS を返します。すごい!
p>SCardListReaders() は SCARD_E_NO_READERS_AVAILABLE を返します。良くない。
この時点で、リーダーが正しく接続されていることを確認します。はい、そうです。/etc/reader.conf にリーダー エントリが表示されるかどうかを確認しますが、ここにリストされているリーダーが見つかりません。次に /etc/reader.conf.d に移動しますが、ここにもファイルが見つかりません。したがって、スマート カードのコンテキストは空であると推測され、そのため、リーダーは一覧表示されません。
したがって、現在の問題は、pcsc-lite が接続されているリーダーを検出できない (?) ことと、どのドライバーがインストールされているかということです。
確認するために、udev ライブラリを使用してすべての「usb」サブシステム エントリを読み取る簡単なプログラムを作成し、接続されているカード リーダーに関する次の情報を udev から見つけることができました:
デバイス ノード パス:(null)
ベンダー ID:076b
製品 ID :5321
メーカー:OMNIKEY
製品:スマートカードリーダー USB
シリアル:(null)
したがって、デバイスが検出可能であることを確認してください。しかし、PC/SC Resource Manager がこのコンテキストを作成できないのはなぜでしょうか?
それで、どうすればこれを解決できますか?
私は Linux に不慣れで、助けを求めずにこの問題を自分で解決しようとしています。しかし、時間の制約がある場合は、専門家や、そのような問題に取り組んだ、および/または遭遇した人々に助けを求める方が賢明であることがわかりました.
グーグルで調べすぎましたが、私の問題があるものは見たことがありません。したがって、おそらく本当に基本的な何かが欠けていると思います。
何か提供する必要がある場合は、お知らせください。私はできるだけ早くそうします。
読んでいただきありがとうございます。
よろしく。
編集:
更新があります...
次のことを行いました
。 1. 新しいカード リーダー (SCM Microsystems) を入手しましたが、それでも検出されませんでした。
2. pcscd デーモンは、デフォルトでブート時に開始されました。ログイン後にサービスを停止し、コマンド「pcscd -a -f -d」を使用してフォアグラウンド モードで実行すると、SCM リーダーが正常に検出されました。
3. 上記の質問のリーダー、OMNIKIEY 5321 をプラグインしようとしましたが、検出されませんでした。
どうやら、次のような結論に達しました
。
2. OMNIKEY リーダー/ドライバーに問題があります。
よろしく。
parameters - dwMaxCCIDMessageLength が 4KB を超えると、SCardTransmit は ERROR_INVALID_PARAMETER を返します。
私はusbスマートカードを開発しており、Windows PC / SC APIを使用してそのスマートカードでデータを送信しています。これは私のコードの一部です:
両方のイン/アウト バッファへのサイズとポインタが有効であると確信しています。
dwMaxCCIDMessageLengthデバイス記述子のフィールドが 未満になるまで0x00001000h問題はなく、プログラムは正常に動作しますが、それをより大きな値 (4kb 以上) に増やすとSCardTransmit、ERROR_INVALID_PARAMETER 結果コードで失敗します。
現在、pSendBufスマートカードでコンテンツが正常に受信され、コンテンツの処理が完了していることはわかっていますが、カードが応答を返したいときにそのエラーが発生し、これは PC/ SCドライバー。
誰でも私を助けることができますか?
cross-browser - 汎用ブラウザからスマート カードにアクセスするためのアーキテクチャは? または: ブラウザーから PC/SC スタックへのギャップを埋める方法は?
汎用ブラウザ (http(s) を介してサーバーに接続) から、できれば Javascript からローカル スマート カードにアクセスし、エンド ユーザーのインストールの手間を最小限に抑えるクライアント側のアーキテクチャは何ですか? サーバーは少なくとも、選択した APDU をカードに発行できる必要があります (または、サーバーが生成するクライアント側コードにその一部を委任することもできます)。私は、スマート カード リーダーを備えた動作中の PC/SC スタックのクライアント側での可用性を想定しています。これは、少なくとも Windows XP 以降、最新の OS X、および Unix では妥当な仮定です。
これまでのところ、次のオプションを特定しました。
- 一部のカスタム ActiveX。これは私の既存のアプリケーションが使用しているものです (社内で開発しました)。IE を使用しているクライアントは、ActiveX をインストールする許可を得れば、展開は非常に簡単ですが、「汎用ブラウザー」の要件には適合しません。
更新: ActiveX は、ほとんどの場合、IE11 を含む非推奨の IE でサポートされています。エッジではありません。 - 上記のスムーズな拡張のように見える、Netscape Plugin API を使用した PC/SC ブラウザ拡張。私が見つけた唯一の既製のものはSConnect (webarchive)です。もはや宣伝されておらず (更新: 少なくとも1 つのアプリケーションで 2020 年後半に引き続き積極的に維持および使用されていると考えられています)、その APIドキュメント (webarchive)は公式には利用できなくなり、特定のスマート カードおよびリーダー ベンダーとの強い結びつきがあります。原則は素晴らしいかもしれませんが、すべてのプラットフォームにそのようなプラグインを作成するのは大変な作業です。
更新: NPAPI サポートは、Chrome や Firefox を含む多くのブラウザーで削除されています。 - Oracle の JVM (1.)6 以上で実行される Java アプレット
javax.smartcardio。それは機能的な観点からは問題なく、十分に文書化されており、いくつかの既知のバグに耐えることができますが、Java-as-a-browser-extension の受け入れに関して、たまらなく下向きのスパイラルになることを恐れています。 - [更新、2021 年 2 月]: この回答は、2015 年に WebUSB API を有望なソリューション ソリューションと見なし、2019 年に機能しないか放棄されたと報告しました。そこで質問しました。
他のアイデアはありますか?
また、不正なサーバーによるブラウザの PC/SC インターフェースの悪用を防ぐ方法はありますか (たとえば、カードをブロックするために 3 つの間違った PIN を提示する、カードを不快にするため、またはさらに邪悪なものを作成するなど)。
c# - SCardTrasmit 空の受信バイト配列を返す
ACS リーダーと NFC タグを使用した ac# PC/SC の実装に取り組んでいます。
次のように SCardTransmit のプロトタイプを作成しました。
そして、私は次のコードを持っています:
すべての (表示されていない) 初期化は正常に機能しているようで、タグの ATR を正常に取得できます。
ここで、このコードを実行すると、成功の戻りコードが返されます。一貫した受信バイト長の値を受け取りますが、対応するバイト配列は空 (ゼロ) です。
誰でもこれについてアドバイスできますか?
ありがとうございました。