問題タブ [libcrypto]
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.
windows - Windows で OpenSSL を使用して cUrl をコンパイルすると、-lcrypto と -lssl が欠落している
SSL をサポートしないで cUrl をコンパイルしようとしても、問題はありません。私は次のようなコマンドを使用します:
cUrl INSTALL ファイルの指示に従って SSL をサポートし、この方法でコンパイルしようとしました。
しかし、次のエラーが発生するため、機能しません。
Shining Light Productionsから cUrl v7.40.0 と Win64 OpenSSL v1.0.2a をダウンロードしました。私が理解していることから、この OpenSSL のディストリビューションには、コンパイラが探しているものと、私が持っていないandの代わりにlibeay32.dll
、libssl32.dll
andが含まれています。また、フォルダーに 3 つの dll がすべてあることも確認しました。私は MinGW-w64 コンパイラを使用していますが、MSYS は使用していません。バージョン 4.9.2 です。ssleay32.dll
libcrypto.dll
libssl.dll
C:\Windows\System32
Win64 で SSL をサポートする cUrl ライブラリをコンパイルするには、どうすればよいですか? コンパイル コマンドや一部のファイルを変更する必要がありますか?それとも最初に間違ったバージョンの OpenSSL をダウンロードしましたか? どんな助けでも本当に感謝しています。
c - openssl ライブラリで x509 証明書ハッシュを取得する
私は現在、openssl ライブラリ (libcrypto) を使用して証明書を生成するアプリに取り組んでいます。ここで、既存の証明書のハッシュを取得する必要があります。
ターミナルを使用すると、次を使用してハッシュ値を生成できます
出力: 01da0e2b
これは、C のライブラリを使用してハッシュ値を生成しようとする私のコードです。
出力: 1817886a
しかし、実際には私の出力は別のものです。誰が私が間違っているのか考えていますか?
c++ - libcurl をプロジェクトに静的にリンクします (それでも DLL が必要です)
C/C++ プラグインで Netbeans IDE を使用しています。
私のコードは問題なくコンパイルされます。
CURL_STATICLIB
が定義されています (-DCURL_STATICLIB
これも試し#define CURL_STATICLIB
ました)。
これは私のリンクされたすべてのライブラリです。
exeを複数のDLLでパッケージ化することを避けようとしているので、静的にリンクしようとしています。
リンクの後でも、依存関係のエラーが発生します。(libcurl.dll libeay32.dll)
c - OpenSSL AES_cbc_encrypt vs EVP インターフェイス
AES-CBC を使用して、存続期間の長いネットワーク データ ストリームを暗号化する必要があります。私は一度だけ呼び出して、その後の への呼び出しEVP_EncryptInit_ex()
のために E を保存することを考えていました。次に、復号化側でも同様に行います。私が発見した最初の問題は、EVP_DecryptUpdate が常に 1 ブロック遅れることです。たとえば、32 バイトを暗号化すると、最初の復号化の更新では、32 バイトすべてを復号化したことがわかっていても、16 しか返されません。これは、すべての後に呼び出し、次の更新の前に iv をリセットする必要があることを意味すると思います。VP_CIPHER_CTX
EVP_EncryptUpdate
EVP_DecryptFinal
EVP_DecryptUpdate
EVP_EncryptInit_ex()
2 番目の懸念は、これらのストリームが何千もある可能性があり、メモリ フットプリントを最小限に抑えようとしていることです。sizeof(EVP_CIPHER_CTX)
はわずか 168 バイトですが、1000 回の呼び出しの前後にメモリ使用量を照会するとEVP_EncryptInit_ex()
、コンテキストごとに追加の 412 バイトが割り当てられているように見えます (これは、最初の呼び出しの後に 20K の上にあります)。
訂正、CTX あたり 168 + 412 ではなく 412 バイトと表示されます
インターフェイスは、AES_cbc_encrypt()
私のニーズに対してはるかに優れているように見えます。固定の 260 バイトAES_KEY
構造があり、さらに 16 バイトの IV を自分で維持する必要があります。ただし、私が理解していることから、AES-NI Intel ハードウェア アクセラレーションは使用されません。 https://security.stackexchange.com/questions/35036/different-performance-of-openssl-speed-on-the-same-hardware-with-aes-256-evp-an AES-NIを有効にする方法はありますかAEC_cbc_encrypt()
インターフェイスで?EVP の 2 倍のメモリ要件は、API の単なる副作用ではなく、速度を向上させるために必要ですか? AES-NI を使用する OpenSSL の代替手段はありますか?
c - libcrypto と libcurl を使用した OCSP
証明書の有効性を検証する必要があるアプリケーションを作成しています。そのために、OCSP を使用したいと思います。OCSP を自分で実装するのではなくlibcrypto
、必要なデータを準備するために OpenSSL を調べていました。
私はこれを思いつきました(わかりやすくするためにエラー処理を削除しました):
これはリクエストをうまく送信します。唯一の問題はOCSP_sendreq_bio()
、HTTP プロキシを介した HTTP リクエストの送信をサポートしていないように見えることです。これは私にとってブロッカーです。ドキュメントには、それについて次のように書かれています。
これらの関数は、レスポンダーに対して最小限の HTTP クエリのみを実行します。アプリケーションがより高度な機能をサポートしたい場合は、代替のより完全な HTTP ライブラリを使用する必要があります。
どうやってそうするかは言われていないだけで、私にはそれを理解できないようです。OCSP_sendreq_bio()
呼び出しは構造体を ASN.1 構造に変換しますが、それOCSP_REQUEST
を可能にするパブリック呼び出しはないようです (何かが欠けていない限り)。
私はこれを正しい方法で行っていますか?そうでない場合、代わりに何をすべきですか?
linux - ssh の解決方法: /usr/lib64/libcrypto.so.10: バージョン情報がありません
私はsshを実行しようとしていますが、次のメッセージが表示されました:
CURLでも同じことが起こりました:
解決策はありますか?
ldd ssh の出力は次のとおりです。
古いバージョンの openssl をインストールしようとしましたが、うまくいきませんでした。
c++ - QStrings での AES 暗号化、libcrypto++
メッセージを暗号化および復号化する次のコードがあります。
問題は、私がランダムに取得することです:
コンテンツを復号化するとき。QString
一部の Unicode データが含まれている可能性があるため、暗号化は を完全にサポートする必要があります。ただし、[Az][az][0-9] のみを含む基本的な文字列でも機能しません。
aesKey
サイズは256です。
Stack Overflow に関するいくつかの回答に続いて、誰かがHexDecoder
/の使用を提案しましHexEncoder
たが、私の場合は問題を解決しません。