問題タブ [opensc]
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 - Mac OS X Yosemite 上の OpenSC
Mac 用の OpenSC をビルドし、Mavericks と Yosemite にインストールしました。インストール後、Opensc.tokend が /Library/Security/tokend ディレクトリに追加されます。Mavericks では問題なく動作し、Chrome、Firefox、Safari ではターミナルからもツールを使用できます。Yosemite は Firefox で動作し、ターミナルからツールを使用できますが、Chrome と Safari では動作しませんでした。スマート カードがキーチェーンに追加されません。誰が問題が何であるか教えてもらえますか? 解決策はありますか?
javacard - OpenSC API ドキュメント、チュートリアル
Java Cardアプレットの開発を学んでいたこの数か月で、ISO 7816互換のファイル システム アプレットを開発することができました。私は、7816-4、-8、-9 標準から標準化された APDU コマンドのほとんどを正常に実装しました (以前の標準を理解するために、OpenPGP アプレット、IAS ECC、MUSCLE、CoolKeyなどの他の利用可能な機能の説明と標準を使用しました)。
現在、この独自のアプレットのPKCS#11実装を開発しようとしています。すでにサポートされているカード用のOpenSCツール (opensc-tool、opensc-explorer、pkcs15-init、pkcs15-tool など) の使用に精通しています。しかし、OpenSC 用のこのアプレットのドライバーを開発したいと考えています。
github のプロジェクト サイトで入手可能な情報を閲覧したところ、OpenSC 用のカスタム ドライバーの実装に関するドキュメント (entersafe カードの例、およびカード ドライバーの実装に関する一般的な提案) を見つけました。また、gooze.eu には OpenSC に関するチュートリアルがいくつかありましたが、このサイトはもう利用できません。
だから私の質問は:
- 使用可能なドライバー コードを理解し、独自のドライバー コードを開発するために、OpenSC API に関する詳細情報はどこにありますか?
- API の一般的な概要、OpenSC アーキテクチャ、使用可能な関数の説明 (例として sc_format_apdu、sc_transpit_apdu、sc_card_operatins などの構造体と関数の使用目的に関する説明) は、OpenSC ソース コードを理解し、カードを実装するためのジャンプスタートを提供します。運転者。
- OpenSC API のマニュアル ページはありますか (グーグル検索でいくつか見つけられましたが、非常に不完全で散発的です)。
どの情報も非常に役立ちます。
driver - opensc の不明なカードのドライバーを書き込む
プロジェクトにopenscを使用しようとしていますが、残念ながらJavaカードをサポートしていません。「javacard」と「default」と呼ばれる2つのドライバーがありますが、私のもの(Kona26カード)と互換性がないため、そうなると思います。
自分のドライバーを作成する方法や、カードでopenscを使用できるトリックを知っている人はいますか?
前もって感謝します、
smartcard - PKCS#11 API を使用した C アプリケーションのリンク エラー
PKCS#11 初期化のみを実行する基本コードの例をコンパイルしようとしていますが、次のエラーが発生します。
rpm コマンドは、次のようにパスを示します
私のコードは以下に貼り付けられます
それでもエラーが発生します
この問題を解決する方法を教えてください
c# - C#でスマートカードからSSL秘密鍵を読み取る
私はカード リーダー付きのスマート カードを持っており、後者にクライアント証明書を実装することにしました。
秘密鍵はカードに保存され、公開鍵はサーバーに保存されます。
アプリケーション シナリオは次のようなものです。
- アプリケーションがフレームを Linux サーバーに送信する
- ランダム数を使用した Linux サーバーの応答
- アプリケーションは(スマートカードまたはpemファイル)から秘密鍵を読み取り、受信した乱数を暗号化し、結果をサーバーに送信します。
- サーバーは、送信された暗号化された文字列を公開鍵 (サーバーに保存されている pem ファイル) を介して復号化しようとします => 成功した場合はアクセスが許可され、それ以外の場合はアクセスが拒否されます。
私のアプリケーションには、証明書認証 (静的ファイル .pem) のモードがあり、秘密鍵 (同じく静的 .pem) も使用します。やopenssl-net
などの関数を使用して、秘密鍵を読み取り、データを暗号化してサーバーに送信しました。FromPrivateKey(string pem, string password)
PrivateEncrypt(byte[] msg, RSA.Padding padding)
必要な問題は、pem ファイル以降、スマートカードに秘密鍵をエクスポートする先験的な方法がないことです。
そのため、多くの調査の結果、これらの関数タイプの関数の代わりに、エンジン「pkcs11」を使用した「ENGINE_load_private_key」を使用する必要があることがわかりました。
したがって、pkcs11(opensc、engine_pkcs11など)を使用したopenssl構成の例(http://openssl.6102.n7.nabble.com/Private-Key-from-Windows-Cert-Store-td20720.htmlなど)を見てきました。 ..) 問題は、これらの構成が Linux 用であることです。
実際、スマートカードまたは PEM ファイルから秘密鍵を読み取ることができるクライアント アプリケーション Windows WPF (C# で記述) を開発する必要があります。
openssl - OpenSC を使用してスマートカードの秘密鍵でメッセージを復号化する方法
最近、OpenSC 0.15.0 に更新しましたが、何らかの理由で、これを使用してスマート カードの秘密鍵でメッセージを復号化することができなくなりました。
pkcs11-tool (OpenSC に付属) と OpenSSL エンジンを使用しても、明らかに同じことが起こります。
以下は、私たちが行ったことの例です。
pkcs11-ツール:
または、OpenSSL エンジンを使用して、小さなサンプル プログラムを次に示します。
しかし、私がそれを実行すると:
どうやら、どちらの場合も同じエラーで、「Data len range」に関するものです
さらに奇妙なのは、pkcs11-tool を使用して署名操作 (秘密鍵も使用) を実行すると、正常に動作することです。
だから、誰かが私が間違っていることを指摘できれば、とても感謝しています
python - M2Crypto と USB トークンの使用に関するヘルプが必要
M2Crypto (0.22.6rc4) を使用しています。engine_pkcs11
データを暗号化および復号化するためのトークン ベースの認証に、OpenSC プロジェクトと Aladdin PKI クライアントから使用したいと考えています。
何らかの理由でデータを暗号化できますが、復号化しようとすると、RSA_pub のインスタンスと次のエラーが発生します。
どんな助けでも大歓迎です!
c++ - libp11 と pkcs11-engine での秘密鍵の読み取りの違い
スマート カードに保存されている資格情報を使用して、C++ で SSL クライアント認証を実装しようとしています。
つまり、openssl ライブラリを使用して、証明書と秘密鍵を使用して SSL コンテキストを初期化し、その後のすべての https 接続でこのコンテキストを使用することを意味します。
これを支援するために私が遭遇したライブラリは、https ://github.com/OpenSC/libp11 にある libp11 とその pkcs11-engine モジュールです。
私のコードが実際に Web サーバーで意図したとおりに機能するシナリオは、証明書が一覧表示されて libp11 を介して取得され、秘密鍵が pkcs11 エンジンを使用して id で取得される場合です。
ただし、一貫性を保ち、物事をシンプルに保つために、これらの両方の取得に libp11 を使用することをお勧めします。これにより、他のコンポーネント全体 (pkcs11 エンジン) を使用する必要がなくなるからです。
私が抱えている問題は、次の方法で pkey を取得するときです。
SSL を初期化すると、チェックはパスしますが、次のエラーがSSL_connect()
関数によってスローされます。
error:80009005:Vendor defined:PKCS11_rsa_encrypt:General Error
基本的に、秘密鍵はエンジンを介して取得すると機能しますが、libp11 を使用するとエラーがスローされます。エンジンの github のコードを調べると、使用していたのと同じ p11 呼び出しが行われていることに気付きました。
誰かがこのトピックの経験があり、ここで何が起こっているのかを知っているなら、それは私を大いに助けてくれるでしょう.
python - pkcs11-tool を使用して RSA 暗号化テキストを復号化できない
OpenSC の pkcs11-tool を使用して RSA 暗号化テキストを復号化しようとしています。Siemens CardOS5.0 カードを使用しています。ターミナルで次の行を実行します。
次のエラーが表示されます。
使用するキーに関係なく、このエラーが発生します。
次に、PyKCS11 モジュールと復号化を使用する Python スクリプトを作成しました。
ここで、result は暗号化されたテキストです。null も返します。
問題は私のアプローチですか、それともデバイスにありますか?