問題タブ [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.
c# - C# certenroll.dll を使用して、CA なしで非自己署名クライアント CX509Certificate 要求を生成する
CERTENROLL.dll の CX509CertificateRequest 証明書機能を使用して C# で生成した自己署名ルート証明書があります。
同じ API を使用して、ルートによって署名されたクライアント証明書を生成する関数を作成したいと考えています。ただし、自己署名証明書を生成しない唯一の CertEnroll オプションには、認証された CA が必要です。
SignerCertificate を設定するためのフラグがあるようですが、常に初期化に失敗します。
ルートによって署名されたクライアント CX509CertificateRequest を生成する方法を知っている人はいますか?
ヘルプやアドバイスをいただければ幸いです。
windows - Windows Crypto API 内での CSP 呼び出しのトレース
Windows Server 2008 R2 認証局を使用して秘密キーのアーカイブに取り組んでいます。クライアント側では、クライアントがアーカイブ対応の証明書を要求したときに、Windows プロセスによってどの Crypto API 関数呼び出しが行われるかを知りたいと思っています。特に、 Advapi32.dllにあるhttp://msdn.microsoft.com/en-us/library/aa922849.aspxにリストされている関数呼び出しを追跡することに重点を置いています。
ここで windbg/cdb スクリプトを試しました ( http://blogs.msdn.com/b/alejacma/archive/2007/10/31/cryptoapi-tracer.aspx )。証明書の要求を行っているときに mmc.exe に添付しましたが、プロセス中に行われた CSP 呼び出しを検出できませんでした。また、certreq.exe を介して証明書を要求しようとしましたが、windbg は CSP 呼び出しを追跡できませんでした。「DLLへのアプリケーション呼び出しの監視」というタイトルのstackoverflowスレッドに記載されているように、他の形式のトレースも試しました
これらの呼び出しがどのように行われているかを調べるために、どの Windows プロセス/サービスにアタッチする必要があるか教えてください。どのプロセスがそれを行うかに関係なく、関数呼び出しが行われるたびにトレースすることは可能ですか?
これらの CSP 呼び出しを追跡する方法に関する提案は大歓迎です!
java - SunMSCAPI JCE プロバイダを使用してハッシュ化されたデータを暗号化する
RSA と SHA-1 でデータに署名したいのですが、データのサイズが大きすぎます。
このスレッドを参照してください: Using SHA1 and RSA with java.security.Signature vs. MessageDigest and Cipher、ハッシュ化されたデータを暗号化しようとしています。
PKCS12またはPKCS11プロバイダーを使用して秘密鍵をロードすると、問題ありません。署名と暗号化されたデータは同じです。しかし、SunMSCAPIプロバイダーを使用すると問題が発生し、異なる結果が得られます。
これは私のコードです:
byteArray2Hex メソッド:
そして、これが私の結果です:
助けてください、どうもありがとう!
c# - IKVM - NoSuchProviderException - そのようなプロバイダーはありません: SunMSCAPI
IKVM を初めて使用します。私は .NET でプロジェクトに取り組んでいますが、その機能の一部は Java で行う方が簡単です。(WSS4J および Axis からの) いくつかの Java Jar を使用する必要があります。jar2ikvmc を使用して script.cmd ファイルを生成します。このファイルを実行して、jar から dll を取得します。しかし、C# プロジェクトでこれらの dll を参照し、それらを使用すると、この NoSuchProviderException が発生します。
例外からのstackTraceは次のとおりです。
v sun.security.jca.GetInstance.getService (ストリング型、ストリング・アルゴリズム、ストリング・プロバイダー)
v sun.security.jca.GetInstance.getInstance (ストリング・タイプ、クラス clazz、ストリング・アルゴリズム、>ストリング・プロバイダー)
v java.security.Security.getImpl(String , String , String )
v java.security.KeyStore.getInstance (ストリング・タイプ、ストリング・プロバイダー)
v cz.praktik.vzpmodul.b2b.B2BSluzby.nactiAlias(ストリング)
v cz.praktik.vzpmodul.b2b.B2BSluzby..ctor(String serioveCisloKlice)
v VzpModulTest.Program.Main(String[] args) v C:\Users\florian\Documents\Visual Studio >2008\Projects\VzpModulTest\VzpModulTest\Program.cs:řádek 21
v System.AppDomain._nExecuteAssembly (アセンブリ アセンブリ、String[] args)
v System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, >String[] args)
v Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
v System.Threading.ThreadHelper.ThreadStart_Context (オブジェクトの状態)
v System.Threading.ExecutionContext.Run (ExecutionContext executionContext, >ContextCallback コールバック, オブジェクト状態)
v System.Threading.ThreadHelper.ThreadStart()
この問題を解決する方法はありますか? Javaのプロジェクトは私にとってはうまくいきます。私は Windows7 32b を持っています。
ありがとうございました。
windows - Cryptoapi の署名/検証が Windows 8.1 で機能しない
CryptoApi を使用して、SHA1 ハッシュでメッセージに署名して検証するアプリケーションがあります。Windows XP から Windows 8 まで、何年にもわたって完全に機能していましたが、Windows 8.1 では機能しなくなりました。CryptSignHash がエラー コード 87 (無効なパラメーター) で失敗します。CryptVerifySignature は失敗しませんが、NTE_BAD_SIGNATURE を返します (Windows 8 で作成された有効な署名の場合)。Windows 8 以下で動作し、Windows 8.1 では失敗します。
これをさらにデバッグする方法についてのアイデアはありますか? インポートした公開鍵と秘密鍵を再度エクスポートし、それらが正しいことを確認しました。「私たちの」キーの使用をスキップし、新しいキーを生成しました -> 署名もエラー 87 で失敗しました 新しいキーを生成し、RSA_FULL と DES を使用してメッセージを暗号化/復号化しました -> 問題なく、期待どおりに動作します。RSA_FULL プロバイダーのバージョンを確認しました。Windows 8 と Windows 8.1 の両方で 2.0 です。プロバイダー名を明示的に指定してみました: Microsoft Base Cryptographic Provider v1.0
Windows 8.1 で署名が機能する人はいますか?
Windows 8.1 の新機能は他にありますか。署名が機能しなくなる可能性がありますか?知っておくべきプロバイダーやアルゴリズムに関して何か変更はありましたか?
アプリケーションは Delphi で記述されており、ほぼ次のフローを使用します。
delphi - Delphi で MS cryptoAPI を使用してドキュメントに署名する
Microsoft CryptoAPI を使用してデータに署名する方法の完全な例を Delphi で見つけようとしました。オンラインでは、ほとんどがスニペットと疑似コードを見つけますが、これを行う方法の具体的な例はありません。
私が理解していることから、コードと情報を探して一日を過ごした後、公開鍵に基づいてドキュメント/ファイルのハッシュを作成できます (ペアを自己生成するか、キーチェーンの証明書によって提供される場合)。このハッシュは、暗号化された出力ファイル (コンテナー セクション) にエンコードされ、秘密鍵を保持する受信者によって検証およびデコードできます。
Delphi の例が存在しない場合、ファイル/ドキュメントに署名するために使用できる無料のコマンドライン プログラムはありますか?
MD5/SHA1 ハッシュのコードと、パスワード文字列を使用してファイルを暗号化するコード (オンザフライで生成されたキーパーからハッシュを導出するコード) を見つけました。しかし、悲しいことに、ストリームやファイルの署名はありません。Google で最も近いのは Turbopower (LockBox) による古い製品ですが、生成された出力が MS cryptoAPI と互換性があるかどうかはわかりません (?)
更新:これは私が探しているものに沿ったものですが、C で書かれています: http://blogs.msdn.com/b/alejacma/archive/2008/01/23/how-to-sign-and- verify-with-cryptoapi-and-a-user-certificate.aspx
また、質問を格下げする場合は、その理由を十分に説明してください。これは、大規模な企業アプリケーションで直面する問題に関して、Delphi にとって完全に有効な質問です。