0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AUTOSAR仕様の曖昧さによる解釈の違いとその影響

Last updated at Posted at 2025-12-21

AUTOSAR仕様の曖昧さによる解釈の違いとその影響

例: Crypt Stack Operation Mode

はじめに

AUTOSARの仕様書には実装レベルまで詳細に記載されたものと曖昧なものがあり、ベンダーやアプリケーション設計者の解釈が分かれることがあります。本記事では、Crypt StackのOperation Modeを例に、解釈違いとその問題を具体的に説明します

参照AUTOSARバージョン: R20-11
CSM仕様
CryptoDriver仕様

Crypto Stack Operation Mode (CSM仕様)

CSM Operation Mode説明1
CSM Operation Mode説明2
CSM状態遷移図

Crypto Stack Operation Mode (CryptoDriver仕様)

Driver Operation Mode説明1
Driver Operation Mode説明2

日本語訳(仕様に基づく):

暗号プリミティブのオペレーションは、その暗号プリミティブのどの部分を実行するかを規定する。Operation Modeには3種類あり、「START」は新しい要求を示し前回の要求をキャンセル、「UPDATE」は入力データを期待、「FINISH」は全データ入力完了を示す。また、連結で複数オペレーションを一度に実行可能(SINGLECALL)。

仕様解釈例:

  • 大量データ時はSINGLECALL、またはSTART → UPDATE(複数回) → FINISHで分割入力。

曖昧な仕様例

Csm_MacGenerateのmodeパラメータで、分割データ3つ(データ1/2/3)の場合、FINISH呼び出し時の入力データ扱いが曖昧

解釈A(一部ベンダー):
START: データ1
UPDATE: データ2
UPDATE: データ3
FINISH: 入力データ無視(サイズ>0でも)

解釈B(他ベンダー):
START: データ1
UPDATE: データ2
FINISH: データ3(サイズ>0で使用)

Csm_MacGenerateインターフェース
仕様抜粋

関係者の立場

  • BSW Crypto Stack設計者(AUTOSARベンダー)
  • アプリケーション(CDD)設計者(サプライヤー)

立場比較図

具体的な事例

BSWベンダー実装: サイズ>0でデータ扱う(柔軟対応)。

CDD設計者実装(解釈A誤り):
// 一回目: START
Csm_MacGenerate(jobId, Crypto_OperationMode_Start, データ1, size1, mac, macSize);

// 二回目: UPDATE
Csm_MacGenerate(jobId, Crypto_OperationMode_Update, データ2, size2, mac, macSize);

// 三回目: UPDATE
Csm_MacGenerate(jobId, Crypto_OperationMode_Update, データ3, size3, mac, macSize);

// 四回目: FINISH(データ3再渡し、無視想定)
Csm_MacGenerate(jobId, Crypto_OperationMode_Finish, データ3, size3, mac, macSize);

結果: データ1+2+3+3でMAC計算され期待値不一致。

影響と対策

影響: MAC値不一致で検証失敗。

対策: FINISH時はサイズを0に設定。

//修正前
Csm_MacGenerate(jobId, Crypto_OperationMode_Finish, 
                データ3,
-               size3,
                mac, 
                macSize);


//修正後
Csm_MacGenerate(jobId, Crypto_OperationMode_Finish, 
                データ3,
+               0u,  // サイズ0で入力無視
                mac, 
                macSize);
//これでデータ1+2+3のみ使用。

見解

BSWとアプリ設計者の解釈ずれが不具合原因。
同一チームなら問題になりにくいが、別チーム時は顕在化しやすい。

RTE経由の場合: OperationModeはSINGLECALL固定で曖昧さ回避可能。
RTEポート例

まとめ

AUTOSARは標準化を目指すが、ベンダー解釈差で不具合混入のリスクあり。
AUTOSAR仕様の思い込みをなくし、高品質なソフトウェア開発ライフを送れますように!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?