Rev 1.00.10

Renesas S5D9 用サンプル(e2studio WIRE_DHCP_TCP_RSA)の説明（e2studio Version:2022-10 / SSP Version 2.4.0)
１． Sample の免責について
・Sample に関する Tel/Fax でのご質問に関してはお受けできません。ただし、メールでのご質問に関してはお答えするよう努力はしますが、都合によりお答えできない場合もありますので予めご了承願います。
・Sample ソフトの不具合が発見された場合の対応義務はありません。また、この関連ソフトの使用方法に関する質問の回答義務もありませんので承知の上ご利用下さい。
・Sample ソフトは、無保証で提供されているものであり、その適用可能性も含めて，いかなる保証も行いません。また，本ソフトウェアの利用により直接的または間接的に生じたいかなる損害に関しても，その責任を負わないものとします。

２．サンプルのプロジェクト名
ワークスペース名概要

プロジェクト名

S5D9_e2std_WIRE_NetX_1

有線 LAN 接続した DHCP と WIRE_DHCP_TCP_RSA_ETH
TCP 通信のサンプル
Azure RTOS モードで動作
セキュリティエンジン(SCE7)
Crypto ドライバーの RSA を使 NetX DHCP Client
用したサンプル（暗号・復号） (g_dhcp_client0)
TCP 通信(Client)(nx_tcp_socket_.......)
暗号・復号(RSA)(g_sce_rsa_r.p_api->encrypt)(g_sce_rsa_r.p_api->decrypt)

統合開発環境Renesas e2studio(Version 2022-10)
SSP(Version2.4.0)

1

３．Tera Term Pro のインストール①「teraterm-4.106.exe」を検索してダウンロードする。
②PC にインストールし実行する③シリアルポートの設定
COM 番号は、PC 側でシリアル通信可能な番号を指定する。
115200BPS
8bit
none
1bitnoneの仕様にする。

④端末の設定USB シリアルコンバータ使用時に CR コードがカットされる設定の場合は、受信：LF にして下さい。

赤枠の設定にする。

2４．動作構成【EV-SYNERGY-01】を使用の場合
有線 LAN 接続

JTAGDebugger

DC5V 入力
1.＋5V
2.GND

MP-S5D9-01

JP5-2 側
JP6-2 側RS232C ポート
PC に接続EV-SYNERGY-01①PC 機と接続する RS232C ケーブルは、市販「クロスケーブル」でも可能です。
②USB-シリアル変換ケーブルを使用される場合は、「StarTech.com 社 ICUSB232FIN」推奨③自作する場合は、下記の配線になります。
PC-Windows
DSUB 9pin
オス
1
2
3
4
56789

EV-SYNERGY-xx
DSUB 9pin
オス
1NC
2RXD
3TXD
4NC
5GND
6NC
7RTS
8CTS
9NC

3NC
RXD
TXD
DTRGND
DSR
RTS
CTS
NC

【MP-S5D9-01】のみ使用の場合
DC5V 入力
1.＋5V
2.GND

RS232C ポート
PC に接続JTAG
DebuggerJP5-1 側
JP6-1 側MP-S5D9-01

有線 LAN 接続①PC 機と接続する RS232C ケーブルは、製作が必要です。
②「RS232C-Driver」は、下記 URL の「RS232CAB4」を推奨します。
http://tool-kobo.ddo.jp/Files/Product/RS232_422/RS232CAB.htm

MP-S5D9-01(CN8)
4pin
メス
1
DC3.3V
2
TXD23
RXD24
GND
H4P-SHF-AA

PC-Windows
DSUB 9pin
メス123456789RS232C
Driver

4NC
RXD
TXD
DTR
GND
DSR
RTS
CTS
NC

５．
「S5D9_e2std_WIRE_NetX_1」サンプルの説明
５－１．
「WIRE_DHCP_TCP_RSA_ETH」フォルダ構成とファイル名
S5D9_e2std_WIRE_NetX_1¥ WIRE_DHCP_TCP_RSA_ETH
Debug
WIRE_DHCP_TCP_RSA_E ELF ファイル、JTAG で使用
TH.elf
WIRE_DHCP_TCP_RSA_E MAP ファイル、アドレス情報管理
TH.map
WIRE_DHCP_TCP_RSA_E モトローラーHEX ファイル
TH.srec
その他
自動生成ファイル
ScriptS5D9.ld
ロケーション定義ファイル
Src
Command.c
コマンド入力処理のサンプルファイル
Command.hCommand.c 用ヘッダーファイル
tcp_cmd_thread_entry.c
TCP Cmd Thread サンプルファイル
wire_dhcp_thred_entry.c
DHCP client Thread サンプルファイル
sce7_rsa
sce7_rsa.c
RSA の暗号・復号化サンプルファイル
MP-S5D9-01（リンク指定）synergy_gen
Synergysynergy_cfg
Configuration.xml
PIN-MP-S5D901.pincfg
WIRE_DHCP_TCP_R
SA_ETH.jlink
その他

sce7_rsa.h
e2p.c
e2p.h
led.c
led.h
sic2.csci2.hstchar.cstcahr.hsce7_rsa.c 用ヘッダーファイル
E2PROM 処理モジュール
e2p.c 用ヘッダーファイル
LED 処理モジュール
led.c 用ヘッダーファイル
シリアル通信処理モジュール
sci2.c 用ヘッダーファイル
文字系処理モジュール
stchar.c 用ヘッダーファイル-

Generate を行うと作成されるファイル
Generate を行うと作成されるファイル
プロジェクト Generation ファイル
PIN configuration 用ファイル
Jlink デバッガー用ファイル
自動生成ファイル

5

５－２．サンプルの動作説明＜WIRE DHCP Thread＞
１）DHCP による IP アドレスの取得を待つTerm 画面＜１＞「"<tcp_thread waiting to get IP address>”」＜２＞「"<interface status check>”」
MP 基板に実装した EEPROM より MAC アドレス読みドライバにセットする。
＜３＞「<Start WIRE NetX DHCP>"”」＜４＞「"<Wait DHCP State Change>”」＜５＞「"<Start WIRE NetX DHCP>”」＜６＞「"<Wait DHCP BOUND>”」の順次処理して表示する。
・IP アドレス取得成功により、MP 基板上の LED3 を led blink thread で 100msec 毎に点滅
２）IP ドレス取得情報を Term 画面に表示する。

取得した IP アドレス

PC 側の IP アドレス

Crypto ドライバーオープン

コマンド入力6＜TCP Cmd Thread＞
３）オープニングメッセージを表示してコマンド入力を待つ。
・TCP Thread 起動後、MP 基板上の LED4 を 100msec 毎に点滅４）コマンドの説明（１）？（ヘルプコマンド）コマンド一覧の表示（２）ｓｅｎｄｉｐ（送信先ＩＰアドレスの登録と参照）＜機能＞
・送信先（PＣ機側）のＩＰアドレスを登録する。
＜例＞
xxx> sendip 192.168.21.9⏎
xxx> sendip⏎[send IP]: 192.168.21.51（３）ｓｅｎｄｐｏｒｔ（送信先ポート番号の登録と参照）＜機能＞
・送信先（PＣ機側）のポート番号を登録する。
＜例＞
xxx> sendport 50000⏎
xxx> sendport ⏎[send port]: 50000（４）ｓｅｎｄ（文字列の送信）＜機能＞
・送信先（PＣ機側）に文字列を送信する。
＜例＞
xxx> send 12345678123456781234567812345678⏎

7

（５）ｍｏｄｅ（暗号モードの設定と参照）＜機能＞
・送信先（PＣ機側）に文字列を送信するための暗号モードを指定する。
①<PLAIN> 平文で送信②<RSA>文字列を「RSA モード」で暗号化して送信する。
＜例＞
xxx> mode PLAIN⏎
xxx> mode RSA⏎
xxx> mode⏎[Now mode]: RSA（６）ｐｅｍ（PEM タイプの指定）＜機能＞
・暗号・復号化するための公開鍵・秘密鍵の PEM タイプを指定する。
①< 0 > (公開鍵)public-key.pem ：(秘密鍵) private-key.pem を使用する。
②< 1 > (公開鍵)public-key2.pem：(秘密鍵) private-key2.pem を使用する。
＜例＞
xxx>pem 0⏎xxx>pem 1⏎（７）ｍｙｉｐ（DHCP で取得した自ＩＰアドレスの参照）＜機能＞・DHCP で取得した自ＩＰアドレスを表示する。
＜例＞
xxx>myip⏎[My IP]: 192.168.21.9（８）ｍｙｐｏｒｔ（基板側で登録したポート番号の参照）＜機能＞・基板側で登録したポート番号を表示する。
＜例＞
xxx>myport⏎[My port]: 50001

8

６．
「S5D9_e2std_WIRE_NetX_1」のワークスペースを指定する。
６－１．ワークスペース名の指定参照をクリック①ワークスペース名「S5D9_e2std_WIRE_NetX_1」を指定②「フォルダの選択」をクリック

起動をクリック

６－２．プロジェクトのインポート☆詳細操作は「e2studio_synergy_Import.pdf 」の 2 項を参照して下さい。

9

７．デバッグ操作
７－１．デバッグ構成の設定☆詳細操作は「e2studio_synergy_Import.pdf 」の３－１項を参照して下さい。
７－２．デバッグの開始☆詳細操作は「e2studio_synergy_Import.pdf 」の３－２項を参照して下さい。
＜WIRE_DHCP_TCP_RSA 実行画面＞

10

７－３．Windows PC 側のテスト用プログラムで動作確認（PLAIN（平文）モード）
１）「TCP_IP_RSA_TEST」を起動する。
プログラム場所【ご購入 CD¥MCU サンプルプログラム¥_PC_Test_RSA】「TCP_IP_RSA_TEST.exe」を起動

２）「TCP_IP_RSA_TEST」の各項目を設定して「基板」側からの「接続」を待つ。

PC 側の IP アドレス自動検出

PC 側の port 固定①クリック
基板側の接続を待つ

11

３）「基板」側の各項目の確認と設定。
①PC 側の IP アドレスを設定する。
ex) sendip 192.168.21.51⏎②PC 側のポート番号を設定する。
ex) sendport 50000⏎③「plain」（平文）モードを指定する。
ex) mode plain⏎④「pem」（PEM）タイプを指定する。
ex) pem 0⏎
⑤実行画面

４）
「基板」側から「PC」(server) 側へ平文テキストを送信する。
①テキスト文を送信する。
（未接続の場合は、接続を実行）ex) send 12345678

PC(server)への接続処理(1)PC へ送信データ(2)PC からの受信データ12

５）「TCP_IP_RSA_TEST」側の送受信を確認する。

(1)「基板」側からの受信データ

接続完了(2)「基板」側への送信データ【Error 表示】
・受信時の接続失敗「”error!! client_socket_connect()[error code]”」・受信異常「” error!! recvfrom()[error code]”」・送信異常「”error!! sendto()[error code]”」６）「TCP_IP_RSA_TEST」その他の操作☑「Monitor」画面に送受信ダンプ表示

13「Monitor」表示を消去

７）TCP_IP-Port を「切断」する。

①クリック

切断を確認

14

７－４．Windows PC 側のテスト用プログラムで動作確認（RSA モード/public-key.pem タイプ）
１）
「TCP_IP_RSA_TEST」を起動する。
プログラム場所【ご購入 CD¥MCU サンプルプログラム¥_PC_Test_RSA】「TCP_IP_RSA_TEST.exe」を起動

２）「TCP_IP_RSA_TEST」の各項目を設定して「基板」側からの「接続」を待つ。

PC 側の IP アドレス自動検出

PC 側の port 固定
公開鍵[public-key.pem]を確認
秘密鍵[private-key.pem]を確認①RSA モードを選択
確認②クリック15

３）「基板」側の各項目の確認と設定。
①PC 側の IP アドレスを設定する。
ex) sendip 192.168.21.51⏎②PC 側のポート番号を設定する。
ex) sendport 50000⏎③「rsa」（RSA）モードを指定する。
ex) mode rsa⏎④「pem」（publik-key.pem）タイプを指定する。
ex) pem 0⏎
⑤実行画面

16４）
「基板」側から「PC」(server) 側へ RSA 暗号テキストを送信する。
①テキスト文を送信する。
（未接続の場合は、接続を実行）ex) send 12345678

PC(server)への接続処理①コマンド入力した平文のダンプ表示②平文を暗号化（Encrypt）した文章を PC（サーバー）に送信した文章のダンプ表示③PC（サーバー）から暗号文を受信したダンプ表示④受信した暗号文を復号（Decrypt）
した文章のダンプ表示①と④が同等であることを確認し、PC（サーバー）側の②とも同等であることを確認する。

17

５）「TCP_IP_RSA_TEST」側の送受信を確認する。

①MP-S5D9 から受信した暗号文②受信した暗号文を復号(Decode)した文章のダンプ表示③復号した文章を暗号(Encode)化
して MP-S5D9 に送信した文章のダンプ表示【Error 表示】
・受信時の接続失敗「”error!! client_socket_connect()[error code]”」・受信異常「” error!! recvfrom()[error code]”」・送信異常「”error!! sendto()[error code]”」18

６）「TCP_IP_RSA_TEST」その他の操作☑「Monitor」画面に送受信ダンプ表示「Monitor」表示を消去

７）TCP_IP-Port を「切断」する。

切断を確認

19

①クリック

７－５．Windows PC 側のテスト用プログラムで動作確認（RSA モード/public-key2.pem タイプ）
１）
「TCP_IP_RSA_TEST」を起動する。
プログラム場所【ご購入 CD¥MCU サンプルプログラム¥_PC_Test】「TCP_IP_RSA_TEST.exe」を起動

２）「TCP_IP_RSA_TEST」の各項目を設定して「基板」側からの「接続」を待つ。

PC 側の IP アドレス自動検出

PC 側の port 固定①公開鍵[public-key2.pem]を選択②秘密鍵[private-key2.pem]を選択③RSA モードを選択
確認

④クリック

20

３）
「基板」側の各項目の確認と設定。
①PC 側の IP アドレスを設定する。
ex) sendip 192.168.21.51⏎②PC 側のポート番号を設定する。
ex) sendport 50000⏎③「rsa」（RSA）モードを指定する。
ex) mode rsa⏎④「pem」（public-key2.pem）タイプを指定する。
ex) pem 1⏎
⑤実行画面

21４）
「基板」側から「PC」(server) 側へ RSA 暗号テキストを送信する。
①テキスト文を送信する。
（未接続の場合は、接続を実行）ex) send 12345678

PC(server)への接続処理①コマンド入力した平文のダンプ表示②平文を暗号化（Encrypt）した文章を PC（サーバー）に送信した文章のダンプ表示③PC（サーバー）から暗号文を受信したダンプ表示④受信した暗号文を復号（Decrypt）した文章のダンプ表示①と④が同等であることを確認し、PC（サーバー）側の②とも同等であることを確認する。

22

５）「TCP_IP_RSA_TEST」側の送受信を確認する。

①MP-S5D9 から受信した暗号文②受信した暗号文を復号(Decode)した文章のダンプ表示③復号した文章を暗号(Encode)化
して MP-S5D9 に送信した文章のダンプ表示【Error 表示】
・受信時の接続失敗「”error!! client_socket_connect()[error code]”」・受信異常「” error!! recvfrom()[error code]”」・送信異常「”error!! sendto()[error code]”」23

６）「TCP_IP_RSA_TEST」その他の操作☑「Monitor」画面に送受信ダンプ表示「Monitor」表示を消去

７）TCP_IP-Port を「切断」する。

切断を確認

７－６．デバッグの終了☆詳細操作は「e2studio_synergy_Import.pdf 」の３－３項を参照して下さい。

24

①クリック

８．公開鍵と秘密鍵を新しく作成する。
１）OpenSSL をインストールする。
☆既にインストール済みの場合は２）へ進む

ダブルクリック

25

[C¥OpenSSL-Win32]に変更する。

26

27

寄付を後回しにする場合は全てのチェックを外す＜OpenSSL のインストール終了＞

28２）OpenSSL を起動して秘密鍵と公開鍵を生成する。
２－１）コマンドプロンプトを起動して CD コマンドにて「OpenSSL-Win32¥bin」に移動する。

cd c:¥OpenSSL-Win32¥bin２－２）RSA 秘密鍵の生成(private-key2.pem)

openssl genrsa -out private-key2.pem 102429

２－３）生成した秘密鍵「private-key2.pem」をメモ帳等のエディタで内容確認

30

２－４）RSA 公開鍵の生成(public-key2.pem)

openssl rsa -in private-key2.pem -pubout -out public-key2.pem２－５）生成した秘密鍵「public-key2.pem」をメモ帳等のエディタで内容確認

31２－６）RSA 秘密鍵(private-key2.pem)を DER 形式のテキストファイルを生成

openssl rsa -in private-key2.pem -text -out private-key2.txt２－７）RSA 公開鍵(public-key2.pem)を DER 形式のテキストファイルを生成

openssl rsa -pubin -in public-key2.pem -text -out public-key2.txt

32２－８）生成した DER 形式のテキストファイルをメモ帳等のエディタで内容確認重要！！modulus/Modulus の Hex 数値が同等であることを確認する。

<private-key2.txt><public-key2.txt>

33

２－９生成した DER 形式の秘密鍵(private-key2.txt)の説明[modulus]
公開鍵として使用する。
[modulus]と[privateExponent]を組み合わせて秘密鍵に使用する。

[prime1] 以 下 の 数 値
は、秘密鍵を生成するために使用した素数等の数値です。無視しても構いません。

34３）公開鍵よ秘密鍵を S5D9 側に登録するため DER 形式のデータを C 言語用に編集する。
<説明>

先頭の[00]は無視する

先頭の[00]は無視する<modulus の編集>

e2studio でビルドが通るように C ベースのHex 記述に編集する。

35

<privateExponent の編集>

e2studio でビルドが通るように C ベースのHex 記述に編集する。

36４）前項の３）で編集した DER 形式の「modules」を置き換える

変数「static uint8_t BSP_ALIGN_VARIABLE(4) modulus[]」37５）前項の３）で編集した DER 形式の「privateExponent」を置き換える

変数「static uint8_t BSP_ALIGN_VARIABLE(4) priv_exponent[]」６）クリーン・ビルドする。

38

９．注意事項
・本文書の著作権は、エーワン（株）が保有します。
・本文書を無断での転載は一切禁止します。
・本文書に記載されている内容についての質問やサポートはお受けすることが出来ません。
・本文章に関して、ルネサス エレクトロニクス社への問い合わせは御遠慮願います。
・本文書の内容に従い、使用した結果、損害が発生しても、弊社では一切の責任は負わないものとします。
・本文書の内容に関して、万全を期して作成しましたが、ご不審な点、誤りなどの点がありましたら弊社までご連絡くだされば幸いです。
・本文書の内容は、予告なしに変更されることがあります。
１０．商標
・e2studio は、ルネサス エレクトロニクス株式会社の登録商標、または商品名称です。
・Renesas Synergy™および S3A7/S5D9/S7G2 は、ルネサス エレクトロニクス株式会社の登録商標、または商品名です。
・その他の会社名、製品名は、各社の登録商標または商標です。
１０．参考文献・「S3A7 ユーザーズマニュアル ハードウェア編」 ルネサス
・「S5D9 ユーザーズマニュアル ハードウェア編」 ルネサス
・
「S7G2 ユーザーズマニュアル ハードウェア編」 ルネサス
・ルネサス エレクトロニクス株式会社提供のサンプル集
・「e2studio ユーザーズマニュアル 入門ガイド」
ルネサス
・「SSP vx.x.x User’s Manual 」
ルネサス・「X-Ware Component Documents for Renesas Synergy™ 」ルネサス
・その他

エレクトロニクス株式会社
エレクトロニクス株式会社
エレクトロニクス株式会社
エレクトロニクス株式会社
エレクトロニクス株式会社
エレクトロニクス株式会社〒486-0852
愛知県春日井市下市場町 6-9-20
エーワン株式会社

https://www.robin-w.com
39