問題タブ [libgcrypt]
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++ - GPLv2互換ライブラリを使用してファイルからRSA秘密鍵を読み取る方法は?
RSA 復号化を行う必要があり、秘密鍵はファイルに保存されています。私はC++を使用しています。最初は OpenSSL を使用していましたが、スムーズに動作しましたが、コードを GPLv2 互換にしたいので、ライセンスの問題が発生しました。現在、libgcrypt を使用しようとしていますが、S 式の使用に問題があります。これは私のコードです:
今、私はこれが libgcrypt を使用する正しい方法ではないことを明確に知っています (キーテキスト全体を MPI として読み取っていて、復号化に失敗するため)。 .. キーの解析は手動で行う必要がありますか?
ありがとう!
cryptoapi - BcryptSignHash 出力署名のエンディアン
BcryptGenerateKeyPairによって生成される秘密鍵と公開鍵のBLOBは、ビッグ エンディアンでエンコードされます ( http://msdn.microsoft.com/en-us/library/windows/desktop/aa375520%28v=vs.85%29.aspx )。
これらのキーを使用して、BcryptSignHashを使用してデータに署名し、理想的には (r,s) である 64 バイトの署名を生成します。この署名もビッグエンディアンでエンコードされていますか?
64 バイトの署名から r と s を抽出するには、この情報が必要です。64 バイトの署名は、r (最初の 32 バイト) と s (最後の 32 バイト) の連結であると想定しています。
間違っていたら訂正してください
visual-c++ - libgcrypt.lib の未解決の外部シンボル
.lib(library) ファイルに未解決の外部シンボルが見つかった場合の対処方法。.c または .cpp に未解決の外部シンボルが見つかった場合は、修正できます。しかし、.lib(library) ファイルに未解決の外部シンボルが見つかった場合、どうすればこれを解決できますか?
私の場合、次のようなリンカ エラーが見つかりました。
エラー 1 エラー LNK2019: 関数 _fprintf D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib(libgcrypt_la-global.o) で参照されている未解決の外部シンボル ___mingw_vfprintf エラー 2 エラー LNK2001: 未解決の外部シンボル ___mingw_Vidfprint\Playa TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib(libgcrypt_la-misc.o) エラー 3 エラー LNK2001: 未解決の外部シンボル _gpg_strerror D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libvlc.lib) エラー (eccwin\libvlccore.lib)エラー LNK2019: 未解決の外部シンボル _gpg_strerror が関数 __gcry_strerror D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt で参照されています。lib(libgcrypt_la-global.o) エラー 5 エラー LNK2001: 未解決の外部シンボル _gpg_strerror D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib(libgcrypt_la-misc.o) エラー 6 エラー LNK2001: 未解決の外部シンボル _gpg_strerror D :\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib(md.o) エラー 7 エラー LNK2001: 未解決の外部シンボル _gpg_strerror D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\cryptgcryptlib.lib.vlc(core\vlcwin\cryptgcryptlib.vlc o) エラー 8 エラー LNK2019: 関数 __gcry_strsource D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt で参照されている未解決の外部シンボル _gpg_strsource。lib(libgcrypt_la-global.o) エラー 9 エラー LNK2019: 関数 _do_malloc で参照されている未解決の外部シンボル _gpg_err_set_errno external symbol _gpg_err_set_errno D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib(libgcrypt_la-stdmem.o) Error 11 error LNK2001: unresolved external symbol _gpg_err_set_errno D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt. lib(libgcrypt_la-secmem.o) エラー 12 エラー LNK2001: 未解決の外部シンボル _gpg_err_code_from_errno D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib(libgcrypt_la-module.o) Error 13 error LNK2019: unresolved external symbol _gpg_err_code_from_errno referenced in function _gpg_err_make_from_errno D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib (libgcrypt_la-global.o) エラー 14 エラー LNK2001: 未解決の外部シンボル _gpg_err_code_from_errno D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib(libgcrypt_la-sexp.o) エラー 15 エラー LNK2001: 未解決の外部シンボル D:\VidPlaya_offline\TryingToIncludeUpdateFacility\libgcrypt.lib(libgcrypt_la-sexp.o) \VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib(md.o) エラー 16 エラー LNK2001:unresolved external symbol _gpg_err_code_from_errno D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib(primegen.o) Error 17 error LNK2019: unresolved external symbol ___mingw_vsprintf referenced in function _sprintf D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore \libgcrypt.lib(libgcrypt_la-sexp.o) エラー 18 エラー LNK2001: 未解決の外部シンボル ___mingw_vsprintf D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib(ac.o) エラー 19 エラー LNK2001: 未解決の外部シンボル _gpg_errorerr_ D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib(primegen.o) エラー 20 エラー LNK2019:unresolved external symbol _gpg_err_code_from_syserror referenced in function _progress D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib(dsa.o) Error 21 error LNK2001: unresolved external symbol _gpg_err_code_from_syserror D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore \libgcrypt.lib(ecc.o) エラー 22 エラー LNK2001: 未解決の外部シンボル _gpg_err_code_from_syserror D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib(random-fips.o) エラー 23 エラー LNK2001: コード未解決の外部シンボル _gpg_error_syserr D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib(mpicoder.o) Error 24 error LNK2001: unresolved external symbol _gpg_err_code_from_syserror D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib(cipher.o) Error 25 error LNK2001: unresolved external symbol _gpg_err_code_from_syserror D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\ vlcwin\libvlccore\libgcrypt.lib(pubkey.o) エラー 26 エラー LNK2001: 未解決の外部シンボル _gpg_err_code_from_syserror D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib(kdf.o) エラー 27 エラー LNK2019: 未解決の外部シンボル関数 __gcry_pk_get_keygrip D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib(pubkey.o) エラー 28 エラー LNK2001: 未解決の外部シンボル _snprintf D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib(md.o) エラー 29 エラー LNK2001: 未解決の外部シンボル _snprintf D:\VidPlaya_offline\TryingToIncluded_Updateacid_Updated_UpdateFacility vlcwin\libvlccore\libgcrypt.lib(ecc.o) エラー 30 エラー LNK2001: 未解決の外部シンボル _snprintf D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib(rndw32.o) エラー 31 エラー LNK2019: 未解決の外部シンボル関数 _init_pool D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib(libgcrypt_la-secmem.o) エラー 32 エラー LNK2019 で参照される _getpagesize:unresolved external symbol _gettimeofday referenced in function _x931_get_dt D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\libvlccore\libgcrypt.lib(random-fips.o) Error 33 error LNK2001: unresolved external symbol _gettimeofday D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin \libvlccore\libgcrypt.lib(random-csprng.o) エラー 34 エラー LNK1120: 10 個の未解決の外部 D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\Release\libvlccore.dll エラー 89 エラー LNK2001: 未解決の外部シンボル "パブリック: 仮想構造体QMetaObject const * __thiscall UpdateDialog::metaObject(void)const " (?metaObject@UpdateDialog@@UBEPBUQMetaObject@@XZ) D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\lib_plugin\help.obj エラー 90 エラー LNK2001: 未解決の外部シンボル "public: virtual void * __thiscall UpdateDialog::qt_metacast(char const *)" (?qt_metacast@UpdateDialog@@UAEPABD@Z) D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\lib_plugin\help.obj エラー 91 エラー LNK2001: 未解決の外部シンボル "public: virtual int __thiscall UpdateDialog::qt_metacall(enum QMetaObject::Call,int,void *)" (?エラー 92 エラー LNK1120: 3 つの未解決の外部 D:\VidPlaya_offline\TryingToIncludeUpdateFacility\Vidplaya_Plugin_EmbeddedUpdate\vlcwin\Release\plugins\lib_plugin.dll
これに関する提案は役に立ちます。
ios - iOS で使用するための静的ライブラリ (libgcrypt) へのクロスコンパイル
https://www.gnupg.org/download/index.htmlから最新の libgcrypt & libgpg-error ライブラリをダウンロードしました。./configure --enable-static --disable-shared; を使用して両方のライブラリを (コマンド ラインで) 正常にビルドしました。作る ; 私のMacにインストールします(OSX 10.10および最新のXcode 6.1を搭載したMavericks)。
私が構築している OS X クライアント アプリから、これらの新しいライブラリに問題なくリンクできます。ここまでは順調ですね。完璧。しかし、まったく同じソース コードを使用して iOS クライアントを構築する必要もあります。
質問:
1) (シミュレーター、Mac & iOS) 用のユニバーサル スタティック ライブラリをビルドするために必要な、ライブラリのコマンド ライン ビルド シーケンスへの変更は何ですか? 2) または、iOS 用に別の静的ライブラリを作成する必要がありますか? もしそうなら、もう一度、ターゲット アーキテクチャを正しくするために、どのようなコマンド ライン マジックが必要でしょうか?
c - 静的リンクによりセグメンテーション違反エラーが発生する
C アプリケーションを静的にリンクする際に問題があります。すべてのライブラリ (.a) が存在し、ちょうど 1 か月前に、エラーなしでアプリケーションを静的にリンクすることができました。しかし、Eclipse で静的リンク オプションをアクティブにするとすぐに、エラーなしでコンパイルできますが、実行しようとすると、「セグメンテーション エラー」が表示されて停止します。
私はデバッグしようとしましたが、それがEclipseが私に示しているものです:
次のライブラリを使用します: -lgcrypt -lgpg-error -lmxml -lpthread -lrt。問題の可能性はありますか?gdb トレースを投稿することもできますが、長いです。
リンカー コマンド: 呼び出し: 呼び出し: GCC C リンカー gcc -static -o "X - クライアント" ./src/lib/stopwatch-0.2/stopwatch.o ./src/lib/rscode-1.3/berlekamp.o ./src/ lib/rscode-1.3/crcgen.o ./src/lib/rscode-1.3/galois.o ./src/lib/rscode-1.3/rs.o ./src/lib/Salsa20/ecrypt.o ./src/ lib/helper-Client.o ./src/PoR-Client.o -lgcrypt -lgpg-error -lmxml -lpthread -lrt ビルド完了ターゲット: X - クライアント
c++ - libgcrypt の Crypto++ で暗号化されたデータを復号化する手順
ターゲット プラットフォームでの C 言語の制限により、暗号化されたデータを libgcrypt の Crypto++ で復号化する必要があります。そこで、AES128 と GCM モードをサポートする libgcrypt を使用することにしました。
Crypto++ では、データは次のように暗号化されます。
そして、この方法で正常に復号化されました:
ciphertext
しかし、次の手順で libgcrypt を使用してデコードしようとすると、デコードされたデータが間違っています。
gcry_cipher_open()
gcry_cipher_setkey()
gcry_cipher_setiv()
- 暗号文と認証タグを分離する
gcry_cipher_decrypt(cipher text)
gcry_cipher_checktag(authentication tag)
Crypto++ のデコード プロセスを再現するために見逃した手順はありますか?
Gcrypt 復号化コード (期待される出力Decrypted cipher = password
):
編集: 明確にするために、私が探している復号化の手順は、ciphertext
上記の Crypto++ 暗号化関数の出力です。encrypt_data()
。_ したがって、正常に復号化するために適用できない回答は受け入れませんciphertext
。
c - gcry_cipher_decrypt から復号化されたデータのサイズを決定しますか?
私は AES/GCM を使用していますが、以下は AES/CBC などの他のモードに関する一般的な質問です。に次の呼び出しがありますlibgcrypt
。
結果として復元されたテキストのサイズを判断する方法がわかりません。Working with cipher handlesリファレンスを確認しましたが、議論されていません (そして、'pad のヒットは 0 件です)。およびのlibgrcrypt
セルフ テストも確認しましたが、同じオーバーサイズのバッファが使用され、バッファが実際のサイズに切り詰められることはありません。tests/basic.c
tests/fipsdrv.c
バッファに返されたデータのサイズを確認するにはどうすればよいrecovered
ですか?