問題タブ [mscapi]
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.
cryptoapi - Microsoft は、独自の MS CryptoAPI に接続する PKCS #11 プロバイダーを提供していますか?
PKCS #11 インターフェイスを使用していくつかのテストを実行しようとしていますが、Microsoft が PKCS #11 機能を提供するソフトウェア ベースの実装を提供しているかどうか疑問に思っていました。
HSM が到着して適切に構成されるのを待つのではなく、今すぐインターフェースとの対話のテストを開始したいと思います。
windows - Microsoft CryptoAPI Book
Microsoft CryptoAPIを使用して、サーバー側の証明書検証を使用して独自のSSLソケット(CSocket ansestor)を作成する必要があります。
どの本が私(または他のユーザーフレンドリーな情報源)に役立つか教えていただけますか?
java - 例が必要 - Microsoft Crypto API を使用して Java で文字列を復号化する
何よりもまず、私は Java プログラマーではありません。私が持っている Java 開発者は暗号化を扱った経験があまりないため、この問題の解決策の例を探しています。私たちがオンラインで見つけたものはすべて、Web ページの暗号化と MS キーストアの処理に関するものです。PowerBuilder (PB) から単一の文字列を操作し、それを Java で復号化できるようにしたいだけです。ここでの制限は、MS ライブラリです。特定の制限により、この暗号化方法の使用に固執しているため、スローされたものを処理するのは Java 側に任されています。
私が持っているのは、この Java ユーティリティを呼び出してユーザー名とパスワードを渡す必要がある PB バージョン 10.2 プログラムです。PB が Java アプリを呼び出す方法として、コマンド ラインに適した文字列としてパスワードを暗号化しようとしています。
PB では、次のオブジェクトを使用しています: http://www.topwizprogramming.com/freecode_crypto.html
コードが行っていることは、advapi32.dll にある Microsoft 暗号化 API をラップすることです。使用する機能は次のとおりです。
CryptAcquireContext http://msdn.microsoft.com/en-us/library/aa379886(VS.85).aspx
CryptCreateHash http://msdn.microsoft.com/en-us/library/aa379908(VS.85).aspx
CryptHashData http://msdn.microsoft.com/en-us/library/aa380202(VS.85).aspx
CryptDeriveKey http://msdn.microsoft.com/en-us/library/aa379916(VS.85).aspx
CryptEncrypt http://msdn.microsoft.com/en-us/library/aa379924(VS.85).aspx
Microsoft Strong Cryptographic Provider と PROV_RSA_FULL を使用しています。このコードは、暗号化するデータを受け取り、それを BLOB に変換してから、暗号化関数に渡します。そこで、コンテキストを取得し、コンテキストからハッシュ オブジェクトを作成し、パスワードをハッシュし、ハッシュからセッション キーを取得してから、encrypt/decrypt を呼び出します。最後に、返された BLOB を受け取り、それを ANSI 文字セットの文字列に変換します。
いくつかの定数がどこから来ているかが一目でわかりますが、他の定数はそれほど多くありません。 ULong CRYPT_NEWKEYSET = 8 定数 ULong ERROR_MORE_DATA = 234
これが BouncyCastle のようなものを使用して 1.5 で行われるか、MS 用の Sun 暗号化インターフェイスを使用して 1.6 で行われるかは気にしません。
ちょっと、文字列を暗号化してファイルに保存する必要があります。次に、ファイルを再度読み取り、同じ文字列を復号化する必要があります。しかし、ファイル全体を暗号化したくありません。必要な暗号化された値をファイルに保存したら、それを元の文字列に変換する必要があります。サンプルコードを教えてください。
security - MicrosoftCryptoAPIに関する基本的な質問
私はクリトアピを理解しようとしてMSDNを調べてきました。以下は、物事がどのように機能するかについてのいくつかの質問と推測です。私の推測に対する回答、確認、または反論は大歓迎です。
http://msdn.microsoft.com/en-us/library/ms867086.aspxで見つけたメモによると、CSPはセッション間で公開秘密鍵のペアを保持します。
キーコンテナに次のものを含めることができるように見えます。
これは正しいです?コンテナを閉じると、ペアになっていないキーは破棄されますか?
キーコンテナを作成/命名する通常の方法は何ですか?他のアプリケーションコンテナを踏みつけないようにするにはどうすればよいですか?公開/秘密キーを含むコンテナーが必要なので、cryptacquirecontextの備考セクションに記載されている一時コンテナーは適用できません。たぶん、いくつかの固定部分とシーケンス番号で構成されるcreatenameを使用します。完了したらコンテナを削除できます。
cryptsignhashは、署名または鍵交換秘密鍵のいずれかを使用してハッシュに署名することを指定します。これは、cryptsignkeyが適切なAlg_idパラメーター(値CALG_RSA_KEYXまたはCALG_RSA_SIGN)を使用してcryptkeygenによって作成された秘密鍵を見つけることを意味すると思います。
キーをエクスポートする場合、keyblobにはそれがどのような種類のキーであるかを示す情報が含まれていますか?
PUBLICKEYBLOBをエクスポートして、他の環境に転送した場合。署名の検証に使用する前に、そのBLOBを新しい環境にインポートする必要がありますか?cryptverifysignatureにはキーへのハンドルが必要なので、最初にインポートする必要があるように見えます。PUBLICKEYBLOBをインポートすると、既存の公開鍵と秘密鍵のペアの公開鍵が置き換えられますか?私はそうではないと思います。
windows - cryptoapiwindows7のサポート
Microsoftは、VistaおよびServer 2008以降から暗号化次世代(CNG)を導入しました。しかし、私の質問は、MicrosoftがWindows7およびServer2008で古いMSCAPI(たとえば、Windows2003およびWindowsXP)をサポートしているかどうかを知ることです。
ありがとう
ラージ
cryptography - Windows CAPIのCryptVerifySignatureで使用するために、ネイティブコードのXMLまたはモジュラス/指数からRSA公開鍵をインポートするにはどうすればよいですか?
C#では、次のいずれかの方法で公開鍵に対してハッシュを検証できます。
知っておく必要があるのは、受信RSA公開鍵を指定して、CAPIを使用して同じことを実行する方法です。
公開鍵を暗号化プロバイダーのコンテキストにインポートする方法を理解することを除いて、ハッシュを検証するために必要なほとんどのCAPI関数があります。
ありがとう!
c++ - Windows XP と Vista/7 での MS Crypto API の動作
XP、Vista、および Windows 7 で PEM 形式 (以下のコードに含まれるサンプル) からインポートされた公開キーを取得する方法を理解しようとしています。サンプル コードは、XP と Windows Vista/7 の両方でキーをインポートしますが、インポートしません。同じ方法。
Windows XP では、暗号化プロバイダーの名前に文字列"(Prototype)"が必要であり、CryptImportPublicKeyInfo への呼び出しを渡すことができます。
Windows 7 では、"(Prototype)"プロバイダーが存在しているように見えますが、CryptImportPublicKeyInfo の呼び出しをサポートしていないため、混乱を招きます。
これらのオペレーティング システム間で正しい実装はどのように見えるでしょうか? XP を検出して"(Prototype)"を付けて名前を要求する必要がありますか? 他のオペレーティング システムではそれを付けずに要求しますか? 一部の XP システムではまだ失敗する可能性はありますか?
または、この紛らわしい動作を検出し、必要な呼び出しをサポートする暗号化プロバイダーを選択する方法はありますか?
Windows 7 での出力:
Windows XP での出力:
その出力を生成する C++ ソース コード: (crypt32.lib が必要)
c# - IEが認証プロキシを使用する場合、C#/ C++X509Certificate2.VerifyはOCSPに失敗します
X509Certificate2.Verify()(および/またはC ++ / CAPIと同等のもの)を使用して証明書を検証しようとしています。
問題は、Internet Explorerの接続設定で認証が必要なプロキシが指定されている場合、OCSPチェックが常に失敗することです(プロキシを通過するための資格情報がないため、OSは証明書が取り消されていないことをチェックできません) 。)
Microsoftにはこれに似たKBがありますが、実際にはいかなる種類の修正も提供していません。 http://support.microsoft.com/kb/915787
クレデンシャル(ユーザー名とパスワード)を持っていても、それらを暗号化API(.NETまたはネイティブ)に渡すことができません。
認証を実施するシステムのデフォルトプロキシがある場合でも、証明書を検証できるソリューションはありますか?
ありがとう!
編集:
これは単に不可能であるというMicrosoftからのいくつかの兆候:
「CryptoAPIは、CRL配布ポイントを参照するHTTPURLに到達するために基本認証を必要とするプロキシまたはキャッシングサーバーに対しても認証できない場合があります。」 http://technet.microsoft.com/en-us/library/bb457027.aspx#EFAA
「特定のプログラムでWindows統合認証を使用しないプロキシサーバーへの認証が失敗する場合があります。この問題は、Winhttp.dllプロセスが非対話型サービスで使用するように設計されており、ユーザーにネットワーク資格情報の入力を求めないために発生します。」 http://support.microsoft.com/kb/887196
c++ - Window C / C ++CryptoAPIの例とヒント
この質問をしているのは、Windows C / C ++ Crypto APIの使用を開始するための簡単でわかりやすいガイドラインについて、msdnドキュメントやその他の不透明なソースを1日の大半を費やしてきたためです。
私が見たいのは、いくつかのサンプルコード、典型的なインクルードパス、リンクガイドラインなど、本当に役立つものです。私はこれが不正確な質問であることを知っていますが、不正確な答えはまったくない方が良いと思います。
私は自分のわずかな発見でボールを転がします...
java - Java の MSCAPI 証明書選択ボックス。SunMSCAPI?
比較的新しい SunMSCAPI セキュリティ プロバイダを試しています。ブラウザーに証明書選択ボックスをポップアップさせる単純なアプレットを作成したいと考えています。そこから取ります。私はこれをある方法でグーグル検索し、別の方法でグーグル検索しました。何かアドバイス?