目次

last update: 2025/03

OSレス環境用各種ミドルウェアサンプル
第8章: セキュリティ機能の評価
評価ボード:AP-RX72N-0A




emSecure:不正改造・不正量産を防ぐセキュリティゲートウェイ

テストサンプル

Demo Sample Application Folder:

Application
 └ _Exclude
     ├ SECURE  ....... emSecureライブラリのデモサンプル
Sample説明
SECURE_RSA_Bench_PerformanceRSA鍵のデジタル署名を使用してメッセージのSign・Verifyパフォーマンスを確認します

関連設定ファイル(emSecure):

Config
 |- SECURE_ECDSA_Conf.h  ....... ECDSAライブラリのコンフィグレーション設定
 |- SECURE_RSA_Conf.h  ......... RSAライブラリのコンフィグレーション設定
 |- Keys       ................. テスト用鍵データ設定ファイル
     |- SECURE_ECDSA_xxxx.h
     |- SECURE_RSA_xxxx.h

emSecure:ビルド・動作確認方法

プロジェクト設定では「\Application\_Exclude\SECURE」フォルダはビルド対象外に設定しています。以下のどちらかの方法で動作確認を行うサンプルアプリケーションを選択します。

  1. 「SECURE_RSA_Bench_Performance.c」テストサンプルファイルをビルド対象設定の「\Application」フォルダ下にコピーします。
  2. 「SECURE_RSA_Bench_Performance.c」テストサンプルファイルの「ビルド対象外」設定を解除します。

プロジェクトを再ビルドし、評価ボードに接続してデバッグセッションを開始します。
デバッガのIOコンソールのログ画面から結果を確認します。

テストレポート(emSecure)

Sample: SECURE_RSA_Bench_Performance

Debug IO Console:

SEGGER Software Evaluation Sample
Eval Board: AP-RX72N-0A (RX72N RXv3 @240MHz)
Base: Baremetal (No RTOS)
------------------------------------------------
(c) 2014-2018 SEGGER Microcontroller GmbH    www.segger.com
emSecure-RSA Performance Benchmark compiled Feb 19 2025 17:58:55

Compiler: CC-RX V3.06.00
System:   Processor speed             = 240.000 MHz
Config:   CRYPTO_VERSION              = 24001 [2.40a]
Config:   SECURE_RSA_VERSION          = 24600 [2.46]
Config:   CRYPTO_MPI_BITS_PER_LIMB    = 32
Config:   SECURE_RSA_MAX_KEY_LENGTH   = 2048 bits
Config:   SECURE_RSA_HASH_FUNCTION    = SHA1
Config:   SECURE_RSA_SIGNATURE_SCHEME = PSS

Sign/Verify Performance
=======================

+----------+----------+----------+----------+
|  Modulus |  Message |     Sign |   Verify |
|    /bits |   /bytes |      /ms |      /ms |
+----------+----------+----------+----------+
|      512 |        0 |    10.84 |     0.73 |
|      512 |     1024 |    10.97 |     0.92 |
|      512 |   102400 |    27.78 |    17.75 |
+----------+----------+----------+----------+
|     1024 |        0 |    57.17 |     2.04 |
|     1024 |     1024 |    57.33 |     2.22 |
|     1024 |   102400 |    74.07 |    19.06 |
+----------+----------+----------+----------+
|     2048 |        0 |   359.33 |     7.64 |
|     2048 |     1024 |   358.67 |     7.80 |
|     2048 |   102400 |   375.67 |    24.61 |
+----------+----------+----------+----------+

Benchmark complete

STOP.

emSSL:SSL/TLSセキュア通信

テストサンプル

SSL Application Folder:

Application
 └ _Exclude
     ├ SSL  ....... emSSLライブラリのデモサンプル
Sample説明
SSL_OS_Scan指定WEBサーバー対応の暗号スイートをスキャンして結果を表示します
SSL_OS_SimpleWebClientSSLクライアントから指定WEBサーバーに接続します

関連設定ファイル(emSSL):

Config
 |- SSL_Conf.h  ........ SSLコンフィグレーション設定ファイル(マクロ定義)
 |- IO
 |   |- SSL_ConfigIO.c  ..... デバッグコンソールIOインターフェース設定ファイル
 |
 |- Certificates
 |   |- SSL_EC_Certificate.c  ......... テスト用証明書
 |   |- SSL_EC_PrivateKey.c  .......... テスト用EC秘密鍵
 |   |- SSL_RSA_Certificate.c  ........ テスト用証明書
 |   |- SSL_RSA_PrivateKey.c  ......... テスト用RSA秘密鍵
 |
 |- OS
     |- libNo_OSLayer_RXv3_L.lib  ..... OSインターフェース設定ファイル

BSP
 |- Setup
     |- SSL_X_Config.c  .......... SSLコンフィグレーション設定ファイル(初期化設定)
     |- SSL_X_TrustedCerts.c  .... テスト用ルート証明書データ(バイナリ)

emSSL:ビルド・動作確認方法

プロジェクト設定では「\Application\_Exclude\SSL」フォルダはビルド対象外に設定しています。以下のどちらかの方法で動作確認を行うサンプルアプリケーションを選択します。

  1. 「\_Exclude\SSL」フォルダ下の対象テストサンプルファイルをビルド対象設定の「\Application」フォルダ下にコピーします。
  2. 「\_Exclude\SSL」フォルダ下の対象テストサンプルファイルのみ「ビルド対象外」の設定を解除します。

プロジェクトを再ビルドし、評価ボードに接続してデバッグセッションを開始します。
デバッガのIOコンソールのログ画面から結果を確認します。

テストレポート(emSSL)

Sample: SSL_OS_Scan

「www.google.co.jp」サイトをスキャンして対応CIPHERリストを表示します。

File: SSL_OS_Scan.c (サーバーIPアドレス設定)

#define HOST         "www.google.co.jp"
#define PORT         443

Debug IO Console:

4:233 emSSL - Scanning cipher suites on www.google.co.jp:443
4:266 emSSL - C008  TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA         Received Handshake Failure alert
4:544 emSSL - C009  TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA          TLS 1.2   196 ms processing,    81 ms socket,   277 ms total
4:560 emSSL - C023  TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256       Received Handshake Failure alert
4:577 emSSL - C0AC  TLS_ECDHE_ECDSA_WITH_AES_128_CCM              Received Handshake Failure alert
4:591 emSSL - C0AE  TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8            Received Handshake Failure alert
4:867 emSSL - C02B  TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256       TLS 1.2   195 ms processing,    80 ms socket,   275 ms total
5:150 emSSL - C00A  TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA          TLS 1.2   197 ms processing,    84 ms socket,   281 ms total
5:166 emSSL - C024  TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384       Received Handshake Failure alert
5:183 emSSL - C0AD  TLS_ECDHE_ECDSA_WITH_AES_256_CCM              Received Handshake Failure alert
5:200 emSSL - C0AF  TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8            Received Handshake Failure alert
5:480 emSSL - C02C  TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384       TLS 1.2   198 ms processing,    81 ms socket,   279 ms total
5:497 emSSL - C048  TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256      Received Handshake Failure alert
5:515 emSSL - C05C  TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256      Received Handshake Failure alert
5:532 emSSL - C049  TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384      Received Handshake Failure alert
5:548 emSSL - C05D  TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384      Received Handshake Failure alert
5:562 emSSL - C072  TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256  Received Handshake Failure alert
5:578 emSSL - C086  TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256  Received Handshake Failure alert
5:593 emSSL - C073  TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384  Received Handshake Failure alert
5:611 emSSL - C087  TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384  Received Handshake Failure alert
5:626 emSSL - C007  TLS_ECDHE_ECDSA_WITH_RC4_128_SHA              Received Handshake Failure alert
5:912 emSSL - CCA9  TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 TLS 1.2   195 ms processing,    90 ms socket,   285 ms total
5:927 emSSL - C012  TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA           Received Handshake Failure alert
6:170 emSSL - C013  TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA            TLS 1.2   142 ms processing,   100 ms socket,   242 ms total
6:184 emSSL - C027  TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256         Received Handshake Failure alert
6:431 emSSL - C02F  TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256         TLS 1.2   142 ms processing,   104 ms socket,   246 ms total
6:655 emSSL - C014  TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA            TLS 1.2   142 ms processing,    80 ms socket,   222 ms total
6:671 emSSL - C028  TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384         Received Handshake Failure alert
6:899 emSSL - C030  TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384         TLS 1.2   144 ms processing,    83 ms socket,   227 ms total
6:914 emSSL - C04C  TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256        Received Handshake Failure alert
6:929 emSSL - C060  TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256        Received Handshake Failure alert
6:946 emSSL - C04D  TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384        Received Handshake Failure alert
6:961 emSSL - C061  TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384        Received Handshake Failure alert
6:976 emSSL - C076  TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256    Received Handshake Failure alert
7:009 emSSL - C08A  TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256    Received Handshake Failure alert
7:025 emSSL - C077  TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384    Received Handshake Failure alert
7:048 emSSL - C08B  TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384    Received Handshake Failure alert
7:061 emSSL - C011  TLS_ECDHE_RSA_WITH_RC4_128_SHA                Received Handshake Failure alert
7:281 emSSL - CCA8  TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256   TLS 1.2   141 ms processing,    78 ms socket,   219 ms total
7:297 emSSL - C002  TLS_ECDH_ECDSA_WITH_RC4_128_SHA               Received Handshake Failure alert
7:312 emSSL - C003  TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA          Received Handshake Failure alert
7:326 emSSL - C004  TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA           Received Handshake Failure alert
7:339 emSSL - C025  TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256        Received Handshake Failure alert
7:352 emSSL - C02D  TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256        Received Handshake Failure alert
7:365 emSSL - C005  TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA           Received Handshake Failure alert
7:381 emSSL - C026  TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384        Received Handshake Failure alert
7:404 emSSL - C02E  TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384        Received Handshake Failure alert
7:430 emSSL - C04A  TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256       Received Handshake Failure alert
7:447 emSSL - C05E  TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256       Received Handshake Failure alert
7:462 emSSL - C04B  TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384       Received Handshake Failure alert
7:475 emSSL - C05F  TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384       Received Handshake Failure alert
7:491 emSSL - C074  TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256   Received Handshake Failure alert
7:508 emSSL - C088  TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256   Received Handshake Failure alert
7:542 emSSL - C075  TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384   Received Handshake Failure alert
7:557 emSSL - C089  TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384   Received Handshake Failure alert
7:572 emSSL - C00D  TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA            Received Handshake Failure alert
7:585 emSSL - C00E  TLS_ECDH_RSA_WITH_AES_128_CBC_SHA             Received Handshake Failure alert
7:601 emSSL - C029  TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256          Received Handshake Failure alert
7:618 emSSL - C031  TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256          Received Handshake Failure alert
7:633 emSSL - C00F  TLS_ECDH_RSA_WITH_AES_256_CBC_SHA             Received Handshake Failure alert
7:659 emSSL - C02A  TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384          Received Handshake Failure alert
7:674 emSSL - C032  TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384          Received Handshake Failure alert
7:687 emSSL - C04E  TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256         Received Handshake Failure alert
7:704 emSSL - C062  TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256         Received Handshake Failure alert
7:719 emSSL - C04F  TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384         Received Handshake Failure alert
7:734 emSSL - C063  TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384         Received Handshake Failure alert
7:750 emSSL - C078  TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256     Received Handshake Failure alert
7:767 emSSL - C08C  TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256     Received Handshake Failure alert
7:782 emSSL - C079  TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384     Received Handshake Failure alert
7:809 emSSL - C08D  TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384     Received Handshake Failure alert
7:826 emSSL - C00C  TLS_ECDH_RSA_WITH_RC4_128_SHA                 Received Handshake Failure alert
7:960 emSSL - 000A  TLS_RSA_WITH_3DES_EDE_CBC_SHA                 TLS 1.2    50 ms processing,    83 ms socket,   133 ms total
7:977 emSSL - 0096  TLS_RSA_WITH_SEED_CBC_SHA                     Received Handshake Failure alert
8:121 emSSL - 002F  TLS_RSA_WITH_AES_128_CBC_SHA                  TLS 1.2    49 ms processing,    94 ms socket,   143 ms total
8:137 emSSL - 003C  TLS_RSA_WITH_AES_128_CBC_SHA256               Received Handshake Failure alert
8:150 emSSL - C09C  TLS_RSA_WITH_AES_128_CCM                      Received Handshake Failure alert
8:279 emSSL - 009C  TLS_RSA_WITH_AES_128_GCM_SHA256               TLS 1.2    49 ms processing,    79 ms socket,   128 ms total
8:410 emSSL - 0035  TLS_RSA_WITH_AES_256_CBC_SHA                  TLS 1.2    50 ms processing,    79 ms socket,   129 ms total
8:431 emSSL - 003D  TLS_RSA_WITH_AES_256_CBC_SHA256               Received Handshake Failure alert
8:448 emSSL - C09D  TLS_RSA_WITH_AES_256_CCM                      Received Handshake Failure alert
8:575 emSSL - 009D  TLS_RSA_WITH_AES_256_GCM_SHA384               TLS 1.2    51 ms processing,    75 ms socket,   126 ms total
8:588 emSSL - 0041  TLS_RSA_WITH_CAMELLIA_128_CBC_SHA             Received Handshake Failure alert
8:601 emSSL - 0084  TLS_RSA_WITH_CAMELLIA_256_CBC_SHA             Received Handshake Failure alert
8:616 emSSL - 00BA  TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256          Received Handshake Failure alert
8:630 emSSL - 00C0  TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256          Received Handshake Failure alert
8:644 emSSL - C07A  TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256          Received Handshake Failure alert
8:658 emSSL - C07B  TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384          Received Handshake Failure alert
8:673 emSSL - C03C  TLS_RSA_WITH_ARIA_128_CBC_SHA256              Received Handshake Failure alert
8:690 emSSL - C03D  TLS_RSA_WITH_ARIA_256_CBC_SHA384              Received Handshake Failure alert
8:706 emSSL - C050  TLS_RSA_WITH_ARIA_128_GCM_SHA256              Received Handshake Failure alert
8:722 emSSL - C051  TLS_RSA_WITH_ARIA_256_GCM_SHA384              Received Handshake Failure alert
8:739 emSSL - 0004  TLS_RSA_WITH_RC4_128_MD5                      Received Handshake Failure alert
8:758 emSSL - 0005  TLS_RSA_WITH_RC4_128_SHA                      Received Handshake Failure alert
8:759 emSSL - 
15 common cipher suites out of 92 tested


STOP.

Sample: SSL_OS_SimpleWebClient

「https://www.segger.com/emssl-testpage.php」ページにアクセスしてコンテンツをログコンソールに表示します。

Debug IO Console:

5:550 emSSL - Data: HTTP/1.1 200 OK..Content-Type: text/html; charset=UTF-8..Connection: close..date: Wed, 19 Feb 2025 09:07:02 GMT..server: Apache..vary: Accept-Encoding..x-xss-protection: 1; mode=block..x-content-type-options: nosniff..x-ua-compatible: IE=edge..strict-tran
5:551 emSSL - Data: sport-security: max-age=31536000; includeSubDomains; preload;..X-Cache: Miss from cloudfront..Via: 1.1 52837da9827dd735cd471158bffac49a.cloudfront.net (CloudFront)..X-Amz-Cf-Pop: NRT12-C3..X-Amz-Cf-Id: pLzWnBDylzJYUzPTW87BKZM7xjJoVenOq8RfF8hORCMNFKqfkajRH
5:552 emSSL - Data: Q==....Welcome to www.segger.com/emssl-testpage.php!...Successfully connected via SSL...Current date is 2025-02-19...Current time is 10:07:02..
5:554 emSSL - Data received, socket closed: done

STOP.

emSSH:SSH セキュアログイン

テストサンプル

SSH(Server) Application Folder: → \Application\_Exclude\SSH

Application
 └ _Exclude
     ├ SSH  ....... emSSHライブラリのデモサンプル
Sample説明
SSH_Shell1SSHサーバー実装方法を示す簡単なサンプル(入力文字データをECHOします)

関連設定ファイル(emSSH):

Config
 |- SSH_Conf.h  ........ SSHコンフィグレーション設定ファイル(マクロ定義)
 |- SSH_X_Config.c  .... SSHコンフィグレーション設定ファイル(初期化設定)
 |- IO
 |   |- SSH_ConfigIO.c  ..... デバッグコンソールIOインターフェース設定ファイル
 |
 |- OS
 |   |- libNo_OSLayer_RXv3_L.lib  ..... OSインターフェース設定ファイル
 |
 |- Keys   .................. テスト用鍵データ設定ファイル
     |- SSH_ServerKeys_DSA.c
     |- SSH_ServerKeys_ECDSA.c
     |- SSH_ServerKeys_EdDSA.c
     |- SSH_ServerKeys_RSA.c

emSSH:ビルド・動作確認方法

プロジェクト設定では「\Application\_Exclude\SSH」フォルダはビルド対象外に設定しています。以下のどちらかの方法で動作確認を行うサンプルアプリケーションを選択します。

  1. 「\_Exclude\SSH」フォルダ下の対象テストサンプルファイルをビルド対象設定の「\Application」フォルダ下にコピーします。
  2. 「\_Exclude\SSH」フォルダ下の対象テストサンプルファイルのみ「ビルド対象外」の設定を解除します。

プロジェクトを再ビルドし、評価ボードに接続してデバッグセッションを開始します。
デバッガのIOコンソールのログ画面から結果を確認します。

テスト環境の設定:

評価ボードのLANポートをテスト用パソコンに接続して、TCP/IPネットワーク通信が正常にできることを確認してください。

PC Setup

テストレポート(emSSH)

Sample: SSH_Shell1 (Echo Test)

ボード側にセキュアTELNETサーバーと起動して、テストPCのTELNETクライエントアプリケーション(TeraTermなど)から接続及びアクセスを確認します。

PC TeraTerm SSH Client (User name: anon / Password: 無し):

emSSH Client TeraTerm

Windows MS-DOSプロンプトからの確認の場合:

emSSH Client Cmdline

Debug IO Console:

SEGGER Software Evaluation Sample
Eval Board: AP-RX72N-0A (RX72N RXv3 @240MHz)
Base: Baremetal (No RTOS)
------------------------------------------------
0:002 emNet - INIT: emNet init started. Version 3.52.0
0:023 emNet - *********************************************************************
0:024 emNet - *                        emNet Configuration                        *
0:025 emNet - *********************************************************************
0:026 emNet - * IP_DEBUG: 2
0:026 emNet - * Memory added: 49152 bytes
0:027 emNet - * Buffer configuration:
0:028 emNet - *   12 buffers of 256 bytes
0:028 emNet - *   20 buffers of 1516 bytes
0:029 emNet - * TCP Tx/Rx window size per socket: 11680/8760 bytes
0:030 emNet - * Number of interfaces added: 1
0:031 emNet - * Interface #0 configuration:
0:032 emNet - *   Type: ETH
0:032 emNet - *   MTU: 1500
0:033 emNet - *   HW addr.: 00:0C:7B:4E:02:08
0:033 emNet - *********************************************************************
0:034 emNet - INIT: Link is down
0:035 emNet - DRIVER: Found PHY with Id 0x7 at addr 0x0
0:040 emNet - INIT: Init completed
2:023 emNet - LINK: Link state changed: Full duplex, 100MHz
2:024 emNet - DHCPc: Sending discover!
2:403 emNet - NDP: Link-local IPv6 addr.: FE80:0000:0000:0000:020C:7BFF:FE4E:0208 added to IFace: 0
2:409 emNet - NDP: IPv6 addr.: 2400:4050:A0E0:1F00:020C:7BFF:FE4E:0208 added to IFace: 0
3:482 emNet - DHCPc: IFace 0: Offer: IP: 192.168.1.18, Mask: 255.255.255.0, GW: 192.168.1.1.
4:023 emNet - DHCPc: IP addr. checked, no conflicts
4:023 emNet - DHCPc: Sending Request.
4:037 emNet - DHCPc: IFace 0: Using IP: 192.168.1.18, Mask: 255.255.255.0, GW: 192.168.1.1.

emSSH V2.54 - Shell1 compiled Feb 19 2025 18:07:58
Copyright (c) 2015-2021 SEGGER Microcontroller GmbH    www.segger.com
前の章

圧縮・解凍機能のデモサンプル

次の章

暗号・サイファーライブラリ