問題タブ [wolfssl]
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++ - Cyassl-2.4.2 missing libcyassl.a file
I'm have built and installed Cyassl-2.4.2 on my unix machine to use with a project of mine; however, when I try to compile my c project, the compiler cannot find the libcyassl.a file. I have searched many times in the Cyassl.2.4.2 folder and am unable to find the file myself. Where is this file locate? Have I missed a step in bulding/installing Cyassl.2.4.2? Thanks!
android - CyaSSL を現在の Android カーネル (KitKat) に統合する
私が取り組んでいるプロジェクトでは、Android で CyaSSL を使用する必要があります。私は試みてきましたが、CyaSSL の指示に従ってカーネルに組み込むことにあまり成功していません。主な問題は、ビルド構造が、説明が書かれた Android のバージョンから現在のバージョンに大幅に変更されたように見えることです。
手順と関連する問題をリストします。
1) プロバイダーの「src/external/cyassl」から Android プラットフォームの「/external」ディレクトリに「cyassl」ディレクトリをコピーします。このフォルダは次の場所にあります: /external/cyassl
この手順は問題ありません。
2) /build/core/prelink-linux-map.map を開き、「# libraries for specific apps or temporary libraries」という見出しの下に libcyassl.so の新しいエントリを追加します。次のようになります。
Android の最新バージョンでは、事前リンクが削除されているため、この手順は不要のようです。
3) ファイル /dalvik/libnativehelper/Android.mk を開き、libcyassl.so を shared_libraries リストに追加します。
このファイルは移動したようです。WORKING_DIRECTORY/libnativehelper/Android.mk の下にある正しいファイルと思われるものを見つけ、それに応じて編集しました。
4) プロバイダーソースの「src/libcore/yassl」から Android プラットフォームの「/libcore」ディレクトリに「yassl」ディレクトリをコピーします。このフォルダーは /libcore/yassl に配置されます。
ここでは問題ありません。
5) SSL プロバイダーの初期化メソッドは、Android プラットフォームに登録する必要があります。ファイル /dalvik/libnativehelper/Register.c を開きます。既存のプロバイダーのエントリの下に「register_com_yassl_xnet_provider_jsse_NativeCrypto」メソッドを追加します。追加すると、次のようになります。
このファイル、Register.c は存在しません。手順 5 をどうすればよいかわかりません。
6) プロバイダーの初期化メソッドも、/dalvik/libnativehelper/include/nativehelper/AndroidSystemNatives.h のヘッダー ファイルに追加する必要があります。このファイルの既存の SSL プロバイダーの宣言の下に、次のメソッド宣言を追加します。追加すると、次のようになります。
このファイル AndroidSystemNatives.h も存在しないようです。そのため、ここで何をすべきかわかりません。
7) 「security.properties」ファイル (/libcore/securit/src/main/java/java/security/security.properties にあります) を開きます。CyaSSL プロバイダーを構成するには、次の変更を行います。
a) 次の行をプロバイダーのリストに追加します。この行は、デフォルトの「org.apache.harmony.xnet.provider.jsse.JSSEProvider」プロバイダーの上にある必要があります。各プロバイダーの横にある番号に注意してください。新しいプロバイダーを挿入した後、このリストの番号を付け直す必要がある場合があります。
b) 「ssl.SocketFactory.provider」エントリを新しい CyaSSL プロバイダーに変更します。変更後は、次のようになります。
このファイルは /libcore/luni/src/main/java/java/security にあるようで、それに応じて編集しました。ただし、処理方法がわからない手順が欠落しているため、ビルドされません。私はかなりの検索を行いましたが、何も役に立ちませんでした。私の選択肢はこの時点のようです -
1)上記を機能させます。
2) 古いバージョンの Android のビルドに戻ります (および関連するすべての問題、Java、Gcc、pyhton などのダウングレード)
3) カーネルに焼き付けずに CyaSSL Android ライブラリを使用する方法を見つけます (これが可能かどうかはわかりません)。
アドバイスや指示をいただければ幸いです。
c - uclinux と外部ライブラリで暗号化アクセラレーション ユニットを使用する
現在、MCU に存在する暗号化アクセラレーション ユニットを統合して、カスタム アプリだけでなく、使用する必要がある外部 SSL/TLS ライブラリでもパフォーマンスの向上を利用するための最良の方法を見つけようとしています。
私のプラットフォームは、uCLinux ディストリビューションで Freescale Kinetis (ARM Cortex-M4) デバイスを実行します。現在、ユーザー空間で mbed-TLS (Polar SSL) を実行することができました。WolfSSL から CyASSL を実行することもできます。現在、「メモリ マップド暗号化アクセラレーション ユニット」(MMCAU) ペリフェラルをプロセッサ上でアプリケーションと共に実行するための最適な戦略を検討しています。Freescale は、アセンブリに最適化されたコードを C でラップしたライブラリを提供しているため、コード自体の統合はそれほど難しくありません。トリッキーな点は、ユーザーアプリとライブラリで暗号化ユニットを使用できるようにするミドルウェアです。
1 つの可能性は、Linux 暗号化カーネル モジュール (cryptodev) を書き直して、ユーザー アプリで MMCAU を利用することです (これにより、プラットフォームが共有ライブラリをサポートしていないときに、複数のユーザー アプリから MMCAU にアクセスできるというメリットがあります)。ただし、これが最善の戦略であるかどうかはわかりません。さらに、mbed-TLS は、ネイティブの Linux 暗号化ドライバーをサポートしていないようです。
他の代替案がここ ( http://cryptodev-linux.org/ ) で提案されていますが、私は真の Linux スペシャリストではないため、私の場合に最適なソリューションが何であるかはよくわかりません。
ハードウェア暗号化の改善されたパフォーマンスの恩恵を受けながら、最も柔軟なソリューションを得るためにここで採用する最善の戦略に関するアドバイスを歓迎します.
c - CyaSSL Keygen 使用時のセグメンテーション違反
ここからセクション 7.7 の例を使用して、CyaSSL の Keygen 機能を動作させようとしています: http://www.yassl.com/yaSSL/Docs-cyassl-manual-7-keys-and-certificates.html
--enable-keygen オプションを指定して CyaSSL 3.2.0 を使用していますが、3.1.0 でも動作しませんでした。
これはコードです:
おそらく無効な書き込みか何かが原因で、InitRsaKey の行でセグメンテーション違反が発生します。
私の問題がどこにあるのか誰にもわかりませんか?どんな助けでも大歓迎です
ssl - wolfSSL と StellarisWare の例
StellarisWare /TivaWare の一部である freertos_demo を wolfSSL ライブラリと組み合わせて使用したいのですが、Makefile (実際には makedefs ファイル) を読み取るのが難しいと感じています。
マニュアルに従って、wolfSSL をダウンロードしてコンパイルしました。/usr/local/lib には、次のファイルがあります。
- /usr/local/lib//libwolfssl.la
- /usr/local/lib//libwolfssl.so
- /usr/local/lib//libwolfssl.so.3
- /usr/local/lib//libwolfssl.so.3.1.0
次に、StellarisWare ルート ディレクトリから makedefs を開き、次のコードを 160 行目に追加します。
LIBS=-lwolfssl
さらに、246行目と252行目を次のように変更しました (どちらの行も同じです。基本的には を追加しただけです '${LIBS}'
)。
'${LIBM}' '${LIBC}' '${LIBGCC}' '${LIBS}';
ただし、blinky サブディレクトリに移動して「make clean; make」を実行すると、次のエラーが発生します。
arm-none-eabi-ld: cannot find -lwolfssl
私は何が欠けていますか?
一番
ssl - clientHello 後の SSL handshake_failure
WolfSSL で tls1.2 を使用して、組み込みデバイスを smtp.gmail.com:465 に接続しようとしています。ライブラリは、次の clientHello メッセージを作成して送信し、ハンドシェイクの失敗を受け取ります。
受信したメッセージは次のとおりです。
Wiresharkのスクリーンショットでわかるように、次の暗号スイートがクライアントでサポートされています。
...そして、次の署名アルゴリズムがクライアントでサポートされています (スクリーンショットの下部にある 16 進数部分を参照してください。wireshark は署名アルゴリズムをデコードしません)。
一方、smtp.gmail.com は次の暗号スイートをサポートしています。(これは、「superuser.com/questions/109213/how-do-i-list-the-ssl-tls-cipher-suites-a-particular-website-offers」でスクリプトを実行することによって取得されます)
上記のように、これら 2 つのスイートは一致します。
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_RSA_WITH_RC4_128_SHA
そして、「www.digicert.com/help/」(「smtp.gmail.com:465」を使用) で証明書を確認したところ、次のようになりました: Digicert スクリーンショット
- 署名アルゴリズム = SHA256 + RSA (優れた)
これも似合う
「tools.ietf.org/html/rfc5246#section-7.2.2」によると
私が理解している限り、handshake_failure の暗号スイートと署名アルゴリズムの不一致以外の理由が存在するか、非常に大きなものを見逃しています。失敗の理由を探していますが、見つかりません。どんな助けやアイデアにも感謝します。handshake_failure の原因は何ですか?
クリックできないリンクで大変申し訳ありません。stackoverflow では、2 つ以上のリンクを追加できません。評判が10になったら、通常のリンクに置き換えます:)