問題タブ [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.

0 投票する
1 に答える
2904 参照

c++ - CNG ストレージ関数を使用して永続キーを Windows キー ストレージにインポートする

永続的な RSA 公開鍵をキー ストレージにインポートしようとしています。CNG のヘルプ ページを読んで、秘密鍵を使用できることを知りました。公開鍵 (具体的には BCRYPT_RSAPUBLIC_BLOB) にも適用できるかどうか疑問に思います。次のコードを試してみましたが、インポート セクションで、パブリック BLOB をプロパティとして設定するために NCryptSetProperty を呼び出すと、NTE Bad Data である "Error 0x80090029" が表示されます。この関数が失敗する理由をデバッグするのに問題があります。

0 投票する
2 に答える
9075 参照

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の戻り値を取得します。0xc000a002STATUS_AUTH_TAG_MISMATCHntstatus.h

パラメータpbIVが in/out としてマークされていても、パラメータが指す要素は によってpbIV変更されませんBCryptEncrypt()。それは期待されていますか?ポインターが指す構造pbNonce内のフィールドも調べましたが、そのフィールドも変更されていません。また、「手動で」IV を進め、カウンター スキームに従ってコンテンツを自分で変更しようとしましたが、それも役に立ちませんでした。BCRYPT_AUTHENTICATED_CIPHER_MODE_INFOpPaddingInfo

BCryptEncryptand/orBCryptDecrypt関数を正常にチェーンするための正しい手順は何ですか?

0 投票する
1 に答える
1626 参照

c - BCrypt NTSTATUS コードの戻り値はどこで定義されていますか?

Windows CNG 暗号化プリミティブ関数には、タイプ の戻り値がありNTSTATUSます。BCryptDecrypt 関数など、いくつかの可能な (シンボリックな) 戻り値が言及さSTATUS_AUTH_TAG_MISMATCHれています。

これらのシンボルは、 では定義されておらずbcrypt.h、ドキュメントに記載されている他のヘッダー ファイルでも定義されていません。解決できないため、コードで使用できません。彼らはどこにいますか?

0 投票する
1 に答える
1048 参照

.net - RSACng を使用して公開 RSA キーを作成しています: 指定されたキーは、このアルゴリズムに対して有効なサイズではありません

現在、 Tableauの Web サービス認証の一部として RSA 暗号化キーを作成しようとしています。

私は暗号化に関して初心者であり、公開鍵の生成方法がよくわかりません。

モジュラスは 256 バイトで、指数は 5 バイトです。

0 投票する
1 に答える
979 参照

c# - CNG キーを作成する権限

マシン スコープの CNG キーを作成しようとすると、次のようになります。

私は得る

管理者として実行すると機能しますが、このユーザーをローカル管理者に追加せずに、AD ユーザー アカウントでこれを行う必要があります。

CNG キーを作成する権利を付与する正確なアクセス許可は何ですか? また、それらはどこで設定できますか?

0 投票する
0 に答える
1464 参照

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) でも同じことを行いましたが、エラーは発生しませんでした。

0 投票する
2 に答える
141 参照

visual-c++ - GetHashInterface 関数をエクスポートするには?

CNG (Cryptography Next Generation) の下で単純なアルゴリズム プロバイダーを作成します。まさにユーザー モードのハッシュ プロバイダーです。
CNG 開発キットのヘルプの指示によると、「ハッシュ プロバイダーはGetHashInterface関数を実装し、名前でエクスポートする必要があります」。
アルゴリズム プロバイダーを実装するには、CNG 開発キットの "bcrypt.h" ファイルを含める必要があります。GetHashInterfaceこのファイルは、関数のインターフェイスも定義しますが、exportディレクティブはありません。正確には次のとおりです。

たとえば、ヘッダー ファイル内の関数をエクスポート可能な関数として再定義するとします。

エラーメッセージが表示されるはずです:

エラー C2375 'GetHashInterface': 再定義。異なるリンケージ

EXPORT ディレクティブを削除すると (または関数のインターフェイス事前定義全体を削除すると)、エラー メッセージは表示されなくなりますが、DLL から関数をエクスポートできません。
ですから、必要な機能をエクスポートするために問題を解決する方法を教えてくださいGetHashInterface