問題タブ [cng]
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++ - CNG ストレージ関数を使用して永続キーを Windows キー ストレージにインポートする
永続的な RSA 公開鍵をキー ストレージにインポートしようとしています。CNG のヘルプ ページを読んで、秘密鍵を使用できることを知りました。公開鍵 (具体的には BCRYPT_RSAPUBLIC_BLOB) にも適用できるかどうか疑問に思います。次のコードを試してみましたが、インポート セクションで、パブリック BLOB をプロパティとして設定するために NCryptSetProperty を呼び出すと、NTE Bad Data である "Error 0x80090029" が表示されます。この関数が失敗する理由をデバッグするのに問題があります。
c - GCM モードで AES を使用して BCryptEncrypt および BCryptDecrypt 呼び出しをチェーンする方法は?
Windows CNG API を使用すると、GCM モードで AES を使用して、認証を使用してデータの個々のブロックを暗号化および復号化できます。複数のバッファを連続して暗号化および復号化したいと考えています。
CNG のドキュメントによると、次のシナリオがサポートされています。
暗号化または復号化への入力が複数のバッファに分散している場合は、BCryptEncrypt 関数と BCryptDecrypt 関数への呼び出しを連鎖させる必要があります。連鎖は、dwFlags メンバーで BCRYPT_AUTH_MODE_IN_PROGRESS_FLAG フラグを設定することによって示されます。
私がそれを正しく理解していれば、これは、BCryptEncrypt
複数のバッファーで順番に呼び出し、最後に結合されたバッファーの認証タグを取得できることを意味します。同様にBCryptDecrypt
、実際の認証チェックを最後まで延期しながら、複数のバッファーで順番に呼び出すことができます。しかし、それを機能させることはできません。値dwFlags
が無視されているようです。を使用するたびに、 で定義されている と等しいBCRYPT_AUTH_MODE_IN_PROGRESS_FLAG
の戻り値を取得します。0xc000a002
STATUS_AUTH_TAG_MISMATCH
ntstatus.h
パラメータpbIV
が in/out としてマークされていても、パラメータが指す要素は によってpbIV
変更されませんBCryptEncrypt()
。それは期待されていますか?ポインターが指す構造pbNonce
内のフィールドも調べましたが、そのフィールドも変更されていません。また、「手動で」IV を進め、カウンター スキームに従ってコンテンツを自分で変更しようとしましたが、それも役に立ちませんでした。BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO
pPaddingInfo
BCryptEncrypt
and/orBCryptDecrypt
関数を正常にチェーンするための正しい手順は何ですか?
c - BCrypt NTSTATUS コードの戻り値はどこで定義されていますか?
Windows CNG 暗号化プリミティブ関数には、タイプ の戻り値がありNTSTATUS
ます。BCryptDecrypt 関数など、いくつかの可能な (シンボリックな) 戻り値が言及さSTATUS_AUTH_TAG_MISMATCH
れています。
これらのシンボルは、 では定義されておらずbcrypt.h
、ドキュメントに記載されている他のヘッダー ファイルでも定義されていません。解決できないため、コードで使用できません。彼らはどこにいますか?
.net - RSACng を使用して公開 RSA キーを作成しています: 指定されたキーは、このアルゴリズムに対して有効なサイズではありません
現在、 Tableauの Web サービス認証の一部として RSA 暗号化キーを作成しようとしています。
私は暗号化に関して初心者であり、公開鍵の生成方法がよくわかりません。
モジュラスは 256 バイトで、指数は 5 バイトです。
c# - CNG キーを作成する権限
マシン スコープの CNG キーを作成しようとすると、次のようになります。
私は得る
管理者として実行すると機能しますが、このユーザーをローカル管理者に追加せずに、AD ユーザー アカウントでこれを行う必要があります。
CNG キーを作成する権利を付与する正確なアクセス許可は何ですか? また、それらはどこで設定できますか?
windows - Windows 10 で CNG を使用すると、未解決の外部シンボル _BCryptEnumRegisteredProviders@8
VC++ 2015 (Windows 10 x64) で CNG (Cryptography Next Generation) を使用して最初のステップを実行しようとしています。コードは次のとおりです。
プロジェクトのビルド (x86 用) で、次のエラー メッセージが表示されました。
エラー LNK2019 未解決の外部シンボル _BCryptEnumRegisteredProviders@8 が関数 _main で参照されました
次に、「CNG ソフトウェア開発キット」をインストールしようとし、次の指示に従ってプロジェクトを構成しました: http://www.codeproject.com/Articles/18713/Simple-way-to-crypt-a-file-with-CNG but project建物は同じエラーメッセージを出しました。
助けてください!
PS: (Win7 x86、VS 2008) でも同じことを行いましたが、エラーは発生しませんでした。
visual-c++ - GetHashInterface 関数をエクスポートするには?
CNG (Cryptography Next Generation) の下で単純なアルゴリズム プロバイダーを作成します。まさにユーザー モードのハッシュ プロバイダーです。
CNG 開発キットのヘルプの指示によると、「ハッシュ プロバイダーはGetHashInterface
関数を実装し、名前でエクスポートする必要があります」。
アルゴリズム プロバイダーを実装するには、CNG 開発キットの "bcrypt.h" ファイルを含める必要があります。GetHashInterface
このファイルは、関数のインターフェイスも定義しますが、export
ディレクティブはありません。正確には次のとおりです。
たとえば、ヘッダー ファイル内の関数をエクスポート可能な関数として再定義するとします。
エラーメッセージが表示されるはずです:
エラー C2375 'GetHashInterface': 再定義。異なるリンケージ
EXPORT ディレクティブを削除すると (または関数のインターフェイス事前定義全体を削除すると)、エラー メッセージは表示されなくなりますが、DLL から関数をエクスポートできません。
ですから、必要な機能をエクスポートするために問題を解決する方法を教えてくださいGetHashInterface
。