DEENESPTFRRUARHIKOZHNL

Secure Onboard Communication (SecOC)

ModulSecOC (Secure Onboard Communication)
BSW-Modul-ID150
Standard-Header#include "SecOC.h"
SWS-SpezifikationAUTOSAR_SWS_SecureOnboardCommunication.pdf
ClusterSecurity & Intrusion Detection

모듈 가이드AI 생성

PDU 라우터 옆에서 Authenticator 및 Freshness Value를 통해 I-PDU를 조작 및 재생(replay)으로부터 보호합니다.
AI 생성 미검증 모델: claude-opus-5-5 · 노력: high · 온도: 제어 불가 · 프롬프트: e42ecdfc6fe3 출처 열린 질문 (2)
인과 앵커: R20-11 R20-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

PDU 라우터 옆에서 Authenticator 및 Freshness Value를 통해 I-PDU를 조작 및 재생(replay)으로부터 보호합니다.

SecOC는 I-PDU를 조작 및 재생으로부터 보호합니다. 이를 위해 전송 시 Authenticator와 Freshness Value를 추가하고, 수신 시 두 가지를 모두 검증합니다. PDU 수락과 암호화 처리는 분리되어 있습니다. 주기적 메인 함수가 비로소 6단계에 걸쳐 인증 또는 검증을 수행합니다([SWS_SecOC_00040]). 암호화 기능은 CSM이, Freshness Value는 외부 Freshness Manager가 제공합니다. 제한된 재시도 횟수를 통해 수신된 PDU를 언제 폐기하고 검증 상태를 보고할지 결정합니다([SWS_SecOC_00241]).

SecOC는 통신 스택에서 I-PDU를 보호합니다. 이는 PduR 옆에 위치하며 각 Authentic I-PDU에 Authenticator 및 필요에 따라 절단된(truncated) Freshness Value를 추가합니다. 이를 통해 Secured I-PDU가 생성됩니다(SWS SecOC 39쪽). Authenticator는 Data Identifier, 페이로드 및 완전한 Freshness Value를 기반으로 계산됩니다(SWS SecOC 29쪽). 암호화 기능은 CSM이 제공하고([SWS_SecOC_00138]), Freshness Value는 Freshness Manager가 RTE 또는 C 함수를 통해 제공합니다([SWS_SecOC_91001], [SWS_SecOC_00230]).

kontext com Com / obere Schicht pdur PduR com->pdur Authentic I-PDU secoc SecOC pdur->secoc SecOC_[If|Tp]Transmit, SecOC_RxIndication, SecOC_StartOfReception lower Untere Schicht (CanIf, FrIf, CanTp …) pdur->lower Secured I-PDU secoc->pdur PduR_SecOCTransmit, PduR_SecOC…RxIndication csm Csm secoc->csm Csm_MacGenerate / Csm_MacVerify fvm Freshness Manager (RTE 또는 C 함수를 통한 SW-C) secoc->fvm Get[Tx|Rx]Freshness…, SPduTxConfirmation, VerificationStatusCallout app SW-C (Verifikationsstatus) secoc->app VerificationStatusIndication det Det secoc->det SECOC_E_… idsm IdsM secoc->idsm Security Events app->secoc SecOC_VerifyStatusOverride, SecOC_SendDefaultAuthenticationInformation lower->pdur Secured I-PDU (Empfang)

컨텍스트 다이어그램: PduR, CSM, Freshness Manager, 애플리케이션, DET 및 IdsM 사이의 SecOC. 출처: [SWS_SecOC_00138], [SWS_SecOC_91001], [SWS_SecOC_00273]

전송과 수신은 분리되어 있습니다. SecOC_[If|Tp]Transmit 시 SecOC는 페이로드만 복사합니다. 주기적인 SecOC_MainFunctionTx이 비로소 Authentication Information을 계산하고 PduR을 통해 전송을 트리거합니다(SWS SecOC 40쪽, [SWS_SecOC_00176]). 수신된 Secured I-PDU를 SecOC가 완전히 버퍼링하고, SecOC_MainFunctionRx에서 파싱부터 상위 계층 전달까지 6단계로 검증합니다([SWS_SecOC_00040], [SWS_SecOC_00255]). 모듈은 SecOC_Init에 의해 설정되고 SecOC_DeInit에 의해 다시 해제되는 SECOC_INIT 상태에서만 작동합니다([SWS_SecOC_00162], [SWS_SecOC_00161]).

수신 시의 재시도는 두 개의 카운터가 제어합니다([SWS_SecOC_00237], [SWS_SecOC_00239], [SWS_SecOC_00240], [SWS_SecOC_00241]):

  • Build 카운터는 E_BUSY과 같은 일시적인 병목 현상을 카운트합니다.
  • Verify 카운터는 실패한 MAC 비교를 카운트합니다.
  • 둘 중 하나라도 제한에 도달하면 PDU가 폐기됩니다.

전송 시 제한에 도달하면 SECOC_E_CRYPTO_FAILURE이 발생하고, 활성화된 경우 기본 패턴(default pattern)으로 전송됩니다([SWS_SecOC_00155], [SWS_SecOC_00229]).

rxverifikation a Secured I-PDU 완전히 수신됨 Build 카운터 = 0, Verify 카운터 = 0 b Freshness abfragen (SecOC_GetRxFreshness / …AuthData) a->b c Ergebnis Freshness? b->c d Build 카운터 + 1 c->d E_BUSY h Verwerfen: SECOC_FRESHNESSFAILURE c->h E_NOT_OK i Csm_MacVerify c->i E_OK e Build 카운터 >= SecOCAuthenticationBuildAttempts? d->e f 다음 SecOC_MainFunctionRx에서 재시도 e->f 아니요 g Verwerfen: SECOC_AUTHENTICATIONBUILDFAILURE e->g 예 f->b j Ergebnis Verifikation? i->j j->d E_BUSY, QUEUE_FULL k Verify 카운터 + 1, Build 카운터 = 0 j->k 유효하지 않은 MAC m Verwerfen: SECOC_VERIFICATIONFAILURE j->m 복구 불가능 (E_NOT_OK, KEY_FAILURE) n SECOC_VERIFICATIONSUCCESS, Authentic I-PDU an obere Schicht j->n 성공적인 l Verify 카운터 >= SecOCAuthenticationVerifyAttempts? k->l l->b 아니요: 다음 유효한 Freshness Value l->m 예

액티비티 다이어그램: Build 및 Verify 카운터가 재시도 또는 폐기를 결정합니다. 출처: [SWS_SecOC_00239], [SWS_SecOC_00241]

SecOC는 각 시도의 결과를 SecOC_VerificationStatusType로 보고하며, 구성에 따라 소프트웨어 컴포넌트 및 Freshness Manager에 보고합니다([SWS_SecOC_00271], [SWS_SecOC_00243]). SecOC_VerifyStatusOverride을 사용하면 검증을 목적에 맞게 재정의(override)할 수 있습니다([SWS_SecOC_00122]). Authentic I-PDU와 Cryptographic I-PDU로 분할되는 경우, 일치하는 Message Linker를 포함한 두 부분이 모두 제공될 때 비로소 검증이 수행됩니다([SWS_SecOC_00211]).

PduR 옆에서의 역할 및 시스템 경계

SecOC는 계층 아키텍처에서 PDU 라우터 옆에 위치합니다. 페이로드 바로 뒤에 Authentication Information(Authenticator 및 필요에 따라 절단된 Freshness Value)을 추가하여 Authentic I-PDU를 Secured I-PDU로 변환합니다(SWS SecOC 39쪽, SWS SecOC 43쪽). 다른 어떤 모듈도 SecOC에 의존해서는 안 되므로, 시스템은 SecOC 없이도 구축될 수 있습니다. Authentic PDU의 MetaData는 Secured PDU에 변경 없이 나타나며 그 반대도 마찬가지입니다([SWS_SecOC_00212]).

Authenticator는 SecOCDataId, Authentic I-PDU의 보안 부분, 완전한 Freshness Value의 세 부분의 연결(concatenation)을 통해 계산됩니다(SWS SecOC 29쪽). 암호화 기능은 CSM이 예를 들어 Csm_MacGenerate 및 Csm_MacVerify을 통해 제공합니다([SWS_SecOC_00138]). Freshness Value는 Freshness Manager가 RTE 포트 FreshnessManagement 또는 C 함수를 통해 제공합니다([SWS_SecOC_91001], [SWS_SecOC_00230]). 메시지의 추가 수신자는 다음과 같습니다:

kontext com Com / obere Schicht pdur PduR com->pdur Authentic I-PDU secoc SecOC pdur->secoc SecOC_[If|Tp]Transmit, SecOC_RxIndication, SecOC_StartOfReception lower Untere Schicht (CanIf, FrIf, CanTp …) pdur->lower Secured I-PDU secoc->pdur PduR_SecOCTransmit, PduR_SecOC…RxIndication csm Csm secoc->csm Csm_MacGenerate / Csm_MacVerify fvm Freshness Manager (RTE 또는 C 함수를 통한 SW-C) secoc->fvm Get[Tx|Rx]Freshness…, SPduTxConfirmation, VerificationStatusCallout app SW-C (Verifikationsstatus) secoc->app VerificationStatusIndication det Det secoc->det SECOC_E_… idsm IdsM secoc->idsm Security Events app->secoc SecOC_VerifyStatusOverride, SecOC_SendDefaultAuthenticationInformation lower->pdur Secured I-PDU (Empfang)

컨텍스트 다이어그램: SecOC는 PduR, CSM, Freshness Manager 및 애플리케이션 사이를 중개하고 DET 및 IdsM에 보고합니다. 출처: SWS SecOC 24쪽, [SWS_SecOC_00138], [SWS_SecOC_91001], [SWS_SecOC_00273]

동일한 메커니즘이 게이트웨이도 지원합니다. SecOC는 보안 영역 간의 재인증 게이트웨이를 지원하며, 각 프로세스는 개별적으로 구성됩니다. "Gatewaying-on-the-fly"는 지원되지 않습니다(SWS SecOC 57쪽).

초기화, 모듈 상태 및 주기적 메인 함수

모듈 상태 SecOC_StateType은 SECOC_UNINIT 및 SECOC_INIT를 인식합니다([SWS_SecOC_00162]).

  • SecOC_Init은 구현별 SecOC_ConfigType을 수신하고 성공 시 SECOC_INIT로 전환합니다. 여러 파티션에 할당된 경우 파티션마다 하나의 Init 함수가 가능합니다([SWS_SecOC_00106], [SWS_SecOC_00104]).
  • SecOC_DeInit은 버퍼링된 모든 I-PDU를 폐기하고 모듈을 초기화되지 않은 상태로 재설정합니다([SWS_SecOC_00161]). 이때 내부 변수와 버퍼도 삭제됩니다(SWS SecOC 65쪽).
  • 사전 초기화 없이 호출하면 SECOC_E_UNINIT을 보고합니다([SWS_SecOC_00101]).

실제 처리는 SecOC_MainFunctionTx 및 SecOC_MainFunctionRx이 수행합니다. 구성된 인스턴스마다 고유한 함수 …_<shortName>가 생성됩니다([SWS_SecOC_00176], [SWS_SecOC_00171]). 해당 주기는 구성 가능합니다(SWS SecOC 130쪽, SWS SecOC 129쪽). 각 SecOCTxPduProcessing은 참조된 인스턴스에서 실행됩니다([SWS_SecOC_00276]).

초기화되지 않은 경우 Tx 메인 함수는 즉시 반환됩니다. 그렇지 않으면 동일한 호출 내에서 모든 새로운 Authentic I-PDU를 인증하고 PduR을 통해 전송을 즉시 트리거합니다(SWS SecOC 84쪽).

lebenszyklus start Start uninit SECOC_UNINIT start->uninit uninit->uninit SecOC_MainFunctionTx: 즉시 반환; API 호출: SECOC_E_UNINIT init SECOC_INIT uninit->init SecOC_Init(config) erfolgreich init->uninit SecOC_DeInit(): 버퍼링된 I-PDU, 변수 및 버퍼 삭제 init->init SecOC_MainFunctionTx/Rx: 인증 또는 검증

상태 다이어그램: Init 및 DeInit가 SECOC_UNINIT와 SECOC_INIT 사이를 전환하며, 메인 함수는 초기화된 상태에서만 작동합니다. 출처: [SWS_SecOC_00162], [SWS_SecOC_00106], [SWS_SecOC_00161], SWS SecOC 84쪽

전송: Authentic I-PDU에서 Secured I-PDU로

전송 경로는 분리되어 있으며 2단계로 진행됩니다(SWS SecOC 40쪽):

  1. 상위 계층이 PduR_<Up>Transmit을 호출하고, PduR이 SecOC_[If|Tp]Transmit을 호출합니다. SecOC는 Authentic I-PDU를 자체 메모리에 완전히 복사하고 반환합니다([SWS_SecOC_00252]).
  2. 메인 함수의 다음 실행에서 Secured I-PDU가 생성되고, SecOC는 PduR을 통해 전송을 트리거합니다.

하위 계층의 확인(confirmation)을 SecOC는 PduR_SecOC[If|Tp]TxConfirmation을 통해 상위로 전달합니다([SWS_SecOC_00063]).

인증은 준비, DataToAuthenticator 생성, Authenticator 생성, Secured I-PDU 조립, Freshness Counter 증가, 전송의 6단계를 포함합니다. Data Id(16비트) 및 Freshness Value는 빅 엔디언(Big Endian)으로 반영됩니다(SWS SecOC 33쪽).

신선도 소스(freshness source)가 C 함수인 경우(CFUNC), SecOC는 SecOC_GetTxFreshness을 통해 값을 가져옵니다. Freshness Manager가 절단된 값을 직접 제공해야 하는 경우 SecOC_GetTxFreshnessTruncData가 사용됩니다([SWS_SecOC_00231], [SWS_SecOC_00230]). SecOC는 SecOC_SPduTxConfirmation 또는 RTE를 통해 전송 트리거를 보고합니다([SWS_SecOC_00232], [SWS_SecOC_00233]). 사용되지 않은 영역은 SecOCTxPduUnusedAreasDefault로 채워집니다([SWS_SecOC_00269]).

직접 전송(버스 인터페이스) 시의 인증ComPduRSecOCFreshness ManagerCsmUntere Schicht (z. B. CanIf)PduR_ComTransmit()SecOC_IfTransmit()Authentic I-PDU 완전함in eigenen Puffer kopierenE_OKUse Case: SecOC_MainFunctionTx (다음 호출)SecOC_GetTxFreshness()또는 SecOC_GetTxFreshnessTruncData()E_OK, Freshness ValueCsm_MacGenerate(DataToAuthenticator)AuthenticatorAsynchroner Csm-Job: Ergebnis per CallbackSecured I-PDU bilden:Authentic I-PDU | Freshness Value (단축됨) | AuthenticatorPduR_SecOCTransmit()Transmit (Secured I-PDU)SecOC_SPduTxConfirmation()Use Case: 확인TxConfirmation(result)SecOC_TxConfirmation(result)PduR_SecOCIfTxConfirmation(result)TxConfirmation(result)

시퀀스 다이어그램: Authentic I-PDU 수락과 메인 함수의 다음 실행에서의 인증은 분리되어 있습니다. 출처: SWS SecOC 40쪽, [SWS_SecOC_00231], [SWS_SecOC_00232], [SWS_SecOC_00063]

트리거 전송의 경우 사전에 적어도 하나의 SecOC_IfTransmit이 발생해야 합니다. 사용 가능한 데이터가 없으면 SecOC_TriggerTransmit은 E_NOT_OK로 응답하며 AlwaysTransmit은 사용해서는 안 됩니다(SWS SecOC 44쪽, [SWS_SecOC_00127]).

SECOC_TPPDU의 경우 SecOC_TpTransmit이 프로세스를 시작합니다. SecOC는 PduR_SecOCTpCopyTxData를 통해 데이터를 조각별로 가져옵니다([SWS_SecOC_00253], [SWS_SecOC_00254]). 그런 다음 TP 모듈이 SecOC_CopyTxData를 통해 읽어옵니다([SWS_SecOC_00129]).

전송 프로토콜을 사용한 인증(SECOC_TPPDU)ComPduRSecOCCanTpPduR_ComTransmit()SecOC_TpTransmit()loopAuthentic I-PDU가 완전히 복사될 때까지PduR_SecOCTpCopyTxData()Com_CopyTxData()BUFREQ_E_BUSY: 다음 메인 함수 호출에서 재시도BUFREQ_E_NOT_OK: AbbruchUse Case: SecOC_MainFunctionTxauthenticate()PduR_SecOCTransmit()CanTp_Transmit()loopje N-PDUPduR_CanTpCopyTxData()SecOC_CopyTxData()PduR_CanTpTxConfirmation()SecOC_TpTxConfirmation()PduR_SecOCTpTxConfirmation()Com_TpTxConfirmation()

시퀀스 다이어그램: TP 전송 시 SecOC는 상위 방향으로는 TP 싱크, 하위 방향으로는 TP 소스로 동작합니다. 출처: SWS SecOC 109쪽, [SWS_SecOC_00253], [SWS_SecOC_00254]

SecOCTxSecuredPduCollection을 사용하면 Secured I-PDU가 두 개의 메시지로 분할됩니다:

  • Authentic I-PDU,
  • Authentication Data와 Message Linker로 구성된 Cryptographic I-PDU.

둘 다 동일한 주기에서 전송됩니다([SWS_SecOC_00201], [SWS_SecOC_00209], [SWS_SecOC_00202]). 두 부분이 모두 E_OK로 확인된 경우에만 상위로의 확인이 E_OK이 됩니다([SWS_SecOC_00270]).

수신 및 검증

검증은 6단계로 구성됩니다([SWS_SecOC_00040]):

  1. Authentic I-PDU, Freshness Value 및 Authenticator 파싱,
  2. Freshness Manager에서 Freshness Value 쿼리,
  3. 검증할 데이터 구성,
  4. Authentication Information 검증,
  5. Freshness Manager 확인(confirm),
  6. Authentic I-PDU를 상위 계층으로 전달.

SecOC는 먼저 Secured I-PDU를 자체 메모리에 복사하고 메인 함수의 다음 실행에서 이를 검증합니다(SWS SecOC 50쪽). 버스 인터페이스를 통해서는 SecOC_RxIndication을 통해 수신됩니다([SWS_SecOC_00124]). 정적 길이의 I-PDU가 구성된 것보다 짧으면 경고 없이 폐기됩니다([SWS_SecOC_00268]). Authentic I-PDU의 길이는 구성, 하위 계층 또는 헤더에서 가져옵니다([SWS_SecOC_00257], [SWS_SecOC_00258], [SWS_SecOC_00259]).

버스 인터페이스를 통한 수신 및 신선도 처리PduRSecOCSchMFreshness ManagerCsmSecOC_RxIndication()Secured I-PDU puffern,Build 및 Verify 카운터 = 0SecOC_MainFunctionRx()loopAuthentication verify attempts [MAC-Verifikation fehlgeschlagen]loopAuthentication build attempts [GetRxFreshness()==E_BUSY || Csm_MacVerify()==E_BUSY]GetRxFreshness()Freshness ValueCsm_MacVerify()VerifikationsergebnisVerificationStatus()

시퀀스 다이어그램: 신선도 쿼리 및 MAC 검증은 Rx 메인 함수의 컨텍스트에서 두 개의 중첩된 재시도 루프로 실행됩니다. 출처: SWS SecOC 103쪽, [SWS_SecOC_00237], [SWS_SecOC_00238]

전송 프로토콜(TP)에서 수신은 다음과 같이 진행됩니다([SWS_SecOC_00130], [SWS_SecOC_00128], [SWS_SecOC_00125]):

  • SecOC_StartOfReception이 전체 Secured I-PDU를 위한 버퍼를 예약하고,
  • SecOC_CopyRxData이 개별 세그먼트를 인계받으며,
  • SecOC_TpRxIndication이 수신 완료를 보고합니다.

완전히 수신된 후에만 SecOC가 Authentic I-PDU를 전달할 수 있습니다([SWS_SecOC_00255]). 도해에 따른 해석: 상위 계층으로의 전달은 성공적인 검증 후에만 시작될 수 있을 것으로 보입니다(SWS SecOC 112쪽). 질문 Q-d5c1780d034c722e (열림) 이와 다르게 R23-11 버전에서는 SecOC_StartOfReception에서 이미 수신 시작을 전달합니다(SWS SecOC 54쪽).

전송 프로토콜을 사용한 검증CanTpPduRSecOCComPduR_CanTpStartOfReception()SecOC_StartOfReception()BUFREQ_OK (전체 Secured I-PDU용 버퍼)loopje N-PDUPduR_CanTpCopyRxData()SecOC_CopyRxData()BUFREQ_OKPduR_CanTpRxIndication()SecOC_TpRxIndication(E_OK)Use Case: SecOC_MainFunctionRxverify()opt성공적인 검증 (다이어그램에 따른 순서 해석)PduR_SecOCTpStartOfReception()Com_StartOfReception()loop모든 데이터가 복사될 때까지PduR_SecOCTpCopyRxData()Com_CopyRxData()PduR_SecOCTpRxIndication()Com_TpRxIndication()

시퀀스 다이어그램: SecOC는 전체 Secured I-PDU를 버퍼링하며, Com으로의 전달은 (해석상) 검증이 성공한 후에만 수행됩니다. 출처: SWS SecOC 112쪽, [SWS_SecOC_00255]

SecOCRxSecuredPduCollection 사용 시 SecOC는 일치하는 Message Linker를 가진 Authentic I-PDU 및 Cryptographic I-PDU가 모두 존재할 때만 검사를 수행합니다 ([SWS_SecOC_00203], [SWS_SecOC_00211]). 이를 위해 분리된 버퍼를 유지합니다 ([SWS_SecOC_00204]):

  • 검사가 성공하면 두 버퍼가 모두 비워집니다 ([SWS_SecOC_00207]).
  • 실패 후에는 둘 다 유지되며, 새로운 수신이 있을 때마다 다시 검사됩니다 ([SWS_SecOC_00208]).

오버플로 전략 QUEUE은 이러한 분할을 배제합니다 ([SWS_SecOC_CONSTR_00265]).

Freshness Manager, 검증 상태 및 Override

SecOC는 신선도를 자체적으로 관리하지 않습니다. SecOCQueryFreshnessValue(RTE 또는 CFUNC) 및 SecOCUseAuthDataFreshness에 따라 GetRxFreshness 또는 GetRxFreshnessAuthData을 조회합니다. 두 번째 경우, 수신된 PDU의 구성된 일부를 추가로 전달합니다 ([SWS_SecOC_00244], [SWS_SecOC_00245], [SWS_SecOC_00246], [SWS_SecOC_00247]). 잘린 Freshness Value 및 지금까지의 검증 시도 횟수도 함께 전달됩니다 ([SWS_SecOC_91007], [SWS_SecOC_91006]).

값들은 SecOC_FreshnessArrayType로 제공되며 ([SWS_SecOC_91012]), 최상위 비트가 첫 번째 바이트에 위치하는 빅 엔디언(Big Endian) 방식입니다 (SWS SecOC 80쪽). 반환값 E_BUSY은 해당 값을 일시적으로 사용할 수 없음을 의미합니다 ([SWS_SecOC_91002]).

각 시도의 결과는 SecOC_VerificationStatusType로 요약됩니다: freshnessValueID과 SecOC_VerificationResultType의 값(예: SECOC_FRESHNESSFAILURE)의 조합입니다 ([SWS_SecOC_00160], [SWS_SecOC_00149]). 모드 BOTH, FAILURE_ONLY 또는 NONE에 따라 보고됩니다 ([SWS_SecOC_00271], [SWS_SecOC_91016]). 선택적으로 최종 상태만 전달되기도 합니다 ([SWS_SecOC_00272]). Freshness Manager는 SecOC_VerificationStatusCallout를 통해 결과를 수신합니다 ([SWS_SecOC_00119], [SWS_SecOC_00243]).

SecOC_VerifyStatusOverride는 검증을 목표 지향적으로 오버라이드합니다 ([SWS_SecOC_00122]). R20-11에서 SecOC_OverrideStatusType는 무엇보다도 …DROP_UNTIL_NOTICE, …DROP_UNTIL_LIMIT, …CANCEL 및 …PASS_UNTIL_NOTICE을 인식합니다 ([SWS_SecOC_00991]). R23-11에서는 …SKIP_UNTIL_LIMIT 및 …PASS_UNTIL_LIMIT가 추가되었습니다 (SWS SecOC 102쪽). 송신 측에서 SecOC_SendDefaultAuthenticationInformation는 Freshness Value ID별로 기본 패턴을 켜거나 끕니다 ([SWS_SecOC_91013]).

구성 및 인스턴스 참조

구성은 세 개의 컨테이너로 나뉩니다:

  • 일반 매개변수(예: SecOCDefaultAuthenticationInformationPattern)를 위한 SecOCGeneral (SWS SecOC 124쪽),
  • 송신 PDU당 하나의 SecOCTxPduProcessing (SWS SecOC 155쪽),
  • 수신 PDU당 하나의 SecOCRxPduProcessing (SWS SecOC 140쪽).

핵심 매개변수는 SecOCDataId, SecOCFreshnessValueId, Freshness 및 Authenticator 길이, 그리고 CsmJob 참조입니다 (SWS SecOC 106쪽). CSM 작업이 비동기식으로 작동하는 경우, SecOC는 이를 위해 공급업체별 콜백을 필요로 합니다 (SWS SecOC 78쪽).

일부 포트는 일치하는 구성이 있을 때만 존재합니다:

  • SendDefaultAuthenticationInformation는 기본 패턴이 설정된 경우에만 존재 ([SWS_SecOC_91020]),
  • FreshnessManagement는 RTE를 통한 쿼리 시에만 존재 ([SWS_SecOC_91001]).

Security Events는 SecOCEnableSecurityEventReporting가 설정된 경우에만 보고됩니다 ([SWS_SecOC_00273]).

오류가 발생한 경우의 동작

송신 측에서는 다음이 적용됩니다:

  • E_BUSY 또는 QUEUE_FULL과 같은 복구 가능한 CSM 오류 발생 시 SecOC는 Authentic I-PDU를 유지하고 다음 주기에서 다시 시도합니다 ([SWS_SecOC_00151]).
  • 시도 제한에 도달하면 DET에 SECOC_E_CRYPTO_FAILURE를 보고합니다 ([SWS_SecOC_00155]).
  • 제한 도달, Freshness E_NOT_OK 또는 복구 불가능한 오류 발생 시, 활성화되어 있는 경우 SecOC는 기본 패턴을 사용합니다 ([SWS_SecOC_00229]).
  • 패턴이 구성되지 않은 경우 SecOC는 작업을 중단합니다 (SWS SecOC 124쪽).
  • 패턴이 구성되었으나 활성화되지 않은 경우에도 SecOC는 마찬가지로 중단할 것으로 보입니다. 질문 Q-a3c1cc4b9b925ed4 (열림)
txfehler a SecOC_MainFunctionTx: Authentifizierung starten b Freshness abfragen, Csm_MacGenerate a->b c Ergebnis? b->c d Authentic I-PDU 유지, 다음 메인 함수 호출 c->d behebbar (E_BUSY, QUEUE_FULL) g Default-Senden per SecOC_SendDefaultAuthenticationInformation freigegeben? c->g 신선도 E_NOT_OK 또는 복구 불가능(E_NOT_OK, KEY_FAILURE) j PduR을 통해 Secured I-PDU 전송 c->j E_OK e SecOCAuthenticationBuildAttempts erreicht? d->e e->b 아니요 e->g 예(추가로 Det: SECOC_E_CRYPTO_FAILURE) h SecOCDefaultAuthenticationInformationPattern의 Freshness Value 및 Authenticator g->h 예 i Authentic I-PDU entfernen, Sendeauftrag abbrechen g->i 구성된 패턴 없음; 해석: 릴리스되지 않은 패턴의 경우도 해당 h->j

액티비티 다이어그램: 복구 가능한 오류는 재시도로 이어지며, 제한 도달 또는 심각한 오류는 기본 패턴 사용 또는 중단으로 이어집니다. 출처: [SWS_SecOC_00151], [SWS_SecOC_00155], [SWS_SecOC_00229], SWS SecOC 124쪽

인접 계층의 중단 및 오류를 SecOC는 다음과 같이 처리합니다:

  • SecOC_[If|Tp]CancelTransmit는 SecOC가 즉시 하위 계층으로 전달하고 모든 버퍼를 해제합니다 (SWS SecOC 48쪽, [SWS_SecOC_91009]).
  • 하위 계층이 E_NOT_OK를 보고하면, SecOC는 상위 계층으로의 확인 응답만 생략합니다.
  • TP 전송 시 데이터 검색이 BUFREQ_E_BUSY를 반환하면, SecOC는 다음 주기에서 이를 반복합니다 ([SWS_SecOC_00260]).
  • 송신 및 수신 시 BUFREQ_E_NOT_OK는 즉각적인 중단으로 이어집니다 ([SWS_SecOC_00266], [SWS_SecOC_00267]).

수신 측에서 SecOC는 PDU당 Build 카운터와 Verify 카운터를 유지하며, 둘 다 0에서 시작합니다 ([SWS_SecOC_00234], [SWS_SecOC_00235]):

  • E_BUSY 또는 복구 가능한 CSM 오류는 Build 카운터를 증가시킵니다. SecOC는 다음 주기에서 다시 시도합니다 ([SWS_SecOC_00236], [SWS_SecOC_00237], [SWS_SecOC_00238]).
  • Build 카운터가 제한에 도달하면 SECOC_AUTHENTICATIONBUILDFAILURE가 뒤따릅니다 ([SWS_SecOC_00240]).
  • 잘못된 MAC은 Verify 카운터를 증가시키고 Build 카운터를 리셋합니다 ([SWS_SecOC_00239]).
  • Verify 제한에 도달하거나 심각한 오류 발생 시 SECOC_VERIFICATIONFAILURE가 적용되며, 성공 시 SECOC_VERIFICATIONSUCCESS이 적용됩니다 ([SWS_SecOC_00241], [SWS_SecOC_00242]).
rxverifikation a Secured I-PDU 완전히 수신됨 Build 카운터 = 0, Verify 카운터 = 0 b Freshness abfragen (SecOC_GetRxFreshness / …AuthData) a->b c Ergebnis Freshness? b->c d Build 카운터 + 1 c->d E_BUSY h Verwerfen: SECOC_FRESHNESSFAILURE c->h E_NOT_OK i Csm_MacVerify c->i E_OK e Build 카운터 >= SecOCAuthenticationBuildAttempts? d->e f 다음 SecOC_MainFunctionRx에서 재시도 e->f 아니요 g Verwerfen: SECOC_AUTHENTICATIONBUILDFAILURE e->g 예 f->b j Ergebnis Verifikation? i->j j->d E_BUSY, QUEUE_FULL k Verify 카운터 + 1, Build 카운터 = 0 j->k 유효하지 않은 MAC m Verwerfen: SECOC_VERIFICATIONFAILURE j->m 복구 불가능 (E_NOT_OK, KEY_FAILURE) n SECOC_VERIFICATIONSUCCESS, Authentic I-PDU an obere Schicht j->n 성공적인 l Verify 카운터 >= SecOCAuthenticationVerifyAttempts? k->l l->b 아니요: 다음 유효한 Freshness Value l->m 예

액티비티 다이어그램: Build 및 Verify 카운터가 수신 시 재시도 및 폐기를 제어합니다. 출처: SWS SecOC 42쪽, PRS SecOC 19쪽, [SWS_SecOC_00239], [SWS_SecOC_00241]

Freshness E_NOT_OK에 대해 R20-11은 두 가지 요구사항을 나란히 포함하고 있습니다. 하나는 SECOC_FRESHNESSFAILURE을 통해 PDU를 즉시 폐기합니다 ([SWS_SecOC_00256]). 다른 하나는 실패 횟수를 계산하여 제한에 도달하면 DET에 SECOC_E_FRESHNESS_FAILURE을 보고합니다 ([SWS_SecOC_00248]). 또한 Security Events는 DataId를 컨텍스트로 하여 IdsM으로 전달됩니다(예: SECOC_SEV_MAC_VERIFICATION_FAILED) ([SWS_SecOC_00274], [SWS_SecOC_00275]).

더 자세한 증거

페이로드에 포함된 사양 발췌본을 기반으로 AI가 생성한 가이드입니다. R20-11에 대해 구속력을 갖는 것은 요구사항이며, 문서 인용 위치는 부분적으로 다른 릴리스에서 가져왔습니다. 사양을 대체하지 않습니다.

Secure Onboard Communication (SecOC)

Provides cryptographic authentication and freshness protection for critical communication PDUs.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

함수 SecOC_Init [SWS_SecOC_00106] 📄 PDF

void SecOC_Init (const SecOC_ConfigType* config);

Initializes the the Sec OC module. Successful initialization leads to state Sec OC_ INIT. In configurations, in which Sec OC is assigned to more than one partition (i.e. Sec OC_ Main Functions are mapped to partition s), Sec OC may provide one init AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_SecureOnboardCommunication function per partition. The decision on whether a single Sec OC_ Init() function or one per partition is provided is implementation - specific. In case a given implementation provides one Sec OC_ Init() function per partition, it is up to the implementation to devise a naming pattern that prevents name clashes among the different Sec OC_ Init() functions (e.g., by adding a suffix containing short name the Ecuc Partition.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 4620b5d490e2 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 SecOC_Init은(는) 모듈 SecOC의 초기화 역할을 하며, 성공적으로 완료되면 이를 SecOC_INIT 상태로 전환합니다 [SWS_SecOC_00106]. 호출은 서비스 ID 0x01을(를) 갖는 SecOC.h의 인터페이스를 통해 수행됩니다 [SWS_SecOC_00106].

매개변수 및 반환값

  • 전달 매개변수: 입력 매개변수 config을(를) 통해 SecOC_ConfigType 타입의 선택된 구성 구조체에 대한 포인터가 전달됩니다 [SWS_SecOC_00106].
  • 반환값: 이 함수는 반환값이 없습니다(void) [SWS_SecOC_00106].

동시성 및 파티셔닝

SecOC_Init의 실행은 non-reentrant(Non Reentrant)로 명시되어 있습니다 [SWS_SecOC_00106].

여러 파티션이 있는 시스템에는 특별한 요구 사항이 적용됩니다: 모듈 SecOC이(가) 여러 파티션에 할당된 경우(SecOC_MainFunction과(와) 같은 메인 함수를 파티션들에 분산시킴으로써), 파티션당 하나의 Init 함수가 존재할 수 있습니다 [SWS_SecOC_00106]. 단일 중앙 함수 SecOC_Init이(가) 제공되는지 또는 파티션별로 별도의 함수가 제공되는지는 구현에 따라 다릅니다 [SWS_SecOC_00106]. 파티션별 함수가 제공되는 경우, 구현 시 각 EcucPartition의 짧은 이름을 포함하는 접미사를 붙이는 방식 등으로 이름 충돌을 방지해야 합니다 [SWS_SecOC_00106].

이 텍스트는 AUTOSAR Classic R20-11 명세를 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 SecOC_DeInit [SWS_SecOC_00161] 📄 PDF

void SecOC_DeInit (void);

This service stops the secure onboard communication. All buffered I - PDU are removed and have to be obtained again, if needed, after Sec OC_ Init has been called. By a call to Sec OC_ De Init the AUTOSAR Sec OC module is put into a not in itialized state (Sec OC_ UNINIT).

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: c3c9650a2dbc 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 의미론

동기 함수 SecOC_DeInit은(는) SecOC 모듈에서 보안 온보드 통신의 작동을 종료하고 모듈을 SecOC_UNINIT 상태로 전환합니다 [SWS_SecOC_00161]. 이 함수는 헤더 파일 SecOC.h에 선언되어 있으며 서비스 ID 0x05 및 시그니처 void SecOC_DeInit(void) [SWS_SecOC_00161]을(를) 갖습니다. 입력 및 출력 파라미터를 모두 처리하지 않으며 반환값을 반환하지 않습니다 [SWS_SecOC_00161].

버퍼 정리 및 상태 전환

SecOC_DeInit을(를) 호출하면 모듈에 버퍼링된 모든 I-PDU가 폐기되고 버퍼에서 제거됩니다[SWS_SecOC_00161]. 보안 통신이 다시 시작된 후에도 이 데이터가 계속 필요한 경우, SecOC_Init을(를) 다시 호출한 후 다시 획득해야 합니다[SWS_SecOC_00161].

동시성 및 제약사항

초기화 해제 실행에는 확정된 지침과 제약 조건이 적용됩니다 [SWS_SecOC_00161]:

  • 재진입 불가능: 이 인터페이스는 non-reentrant(Non Reentrant)로 명시되어 있으므로 동시 실행해서는 안 됩니다 [SWS_SecOC_00161].
  • 순서 조건: 호출 후 모듈은 초기화되지 않은 상태로 유지되므로, 후속 통신 서비스는 반드시 SecOC_Init의 재호출을 요구합니다 [SWS_SecOC_00161].

이 사용 지침은 AUTOSAR Classic 사양 R20-11을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 SecOC_IfTransmit [SWS_SecOC_00112] 📄 PDF

Std_ReturnType SecOC_IfTransmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);

Requests transmission of a PDU.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 4ad6d7766599 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기식 서비스 함수 SecOC_IfTransmit은(는) 모듈 SecOC에서 PDU 전송을 요청하는 데 사용됩니다 [SWS_SecOC_00112]. 이 함수는 서비스 ID 0x49을(를) 가지며 헤더 파일 SecOC.h을 통해 선언됩니다 [SWS_SecOC_00112].

이 함수는 두 개의 입력 매개변수를 필요로 합니다 [SWS_SecOC_00112]:

  • TxPduId: 전송할 PDU의 식별자(타입 PduIdType).
  • PduInfoPtr: 데이터 길이와 PDU 데이터 및 메타데이터에 대한 포인터를 제공하는 PduInfoType 타입 구조체에 대한 포인터.

입출력 또는 순수 출력 매개변수는 존재하지 않습니다 [SWS_SecOC_00112].

반환값 및 오류 처리

동기식 반환값으로 Std_ReturnType 타입의 상태가 반환됩니다 [SWS_SecOC_00112]:

오류가 발생한 경우 요청 실패는 E_NOT_OK에 의해 즉시 신호로 전달되며, DET 또는 DEM을 위한 특정 오류 코드는 함수 사양에서 별도로 식별되지 않습니다 [SWS_SecOC_00112].

동시성 및 제약사항

동시성과 관련하여, 이 함수는 서로 다른 PDU-ID에 대해 재진입 가능(reentrant)하지만, 동일한 PDU-ID에 대해서는 재진입이 불가능합니다 [SWS_SecOC_00112].

이 사용 지침은 AUTOSAR 사양을 기반으로 AI에 의해 생성되었습니다.

함수 SecOC_TpTransmit [SWS_SecOC_91008] 📄 PDF

Std_ReturnType SecOC_TpTransmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);

Requests transmission of a PDU.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 4b4f6d06f1cb 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

서비스 ID 0x53을(를) 갖는 동기식 인터페이스 SecOC_TpTransmit은(는) SecOC 모듈에서 PDU 전송을 요청하는 데 사용되며 헤더 파일 SecOC.h을(를) 통해 선언됩니다 [SWS_SecOC_91008]. 이 인터페이스는 전송 요청을 수락하고 모듈 내에서 추가 처리를 시작합니다.

사용법 및 상호작용

입력 매개변수로서 이 함수는 PDU 식별자 TxPduId 및 PDU 길이에 대한 정보와 페이로드 데이터 및 메타데이터에 대한 포인터를 포함하는 PduInfoType 타입의 상수에 대한 포인터 PduInfoPtr을(를) 기대합니다 [SWS_SecOC_91008]. 기능적 상호작용은 구성에 의해 결정됩니다. SecOCPduType이(가) SECOC_TPPDU(으)로 구성된 경우, SecOC_TpTransmit의 호출은 Authentic I-PDU에 대한 구체적인 전송 작업을 트리거합니다 [SWS_SecOC_00253].

반환값 및 동시성

호출 결과는 Std_ReturnType을(를) 통해 반환됩니다. 값 E_OK은(는) 전송 요청이 성공적으로 수락되었음을 확인하는 반면, E_NOT_OK은(는) 요청이 거부되었음을 의미합니다 [SWS_SecOC_91008]. 동시성 동작과 관련하여 이 함수는 서로 다른 PDU 식별자에 대해 재진입 가능하게 구현되어 있지만, 동일한 TxPduId에 대해서는 결코 재진입 가능하게 호출되어서는 안 됩니다 [SWS_SecOC_91008].

해석: 실제 환경에서 E_NOT_OK(으)로 요청이 거부되는 것은 주로 PduInfoPtr의 유효하지 않은 포인터 값이거나 동일한 PDU의 전송이 이미 차단되었거나 진행 중이기 때문일 가능성이 큽니다. 질문 Q-4c6165f6330c4bc2 (열림)

이 사용 지침은 AUTOSAR R20-11 사양을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 SecOC_IfCancelTransmit [SWS_SecOC_00113] 📄 PDF

Std_ReturnType SecOC_IfCancelTransmit (PduIdType TxPduId);

Requests cancellation of an ongoing transmission of a PDU in a lower layer communication module.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 93fdfc8c106e 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

동기식 인터페이스 함수 SecOC_IfCancelTransmit은(는) 하위 통신 모듈에서 진행 중인 PDU 전송의 취소를 요청합니다 [SWS_SecOC_00113]. 이 함수는 헤더 파일 SecOC.h을(를) 통해 선언되며 서비스 ID 0x4a을(를) 갖습니다 [SWS_SecOC_00113]. PduIdType 타입의 전달 매개변수 TxPduId을(를) 통해 전송 과정을 취소할 PDU가 전달됩니다 [SWS_SecOC_00113]. 추가적인 입력 또는 출력 매개변수는 존재하지 않습니다 [SWS_SecOC_00113].

반환값 및 실행

취소 요청의 결과는 Std_ReturnType 타입의 반환값을 통해 호출자에게 동기식으로 전달됩니다 [SWS_SecOC_00113]:

  • E_OK: 하위 대상 모듈이 PDU 전송 취소를 성공적으로 실행했습니다 [SWS_SecOC_00113].
  • E_NOT_OK: 취소 요청이 대상 모듈에 의해 거부되었습니다 [SWS_SecOC_00113].

이 함수에 대해서는 개발 또는 진단 오류 감지(DET/DEM)를 위한 특정 오류 코드나 오류 알림이 명시되어 있지 않으므로, 오류 감지에는 오직 반환값만이 사용됩니다 [SWS_SecOC_00113].

동시성 및 제약사항

병렬 호출과 관련하여 SecOC_IfCancelTransmit은(는) 서로 다른 PDU 식별자에 대해서는 재진입 가능하지만, 동일한 식별자에 대해서는 명시적으로 재진입이 불가능합니다 TxPduId [SWS_SecOC_00113]. 따라서 호출 모듈은 적절한 동기화를 통해 여러 인스턴스가 동일한 PDU에 대해 동시에 전송 취소를 트리거하지 않도록 보장해야 합니다.

이 사용 지침은 AUTOSAR CP R20-11 사양을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 SecOC_TpCancelTransmit [SWS_SecOC_91009] 📄 PDF

Std_ReturnType SecOC_TpCancelTransmit (PduIdType TxPduId);

Requests cancellation of an ongoing transmission of a PDU in a lower layer communication module.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 507f9341fb59 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 SecOC_TpCancelTransmit은(는) 하위 통신 모듈에서 진행 중인 PDU 전송의 취소를 요청하는 역할을 합니다 [SWS_SecOC_91009]. 이는 헤더 파일 SecOC.h을(를) 통해 선언되며 서비스 ID 0x54을(를) 갖습니다 [SWS_SecOC_91009].

입력 매개변수로 취소할 송신 PDU를 고유하게 식별하는 PduIdType 타입의 식별자 TxPduId이(가) 전달됩니다 [SWS_SecOC_91009]. 취소 요청 결과는 Std_ReturnType 타입의 반환값을 통해 동기식으로 다시 보고됩니다 [SWS_SecOC_91009]:

  • E_OK: 대상 모듈에 의해 전송 취소가 성공적으로 실행되었습니다 [SWS_SecOC_91009].
  • E_NOT_OK: 대상 모듈에 의해 취소가 거부되었습니다 [SWS_SecOC_91009].

동시성과 관련하여 함수는 서로 다른 PDU ID에 대해서는 reentrant이지만, 동일한 PDU ID에 대해서는 명시적으로 non-reentrant입니다 [SWS_SecOC_91009]. 따라서 호출자는 동일한 TxPduId을(를) 사용하는 병렬 호출을 피해야 합니다. 페이로드에 Default Error Tracer(DET) 또는 Diagnostic Event Manager(DEM)에 대한 특정 오류 코드가 제공되지 않으므로, 호출자 컨텍스트에서의 직접적인 오류 처리는 주로 반환값 E_NOT_OK의 평가를 통해 수행될 것으로 보입니다 [SWS_SecOC_91009]. 질문 Q-c1f907444c4ca270 (열림)

이 사용 지침은 자동으로 생성되었으며 AUTOSAR R20-11 사양을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 SecOC_TpCancelReceive [SWS_SecOC_91010] 📄 PDF

Std_ReturnType SecOC_TpCancelReceive (PduIdType RxPduId);

Requests cancellation of an ongoing reception of a PDU in a lower layer transport protocol module.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 7bc4b1ba75bb 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 SecOC_TpCancelReceive은(는) 하위 트랜스포트 프로토콜 모듈에서 진행 중인 PDU 수신 프로세스의 취소를 요청하는 데 사용됩니다 [SWS_SecOC_91010]. 유일한 입력 매개변수 RxPduId을(를) 통해 취소할 PDU의 고유 식별자가 모듈에 전달됩니다 [SWS_SecOC_91010].

반환값 및 실행

취소 성공 여부에 대한 피드백은 Std_ReturnType 유형의 반환값을 통해 즉시 제공됩니다 [SWS_SecOC_91010]:

  • E_OK: 수신 취소가 대상 모듈에 의해 성공적으로 실행되었습니다 [SWS_SecOC_91010].
  • E_NOT_OK: 취소가 대상 모듈에 의해 거부되었습니다 [SWS_SecOC_91010].

함수의 사양 데이터에는 특정 오류 코드, 개발 오류(DET) 또는 프로덕션 오류(DEM)가 정의되어 있지 않습니다. 해석: 사양에 명시된 대상 모듈(\"destination module\")은 취소 요청이 전달되는 하위 트랜스포트 프로토콜 모듈을 의미하는 것으로 보입니다. 질문 Q-bce6ed77e65a6b9b (열림)

동시성 및 연계

동시성과 관련하여 이 함수는 재진입 불가능(Non Reentrant)으로 선언되어 있습니다 [SWS_SecOC_91010]. 따라서 동시 호출이나 중단(인터럽트)을 유발하는 호출을 수행해서는 안 되며, 호출하는 소프트웨어 단위가 그에 맞게 접근을 조정해야 합니다. 이 함수는 서비스 ID 0x4c을(를) 가지며 헤더 파일 SecOC.h을(를) 통해 선언됩니다 [SWS_SecOC_91010].

이 사용법 지침은 AI에 의해 생성되었으며 AUTOSAR 릴리스 R20-11의 사양만을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 SecOC_VerifyStatusOverride [SWS_SecOC_00122] 📄 PDF

Std_ReturnType SecOC_VerifyStatusOverride (uint16 ValueID, SecOC_OverrideStatusType overrideStatus, uint8 numberOfMessagesToOverride);

Service SecOC_VerifyStatusOverride.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 87867716fd61 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 SecOC_VerifyStatusOverride을(를) 통해 애플리케이션은 SecOC의 검증 및 전달 동작을 선별적으로 재정의하여 실제 검증 결과와 관계없이 I-PDU를 수락하거나 폐기하고 오류 처리를 제어할 수 있습니다 [SWS_SecOC_00122].

매개변수 및 호출 컨텍스트

어드레싱은 모듈 구성에 따라 결정됩니다: SecOCOverrideStatusWithDataId이(가) FALSE(으)로 설정된 경우 Value ID은(는) 할당된 모든 Secured I-PDU의 Freshness Value를 식별합니다. 해당 매개변수가 TRUE(으)로 설정된 경우 Value ID은(는) Secured I-PDU의 Data ID를 직접 지정합니다 [SWS_SecOC_00122]. overrideStatus을(를) 통해 원하는 동작과 해당 유효 기간이 정의됩니다. 카운터 numberOfMessagesToOverride은(는) 순차적으로 재정의할 검증 횟수를 결정하지만, 모드 SECOC_OVERRIDE_DROP_UNTIL_LIMIT, SECOC_OVERRIDE_SKIP_UNTIL_LIMIT 및 SECOC_OVERRIDE_PASS_UNTIL_LIMIT에서만 평가됩니다 [SWS_SecOC_00122].

모드 SECOC_OVERRIDE_PASS_UNTIL_NOTICE, SECOC_OVERRIDE_SKIP_UNTIL_LIMIT, SECOC_OVERRIDE_PASS_UNTIL_LIMIT 및 SECOC_OVERRIDE_SKIP_UNTIL_NOTICE의 경우 SecOCEnableForcedPassOverride이(가) 반드시 TRUE(으)로 구성되어야 합니다 [SWS_SecOC_00122].

동시성 및 반환값

함수는 서로 다른 Freshness Value ID에 대해서는 reentrant이지만, 동일한 Freshness Value ID에 대해서는 non-reentrant입니다 [SWS_SecOC_00122]. 호출에 성공하면 E_OK을(를) 반환하고, 실패한 호출은 E_NOT_OK(으)로 응답합니다 [SWS_SecOC_00122].

검증 시 상호작용

설정된 재정의(Override)는 수신 경로의 처리 로직에 개입합니다:

  • 분리된 Authentic I-PDU 및 Cryptographic I-PDU가 사용되는 경우(SecOCRxSecuredPduCollection), 일치하는 Message Linker를 가진 두 PDU가 모두 수신되는 즉시 overrideStatus이(가) 동작을 제어합니다 [SWS_SecOC_00203], [SWS_SecOC_00206], [SWS_SecOC_00211].
  • SecOCAuthenticationBuildAttempts 또는 SecOCAuthenticationVerifyAttempts을 초과하는 경우 및 복구 불가능한 오류(예: KEY_FAILURE)가 발생하는 경우에도 검증 결과 및 PDU 전달은 overrideStatus을(를) 우선적으로 따릅니다 [SWS_SecOC_00240], [SWS_SecOC_00241].

이 텍스트는 AI에 의해 작성되었으며 AUTOSAR 사양의 요구사항을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 SecOC_SendDefaultAuthenticationInformation [SWS_SecOC_91013] 📄 PDF

Std_ReturnType SecOC_SendDefaultAuthenticationInformation (uint16 FreshnessValueID, boolean sendDefaultAuthenticationInformation);

The service provides the ability to enable the sending of un - authenticated PDU to lower layer. (example: in case authentication build counter has reached the configuration value Sec OCAuthentication Build Attempts or the query of the freshness function returns E_ NOT_ OK or the calculation of the authenticator has returned a non - recoverable error such as returning E_ NOT_ OK or KEY_ FAILURE). T his service is optional (the service is available only if Sec OCDefault Authentication Information Pattern is configured). If the service is not available or the service is available but the service was called with send Default

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 78b64ca2ff88 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기 함수 SecOC_SendDefaultAuthenticationInformation([SWS_SecOC_91013])을(를) 사용하면 하위 계층으로의 인증되지 않은 I-PDU 전송을 선택적으로 허용하거나 차단할 수 있습니다. 이 서비스는 SecOC.h을(를) 통해 선언되며, 플래그 send Default Authentication Information을(를) 통해 특정 Freshness Value ID에 대한 동작을 제어합니다. 요청이 성공하면 함수는 E_OK을(를) 반환하고, 그렇지 않으면 E_NOT_OK을(를) 반환합니다([SWS_SecOC_91013]).

상호작용 및 오류 동작

이 함수는 선택 사항이며 매개변수 SecOCDefaultAuthenticationInformationPattern이(가) 구성된 경우에만 사용할 수 있습니다([SWS_SecOC_91013]). 이 동작은 카운터 SecOCAuthenticationBuildAttempts에 도달했거나, 신선도 함수가 E_NOT_OK을(를) 반환하거나, 인증자 계산에서 KEY_FAILURE 또는 E_NOT_OK과(와) 같은 복구 불가능한 오류를 반환하는 등 인증 정보 생성이 실패할 때 적용됩니다([SWS_SecOC_91013], [SWS_SecOC_00229]):

  • 서비스가 TRUE(으)로 호출된 경우, 모듈은 인증 정보를 구성하기 위해 신선도 값 및 인증자의 모든 바이트에 패턴 SecOCDefaultAuthenticationInformationPattern을(를) 사용하며 전송 요청을 중단하지 않습니다([SWS_SecOC_91013], [SWS_SecOC_00229]).
  • 서비스를 사용할 수 없거나 해당 ID에 대해 FALSE(으)로 호출된 경우, 모듈은 내부 버퍼에서 Authentic I-PDU를 제거하고 전송을 중단합니다([SWS_SecOC_91013], [SWS_SecOC_00229]).

동시성

이 함수는 동일한 Freshness Value ID에 대해서는 non-reentrant이지만, 서로 다른 ID에 대해서는 reentrant하게 호출될 수 있습니다([SWS_SecOC_91013]).

이 사용 지침은 AUTOSAR R20-11 명세를 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 SecOC_RxIndication [SWS_SecOC_00124] 📄 PDF

void SecOC_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);

Indication of a received PDU from a lower layer communication interface module.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: f7c10da93bc2 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

동기식 인터페이스 함수 SecOC_RxIndication(서비스 ID 0x42)은(는) 하위 통신 인터페이스 모듈에 의해 호출되어 SecOC 모듈로 PDU 수신을 보고합니다 [SWS_SecOC_00124]. 호출 시 RxPduId은(는) 수신된 PDU를 식별하며, PduInfoPtr을(를) 통해 PDU 정보에 대한 포인터가 전달됩니다. 이 구조체에는 페이로드 길이 SduLength, 버퍼 포인터 SduDataPtr 및 PDU의 관련 메타데이터가 포함됩니다 [SWS_SecOC_00124]. 함수는 반환값이 없으며 헤더 파일 SecOC.h을(를) 통해 선언됩니다 [SWS_SecOC_00124].

오류 처리 및 길이 검사

정적 구성을 갖는 I-PDU(EcuC 매개변수 DynamicLength이(가) FALSE와(과) 같은 보안, 인증 또는 암호화 I-PDU)의 수신에는 특정 오류 검사가 적용됩니다: 수신된 길이가 구성된 길이보다 작은 경우 SecOC 모듈은 I-PDU를 자동으로(silently) 폐기합니다 [SWS_SecOC_00268]. 해석: 함수가 void을(를) 반환하므로 오류가 있거나 불완전한 I-PDU는 호출 계층에 대한 피드백 없이 폐기될 것으로 보입니다. 질문 Q-6e9a176383e1983b (열림)

동시성 및 제약사항

SecOC_RxIndication의 실행은 서로 다른 PDU ID를 사용한 호출에 대해서는 reentrant이지만, 동일한 PDU ID에 대해서는 명시적으로 non-reentrant입니다 [SWS_SecOC_00124]. 따라서 호출 모듈은 실행 제어를 통해 동일한 RxPduId을(를) 사용하는 병렬 호출이 방지되도록 해야 합니다.

이 사용 지침은 자동으로 작성되었으며 AUTOSAR 사양 R20-11을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 SecOC_TpRxIndication [SWS_SecOC_00125] 📄 PDF

void SecOC_TpRxIndication (PduIdType id, Std_ReturnType result);

Called after an I - PDU has been received via the TP API, the result indicates whether the transmission was successful or not.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 4e2c4fc6858d 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 SecOC_TpRxIndication은(는) SecOC 모듈의 콜백 인터페이스 역할을 하며 Transport-Protocol-API(TP API)를 통해 I-PDU를 수신한 후 호출됩니다 [SWS_SecOC_00125]. 이 알림을 통해 SecOC는 I-PDU 전송이 성공적으로 완료되었는지 또는 전송 오류가 발생했는지를 알게 됩니다 [SWS_SecOC_00125].

이 인터페이스는 [SWS_SecOC_00125]에 따라 다음과 같은 파라미터 및 속성을 갖습니다:

  • id (PduIdType): 수신 이벤트가 시그널링되는 수신된 I-PDU의 식별자입니다.
  • result (Std_ReturnType): PDU 수신 결과로, 전송이 성공했는지 실패했는지를 나타냅니다.
  • 반환값: 없음(void); 함수는 호출자에게 상태 값을 반환하지 않습니다.

동시성과 관련하여 SecOC_TpRxIndication은(는) 재진입 가능(Reentrant)한 것으로 명시되어 있으며, 서비스 ID 0x45 [SWS_SecOC_00125] 하에서 동기적(Synchronous)으로 작동합니다. 선언은 헤더 파일 SecOC.h을(를) 통해 제공됩니다 [SWS_SecOC_00125]. 해석: PDU 데이터 전송이 완전히 완료되는 즉시 PduR 또는 TP 모듈과 같은 전송 계층에 의해 호출이 일반적으로 트리거될 것으로 보입니다. 질문 Q-6448356fa3609004 (열림)

이 함수에 대해 사양에는 특정 오류 코드, DET 검사 또는 DEM 오류 항목이 정의되어 있지 않습니다 [SWS_SecOC_00125]. 오류 처리는 파라미터 result을(를) 통한 전송 결과 전달로 제한되며, SecOC 모듈은 이를 바탕으로 수신된 데이터를 추가 처리할지 폐기할지 결정합니다.

이 사용 지침은 AUTOSAR CP R20-11 사양을 기반으로 자동으로 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 SecOC_TxConfirmation [SWS_SecOC_00126] 📄 PDF

void SecOC_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 73c9975309da 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

함수 SecOC_TxConfirmation은(는) PDU 전송의 성공 또는 실패를 SecOC 모듈에 동기식으로 확인해주기 위해 하위 통신 인터페이스 모듈에 의해 호출됩니다 [SWS_SecOC_00126]. 이 서비스는 반환값이 없으며(void), 헤더 파일 SecOC.h에 선언되어 있고 서비스 ID 0x40(으)로 관리됩니다 [SWS_SecOC_00126].

이 함수는 두 개의 입력 매개변수를 필요로 합니다 [SWS_SecOC_00126]:

  • TxPduId: 전송된 PDU의 식별자(타입 PduIdType).
  • result: 전송 결과(타입 Std_ReturnType)이며, 성공적인 전달 시 E_OK 또는 전송 실패 시 E_NOT_OK 값을 갖습니다.

오류 처리 및 동시성

하위 계층의 전송 오류는 E_NOT_OK 값을 갖는 인수 result을(를) 통해 즉시 전달됩니다 [SWS_SecOC_00126]. 동시성과 관련하여 이 호출은 서로 다른 PDU-ID에 대해서는 재진입 가능하지만, 동일한 PDU-ID에 대해서는 재진입 불가능으로 정의되어 있습니다 [SWS_SecOC_00126]. 사양에 이에 대한 제한이 없으므로 구체적인 실행 컨텍스트는 아마도 하위 모듈의 태스크 또는 인터럽트 레벨에 있을 것으로 추정됩니다. 질문 Q-8bb15b92df860fc1 (열림)

상호 작용 및 전달

설정 SecOCTxSecuredPduCollection이(가) 사용되는 경우, SecOC는 Authentic I-PDU 및 Cryptographic I-PDU 모두에 대해 SecOC_TxConfirmation이(가) 호출된 후에만 확인을 상위 계층으로 전달합니다 [SWS_SecOC_00270].

이때 상위 계층으로 전달되는 결과 상태에 대해 엄격한 조건이 적용됩니다. 전달되는 호출의 매개변수 result은(는) 두 하위 PDU에 대한 확인이 각각 E_OK(으)로 전달된 경우에만 E_OK이(가) 되며, 그렇지 않은 경우 상태는 E_NOT_OK입니다 [SWS_SecOC_00270].

이 사용 지침은 AUTOSAR 명세 R20-11을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 SecOC_TpTxConfirmation [SWS_SecOC_00152] 📄 PDF

void SecOC_TpTxConfirmation (PduIdType id, Std_ReturnType result);

This function is called after the I - PDU has been transmitted on its network, the result indicates whether the transmission was successful or not.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: ed0d4b6dacab 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 SecOC_TpTxConfirmation은(는) 네트워크를 통해 전송된 I-PDU를 확인하고 전송 과정의 성공 또는 실패를 SecOC 모듈에 동기식으로 알리는 역할을 합니다 [SWS_SecOC_00152].

사용법 및 매개변수

호출은 네트워크에서 I-PDU가 물리적으로 전송된 후에 이루어집니다 [SWS_SecOC_00152]. 이 인터페이스는 헤더 SecOC.h에 선언되어 있으며 서비스 ID 0x48을(를) 갖습니다 [SWS_SecOC_00152]. 두 개의 입력 매개변수를 받으며 반환값은 제공하지 않습니다(void):

  • id(PduIdType 타입): 전송된 I-PDU의 고유 식별자 [SWS_SecOC_00152].
  • result (타입 Std_ReturnType): 네트워크에서의 전송이 성공했는지 또는 실패했는지를 나타냅니다 [SWS_SecOC_00152].

동시성 및 실행

사양에 따르면 이 함수는 동기식으로 실행되어야 하며 완전히 재진입 가능합니다(Reentrant) [SWS_SecOC_00152]. 따라서 호출 컨텍스트에서 필요한 경우, 서로 다른 I-PDU 또는 동일한 I-PDU에 대해 병렬로 호출될 수 있습니다.

오류 처리 및 상호 작용

특정 DET 또는 DEM 오류 코드는 페이로드에 표시되지 않습니다. 전송과 관련된 오류 처리는 주로 전송 과정의 성공 여부를 모듈에 알려주는 전달된 상태 매개변수 result을(를) 통해 수행됩니다 [SWS_SecOC_00152]. 해석: 이 함수는 대규모 또는 단편화된 전송이 완료된 후 전송 상태를 회신하기 위한 하위 트랜스포트 프로토콜 인스턴스의 콜백 인터페이스로 주로 사용될 것으로 보입니다. 질문 Q-a2957406d76ee65f (열림)

이 사용 지침은 AI에 의해 작성되었으며 SecOC 모듈에 대한 AUTOSAR 사양의 요구사항을 요약합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 SecOC_TriggerTransmit [SWS_SecOC_00127] 📄 PDF

Std_ReturnType SecOC_TriggerTransmit (PduIdType TxPduId, PduInfoType* PduInfoPtr);

Within this API , the upper layer module (called module) shall check whether the available data fits into the buffer size reported by Pdu Info Ptr - >Sdu Length. If it fits, it shall copy its data into the buffer provided by Pdu Info Ptr - >Sdu Data Ptr and update the length of the actual copied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without changing Pdu Info Ptr.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: da47edaa7d8f 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 인터페이스 SecOC_TriggerTransmit은(는) 전송 요청된 SDU를 복사하는 역할을 합니다 [SWS_SecOC_00127]. 매개변수 TxPduId을(를) 통해 SDU가 어드레싱되며, PduInfoPtr은(는) 입출력 매개변수로서 대상 버퍼 포인터(SduDataPtr) 및 버퍼 크기 정보(SduLength)를 제공합니다 [SWS_SecOC_00127].

사용 및 데이터 전달

함수 내에서 모듈은 제공할 데이터가 PduInfoPtr->SduLength을(를) 통해 보고된 버퍼 크기에 맞는지 검사합니다 [SWS_SecOC_00127]:

  • 데이터가 들어맞는 경우, 함수는 이를 버퍼 PduInfoPtr->SduDataPtr에 복사하고, 실제로 복사된 바이트 수를 PduInfoPtr->SduLength에 기록한 뒤 E_OK을(를) 반환합니다 [SWS_SecOC_00127].
  • 메모리 공간이 충분하지 않은 경우, 함수는 PduInfoPtr의 내용을 변경하지 않고 E_NOT_OK을(를) 반환합니다 [SWS_SecOC_00127].

오류 처리 및 동시성

E_NOT_OK이(가) 반환되면 SDU 데이터가 복사되지 않은 것입니다. 이 경우 호출자는 PduInfoPtr이(가) NULL 포인터를 포함하거나 유효하지 않은 데이터를 가리킬 수 있으므로 이를 평가하거나 사용해서는 안 됩니다 [SWS_SecOC_00127]. 함수는 서로 다른 PDU ID에 대해서는 reentrant이지만, 동일한 TxPduId에 대해서는 non-reentrant입니다 [SWS_SecOC_00127]. 서비스는 헤더 SecOC.h을(를) 통해 사용할 수 있습니다 [SWS_SecOC_00127].

이 사용 지침은 AUTOSAR Classic Platform 릴리스 R20-11 사양을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 SecOC_CopyRxData [SWS_SecOC_00128] 📄 PDF

BufReq_ReturnType SecOC_CopyRxData (PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);

This function is called to provide the received data of an I - PDU segment (N - PDU) to the upper layer. Each call to this function provides the next part of the I - PDU data. The si ze of the remaining buffer is written to the position indicated by buffer Size Ptr.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 35610f4482a7 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 의미론

동기 함수 SecOC_CopyRxData은(는) 수신된 I-PDU 세그먼트(N-PDU) 데이터를 상위 계층으로 전달하기 위해 호출됩니다 [SWS_SecOC_00128]. 각 호출은 I-PDU 데이터의 다음 부분을 각각 제공합니다 [SWS_SecOC_00128]. 서비스는 서비스 ID 0x44을(를) 가지며 헤더 파일 SecOC.h을(를) 통해 사용할 수 있습니다 [SWS_SecOC_00128].

매개변수 및 버퍼 쿼리

매개변수 id은(는) 수신된 I-PDU를 고유하게 식별합니다 [SWS_SecOC_00128]. 포인터 info을(를) 통해 소스 버퍼 SduDataPtr 및 복사할 바이트 수 SduLength이(가) 제공됩니다 [SWS_SecOC_00128]. 0 값을 갖는 SduLength의 전달은 현재 상위 모듈에서 사용 가능한 수신 버퍼를 조회하는 역할을 하며, 이 경우 SduDataPtr은(는) NULL_PTR(으)로 전달될 수 있습니다 [SWS_SecOC_00128]. bufferSizePtr이(가) 참조하는 위치에는 복사 후 남은 버퍼 크기가 기록됩니다 [SWS_SecOC_00128].

반환값 및 동시성

함수는 상태 BufReq_ReturnType을(를) 반환합니다 [SWS_SecOC_00128]. 데이터 전송에 성공하면 BUFREQ_OK을(를) 보고합니다 [SWS_SecOC_00128]. 오류가 발생하면 데이터가 복사되지 않고 함수는 BUFREQ_E_NOT_OK을(를) 반환합니다 [SWS_SecOC_00128]. SecOC_CopyRxData은(는) reentrant로 명시되어 있습니다 [SWS_SecOC_00128].

이 사용 지침은 AUTOSAR CP R20-11 사양을 기반으로 자동으로 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 SecOC_CopyTxData [SWS_SecOC_00129] 📄 PDF

BufReq_ReturnType SecOC_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);

Service SecOC_CopyTxData.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 42779c9fb9b6 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 의미론

동기식 및 reentrant 함수 SecOC_CopyTxData은(는) I-PDU 세그먼트(N-PDU)에 대한 송신 데이터를 검색하기 위해 호출됩니다 [SWS_SecOC_00129]. 매개변수 info을(를) 통해 대상 버퍼 SduDataPtr 및 요청할 바이트 양 SduLength이(가) 전달됩니다 [SWS_SecOC_00129]. SduLength을(를) 0으로 설정하여 호출하면 매개변수 retry을(를) 통해 사용 가능한 데이터 양을 조회하거나 상태 변경을 보고할 수 있으며, 이 경우 SduDataPtr은(는) NULL_PTR일 수 있습니다 [SWS_SecOC_00129]. availableDataPtr을(를) 통해 모듈은 송신 버퍼에 남아 있는 잔여 데이터 양을 다시 보고합니다 [SWS_SecOC_00129].

재시도 및 오류 처리

버퍼 및 재시도 동작은 retry을(를) 통해 제어됩니다 [SWS_SecOC_00129]:

  • retry이(가) NULL_PTR인 경우, 복사된 데이터는 즉시 해제될 수 있습니다 [SWS_SecOC_00129].
  • TP_CONFPENDING의 경우, 오류 복구를 위해 이전에 복사된 데이터가 버퍼에 유지됩니다 [SWS_SecOC_00129].
  • TP_DATACONF은(는) 버퍼 해제를 위해 이 호출 이전에 전송된 모든 데이터를 확인합니다 [SWS_SecOC_00129].
  • TP_DATARETRY은(는) TxTpDataCnt에 의해 정의된 바이트 오프셋부터 이미 전송된 데이터를 다시 복사하도록 트리거합니다 [SWS_SecOC_00129].

반환값으로 함수는 복사 작업이 성공한 경우 BUFREQ_OK을(를), 일시적으로 충분한 송신 데이터가 준비되지 않은 경우(이를 통해 호출자가 나중에 시도를 반복할 수 있음) BUFREQ_E_BUSY을(를), 일반적인 실패의 경우 BUFREQ_E_NOT_OK을(를) 반환합니다 [SWS_SecOC_00129].

동시성

함수는 reentrant로 설계되어 서로 다른 PDU 인스턴스에 대한 병렬 호출이 허용될 것으로 보입니다 [SWS_SecOC_00129]. 질문 Q-6420f2ca317efcb4 (열림)

본 사용 지침은 명세를 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 SecOC_StartReception [SWS_SecOC_00130] 📄 PDF

BufReq_ReturnType SecOC_StartOfReception (PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);

Service SecOC_StartReception.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: e711d8ef8bcc 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기식 및 reentrant 함수 SecOC_StartReception은(는) N-SDU 수신 시작 시 연결을 확인하고 필요한 수신 버퍼를 제공하기 위해 호출됩니다 [SWS_SecOC_00130]. 이때 N-SDU는 단일 프레임(Single Frame, SF)으로 수신되거나 여러 N-PDU(First Frame, FF에 이은 Consecutive Frames, CF)를 통해 단편화되어 수신될 수 있습니다 [SWS_SecOC_00130]. 선언은 헤더 SecOC.h을(를) 통해 제공됩니다 [SWS_SecOC_00130].

매개변수 및 버퍼 쿼리

  • id: 수신된 I-PDU 식별자 [SWS_SecOC_00130].
  • info: 첫 번째 또는 단일 프레임의 페이로드 및 메타데이터를 포함하는 PduInfoType 구조체에 대한 포인터이며, 데이터와 메타데이터가 모두 제공되지 않는 경우 NULL_PTR이(가) 전달됩니다 [SWS_SecOC_00130].
  • TpSduLength: 수신할 N-SDU의 총 길이입니다. 매개변수가 0 값으로 전달되면 서비스는 현재 사용 가능한 최대 버퍼 크기를 반환합니다 [SWS_SecOC_00130].
  • bufferSizePtr: 사용 가능한 수신 버퍼를 위한 출력 매개변수로, 전송 프로토콜 모듈이 Block Size(BS)를 계산하는 데 사용됩니다 [SWS_SecOC_00130].

반환값 및 오류 처리

  • BUFREQ_OK: 연결이 수락되었으며 수신이 계속됩니다. bufferSizePtr은(는) 사용 가능한 버퍼 크기를 나타냅니다(필요한 크기의 버퍼를 사용할 수 없는 경우 0이 보고됨) [SWS_SecOC_00130].
  • BUFREQ_E_NOT_OK: 연결이 거부되었으며 수신이 중단됩니다. bufferSizePtr은(는) 변경되지 않은 상태로 유지됩니다 [SWS_SecOC_00130].
  • BUFREQ_E_OVFL: 요청된 길이의 버퍼를 제공할 수 없습니다. 수신이 중단되고 bufferSizePtr은(는) 변경되지 않은 상태로 유지됩니다 [SWS_SecOC_00130].

본 사용 지침은 AUTOSAR R20-11을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 SecOC_GetRxFreshness [SWS_SecOC_91007] 📄 PDF

Std_ReturnType SecOC_GetRxFreshness (uint16 SecOCFreshnessValueID, const uint8* SecOCTruncatedFreshnessValue, uint32 SecOCTruncatedFreshnessValueLength, uint16 SecOCAuthVerifyAttempts, uint8* SecOCFreshnessValue, uint32* SecOCFreshnessValueLength);

Service SecOC_GetRxFreshness.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: ef974f5cced3 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 인터페이스 함수 SecOC_GetRxFreshness은(는) 수신된 보안 I-PDU에 대한 현재 Freshness 값을 조회하기 위해 SecOC 모듈에 의해 사용됩니다 [SWS_SecOC_91007]. 호출은 보안 PDU가 완전히 수신되고 해당 구성에 대해 SecOCQueryFreshnessValue == CFUNC 및 SecOCUseAuthDataFreshness == FALSE이(가) 정의된 즉시 수행됩니다 [SWS_SecOC_00247], [SWS_SecOC_00250].

함수는 reentrant이며 [SWS_SecOC_91007] 다음 매개변수를 전달하거나 기대합니다:

  • SecOCFreshnessValueID: 조회할 Freshness 값의 식별자 [SWS_SecOC_91007].
  • SecOCTruncatedFreshnessValue 및 SecOCTruncatedFreshnessValueLength: 수신된 PDU에 포함된 잘린 Freshness 값에 대한 포인터 및 해당 비트 단위 길이 [SWS_SecOC_91007].
  • SecOCAuthVerifyAttempts: PDU 수신 이후 지금까지의 검증 시도 횟수(0부터 시작하여 실패할 때마다 증가) [SWS_SecOC_91007].
  • SecOCFreshnessValue 및 SecOCFreshnessValueLength: 확인된 Freshness 값을 위한 출력 버퍼 및 해당 비트 길이를 위한 입출력 매개변수 [SWS_SecOC_91007].

조회 결과는 SecOC의 후속 처리를 제어합니다:

  • E_OK: Freshness 값이 성공적으로 제공되었으며 Authenticator 계산에 사용됩니다 [SWS_SecOC_91007].
  • E_NOT_OK: 일반적인 문제 또는 잘못된 Freshness ID로 인해 제공에 실패했습니다 [SWS_SecOC_91007].
  • E_BUSY: 정보를 일시적으로 사용할 수 없습니다 [SWS_SecOC_91007]. 이 경우 SecOC는 Authentication-Build-Counter를 증가시키고 인증 검증 시도를 수행하지 않습니다 [SWS_SecOC_00236].

이 사용 지침은 AUTOSAR 사양 R20-11을 바탕으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 SecOC_GetRxFreshnessAuthData [SWS_SecOC_91006] 📄 PDF

Std_ReturnType SecOC_GetRxFreshnessAuthData (uint16 SecOCFreshnessValueID, const uint8* SecOCTruncatedFreshnessValue, uint32 SecOCTruncatedFreshnessValueLength, const uint8* SecOCAuthDataFreshnessValue, uint16 SecOCAuthDataFreshnessValueLength, uint16 SecOCAuthVerifyAttempts, uint8* SecOCFreshnessValue, uint32* SecOCFreshnessValueLength);

Service SecOC_GetRxFreshnessAuthData.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 21909ecce4eb 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 reentrant 함수 SecOC_GetRxFreshnessAuthData은(는) 완전히 수신된 보안 I-PDU에 대해 인증을 위한 최신 Freshness 값을 확인하기 위해 SecOC 모듈에 의해 호출됩니다([SWS_SecOC_91006], [SWS_SecOC_00246]). 이 호출은 해당 PDU 구성에 대해 SecOCQueryFreshnessValue = CFUNC 및 SecOCUseAuthDataFreshness = TRUE이(가) 매개변수화된 경우에 구체적으로 수행됩니다([SWS_SecOC_00246], [SWS_SecOC_00249]).

매개변수 및 전달값

  • 입력 데이터: 식별자 SecOCFreshnessValueID, 비트 길이 SecOCTruncatedFreshnessValueLength을(를) 포함한 I-PDU에 포함된 단축 Freshness 값 SecOCTruncatedFreshnessValue, 그리고 실패 시도시 증가하는 카운터 SecOCAuthVerifyAttempts이(가) 전달됩니다([SWS_SecOC_91006]).
  • 인증 데이터: SecOCAuthDataFreshnessValue 및 SecOCAuthDataFreshnessValueLength을(를) 통해 수신된 PDU의 구성된 일부가 선택적으로 전달되며, 시작 위치와 길이는 SecOCAuthDataFreshnessStartPosition 및 SecOCAuthDataFreshnessLen에 의해 결정됩니다([SWS_SecOC_91006], [SWS_SecOC_00246]).
  • 결과 데이터: 전체 Freshness 값은 출력 버퍼 SecOCFreshnessValue을(를) 통해 제공되며, 그 비트 길이는 inout 매개변수 SecOCFreshnessValueLength(으)로 동작합니다([SWS_SecOC_91006]).

반환값 및 오류 처리

이 함수는 쿼리의 성공을 E_OK(으)로 알립니다([SWS_SecOC_91006]). 일반적인 문제나 유효하지 않은 Freshness ID로 인해 Freshness 값을 제공할 수 없는 경우 E_NOT_OK을(를) 반환하고, 일시적으로 사용할 수 없는 경우에는 E_BUSY을(를) 반환합니다([SWS_SecOC_91006]). 해석: 이 함수는 CFUNC을(를) 통해 C 함수로 연결되므로, 구현은 외부 Freshness 관리 모듈에 의해 수행될 것으로 추정됩니다. 질문 Q-01aa77b7235b9001 (열림)

이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 SecOC_GetTxFreshness [SWS_SecOC_91004] 📄 PDF

Std_ReturnType SecOC_GetTxFreshness (uint16 SecOCFreshnessValueID, uint8* SecOCFreshnessValue, uint32* SecOCFreshnessValueLength);

This API returns th e freshness value from the Most Significant Bits in the first byte in the array (Sec OCFreshness Value), in big endian format.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: dd021d2527b1 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식이며 재진입 가능한 함수 SecOC_GetTxFreshness은(는) 전송할 메시지에 대한 최신 Freshness 값을 제공하는 데 사용되며 헤더 SecOC.h을(를) 통해 선언됩니다 [SWS_SecOC_91004]. [SWS_SecOC_00231]에 따르면, 구성에서 SecOCQueryFreshnessValue = CFUNC 및 SecOCProvideTxTruncatedFreshnessValue = FALSE이(가) 설정된 경우 SecOC 모듈은 PDU에 대해 이 함수를 호출합니다. 해석: SecOC가 해당 구성 시 호출을 수행하므로, 이 함수는 외부 컴포넌트에 의해 콜아웃으로 제공되어야 할 것으로 보입니다. 질문 Q-99a14f896ffddf5f (열림)

이 인터페이스는 다음 매개변수를 사용합니다 [SWS_SecOC_91004]:

  • SecOCFreshnessValueID (In): 요청된 Freshness 값의 숫자 식별자입니다.
  • SecOCFreshnessValueLength (InOut): 제공된 Freshness 값의 비트 길이를 전달하거나 전달받습니다.
  • SecOCFreshnessValue (Out): 첫 번째 바이트의 최상위 비트부터 시작하여 빅엔디안 형식으로 Freshness 값을 수신하기 위한 바이트 배열에 대한 포인터입니다.

Std_ReturnType 타입의 반환값은 제공 결과를 나타냅니다 [SWS_SecOC_91004]:

  • E_OK: Freshness 값이 성공적으로 제공되었습니다.
  • E_BUSY: Freshness 정보를 일시적으로 제공할 수 없습니다.
  • E_NOT_OK: 해당 ID에 대해 또는 일반적으로 값을 확인할 수 없어 요청이 실패했습니다.

이 사용 지침은 자동으로 생성되었으며 AUTOSAR 버전 R20-11의 사양에만 기반합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 SecOC_GetTxFreshnessTruncData [SWS_SecOC_91003] 📄 PDF

Std_ReturnType SecOC_GetTxFreshnessTruncData (uint16 SecOCFreshnessValueID, uint8* SecOCFreshnessValue, uint32* SecOCFreshnessValueLength, uint8* SecOCTruncatedFreshnessValue, uint32* SecOCTruncatedFreshnessValueLength);

Service SecOC_GetTxFreshnessTruncData.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 2ae3128a39ae 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 reentrant 함수 SecOC_GetTxFreshnessTruncData은(는) 전송 작업(TX) 시 전송할 Secured I-PDU에 대한 전체 Freshness 값과 잘린 Freshness 값(Truncated Freshness)을 모두 조회하기 위해 SecOC 모듈에 의해 호출됩니다 [SWS_SecOC_91003]. 호출은 PDU 구성에 대해 SecOCQueryFreshnessValue = CFUNC 및 SecOCProvideTxTruncatedFreshnessValue = TRUE이(가) 설정된 경우에만 구체적으로 수행됩니다 [SWS_SecOC_00230].

인터페이스는 다음 매개변수를 전달합니다 [SWS_SecOC_91003]:

  • SecOCFreshnessValueID (in): 요청된 Freshness 값의 식별자입니다.
  • SecOCFreshnessValue (out): 현재 전체 Freshness 값을 위한 대상 버퍼입니다.
  • SecOCFreshnessValueLength (inout): 제공된 신선도 값의 길이를 비트 단위로 지정합니다.
  • SecOCTruncatedFreshnessValue (out): Secured I-PDU에 포함될 잘린 Freshness 값을 위한 선택적 버퍼입니다.
  • SecOCTruncatedFreshnessValueLength (inout): 잘린 Freshness의 구성된 길이를 전달합니다. 이 값은 필요에 따라 함수에 의해 조정되거나 변경되지 않고 유지될 수 있습니다.

반환값으로 함수는 성공적으로 제공된 경우 E_OK을(를), 정보를 일시적으로 사용할 수 없는 경우 E_BUSY을(를), 일반적인 문제로 인해 또는 전달된 ID에 특정하여 제공에 실패한 경우 E_NOT_OK을(를) 반환합니다 [SWS_SecOC_91003]. 선언은 헤더 SecOC.h을(를) 통해 사용할 수 있습니다 [SWS_SecOC_91003].

이 사용 지침은 AUTOSAR R20-11의 사양 데이터를 기반으로 AI 큐레이션 어시스턴트에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 SecOC_SPduTxConfirmation [SWS_SecOC_91005] 📄 PDF

void SecOC_SPduTxConfirmation (uint16 SecOCFreshnessValueID);

This interface is used by the Sec OC to indicate that the Secured I - PDU has been initiated for transmission.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 802cf05f792c 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기식 함수 인터페이스 SecOC_SPduTxConfirmation은(는) 보안 I-PDU(Secured I-PDU)의 전송이 시작되었음을 알리기 위해 SecOC 모듈에 의해 사용됩니다 [SWS_SecOC_91005]. 이 함수는 헤더 파일 SecOC.h에 선언되어 있으며 반환값이 없습니다(void) [SWS_SecOC_91005].

유일한 전달 매개변수로 uint16 타입의 입력값(in)인 SecOCFreshnessValueID이(가) 전달됩니다 [SWS_SecOC_91005]. 이 매개변수는 해당 I-PDU에 대한 각 Freshness 값의 식별자를 전달합니다 [SWS_SecOC_91005]. 인터페이스에 추가적인 입력, 출력 또는 입출력 매개변수(inout/out)는 존재하지 않습니다 [SWS_SecOC_91005].

동시성 및 특성

이 인터페이스는 서비스 ID 0x4d을(를) 가지며, 동기식으로 동작하고 완전히 재진입 가능하도록 설계되었습니다 [SWS_SecOC_91005]. 재진입 특성 덕분에 동시 실행 컨텍스트에서 병렬 호출이 가능합니다 [SWS_SecOC_91005]. 인터페이스 사양에는 DET 또는 DEM을 통한 오류 보고 및 특수 오류 코드가 정의되어 있지 않습니다 [SWS_SecOC_91005].

해석: SecOC가 PDU 전송 시작을 보고하기 위해 이 함수를 호출하고 이때 오직 SecOCFreshnessValueID만을 전달하므로, 이 호출은 아마도 외부 컴포넌트에서 Freshness 카운터를 갱신하거나 확인하는 데 사용될 것으로 보입니다 [SWS_SecOC_91005]. 질문 Q-f234a3c6e9b16362 (열림)

이 사용 지침은 자동으로 생성되었으며 AUTOSAR CP R20-11의 사양 데이터에만 기반합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 SecOC_MainFunctionRx [SWS_SecOC_00171] 📄 PDF

void SecOC_MainFunctionRx (void);

This function performs the processing of the Sec OC module's authentication and verification processing for the Rx path. Per configured Sec OCMain Function Rx instance one Sec OC_ Main Function Rx_ shall be implemented. Hereby is the short name of the Sec OCMain Function Rx configuration container in the ECU configuration.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 03542d899cdb 출처 열린 질문 (3)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

함수 SecOC_MainFunctionRx은(는) 수신 경로의 수신 메시지에 대해 모듈 SecOC의 중앙 인증 및 검증 처리를 담당합니다 [SWS_SecOC_00171]. 인터페이스 사양에 따르면 함수는 void SecOC_MainFunctionRx (void) 시그니처를 가지며, 서비스 ID 0x06을(를) 나타내고, 전달 매개변수를 필요로 하지 않으며 반환값을 반환하지 않습니다 [SWS_SecOC_00171]. 이는 헤더 파일 SchM_SecOC.h을(를) 통해 선언됩니다 [SWS_SecOC_00171]. 이로부터 호출이 운영체제 태스크 컨텍스트에서 BSW 스케줄러에 의해 주기적으로 수행됨을 유추할 수 있습니다(해석). 질문 Q-d24cb58f541f6674 (열림)

인스턴스화 및 구성

여러 수신 인스턴스가 있는 시스템 구성에서는 구성된 SecOCMainFunctionRx 컨테이너마다 SecOC_MainFunctionRx_<shortName> 스키마에 따라 고유한 함수 인스턴스가 구현됩니다 [SWS_SecOC_00171]. 여기서 <shortName>은(는) ECU 구성 모델에서 할당된 컨테이너의 짧은 이름에 해당합니다 [SWS_SecOC_00171]. 이를 통해 서로 다른 Rx 처리 경로의 개별적인 시간 제어 또는 우선순위 지정이 가능할 것으로 추정됩니다. 질문 Q-ebb55c5d3a3da97d (열림)

오류 처리 및 동시성

SecOC_MainFunctionRx에 대해서는 요구사항에서 특정 반환값이나 DET 또는 DEM을 위한 명시적인 오류 코드가 문서화되어 있지 않습니다 [SWS_SecOC_00171]. 따라서 오류 상태나 실패한 검증은 순수하게 내부적으로 처리되고 수신 경로를 통해 상위 모듈로 비동기 보고될 것으로 보입니다. 질문 Q-5d1e45f7a779bea9 (열림)

이 텍스트는 AI에 의해 생성되었으며 참고용으로 제공됩니다. 항상 공식 AUTOSAR 사양이 결정적인 기준입니다.

함수 SecOC_MainFunctionTx [SWS_SecOC_00176] 📄 PDF

void SecOC_MainFunctionTx (void);

This function performs the processing of the Sec OC module's authentication and verification processing for the Tx path. Per configured Sec OCMain Function Tx instance one Sec OC_ Main Function Tx_ shall be implemented. Hereby is t he short name of the Sec OCMain Function Tx configuration container in the ECU configuration.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 0a9d6b2d7e1e 출처 열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

메인 함수 SecOC_MainFunctionTx은(는) [SWS_SecOC_00176]에 따라 송신 경로(Tx 경로)에서 SecOC 모듈의 인증 및 검증 처리를 담당합니다. 이 함수는 void SecOC_MainFunctionTx(void) 시그니처를 가지므로 전달 매개변수를 받지 않고 반환값도 제공하지 않으며, 서비스 ID 0x03이(가) 할당되어 있습니다 [SWS_SecOC_00176]. 선언은 헤더 SchM_SecOC.h을(를) 통해 제공됩니다 [SWS_SecOC_00176]. 해석: Schedule Manager를 통해 통합되므로, 호출은 일반적으로 OS 태스크 컨텍스트 내에서 BSW 스케줄러에 의해 주기적으로 발생할 것으로 추정됩니다. 질문 Q-34b30208648c8e30 (열림)

인스턴스화 및 명명 규칙

사양에서는 다중 구성을 위한 인스턴스별 구현을 규정합니다. ECU 구성에서 구성된 각 인스턴스 컨테이너 SecOCMainFunctionTx에 대해 SecOC_MainFunctionTx_<shortName> 명명 체계에 따른 정확히 하나의 함수를 구현해야 하며, 여기서 <shortName>은(는) 해당 구성 컨테이너의 Short Name에 해당합니다 [SWS_SecOC_00176].

제약 사항 및 오류 처리

특정 오류 코드, DET 또는 DEM 피드백 및 재진입성에 대한 세부 사항은 사양 요소에 별도로 기재되어 있지 않습니다 [SWS_SecOC_00176]. 해석: 인스턴스별 구성 컨테이너에 결합되어 있으므로 생성된 각 인스턴스는 격리된 Tx PDU 처리 하위 집합을 담당할 것으로 보이며, 계획상 동일한 태스크 컨텍스트에 의해 동시에 중단되어서는 안 됩니다. 질문 (열림)

이 사용 지침은 AUTOSAR 사양 R20-11을 기반으로 AI 큐레이션 어시스턴트에 의해 자동 생성되었습니다.

함수 SecOC_VerificationStatusCallout [SWS_SecOC_00119] 📄 PDF

void SecOC_VerificationStatusCallout (SecOC_VerificationStatusType verificationStatus);

Service is used to propagate the status of each verification attempt from the Sec OC module to other modules. This service can be configured such that:  Only: "False" Verifica tion Status is propagated to modules  Both: "True" and "False" Verification Status are propagated to modules  None: No Verification Status is propagated

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: a7aa9530a7de 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 콜아웃 함수 SecOC_VerificationStatusCallout은(는) SecOC 모듈의 검증 시도 상태를 외부 소프트웨어 모듈로 전달하는 역할을 합니다 [SWS_SecOC_00119]. 이는 헤더 SecOC_Externals.h을(를) 통해 선언되며 서비스 ID 0x50을(를) 갖습니다 [SWS_SecOC_00119]. 입력 매개변수 verificationStatus(타입 SecOC_VerificationStatusType)을 통해 특정 Freshness Value ID 및 Data ID에 대한 검증 결과를 묶은 데이터 구조체가 전달됩니다 [SWS_SecOC_00119]. 함수에는 출력 매개변수와 반환값이 없습니다(반환 타입 void) [SWS_SecOC_00119].

상태 전달 동작은 구성 가능하며 세 가지 형태를 지원합니다 [SWS_SecOC_00119]:

  • Only: 실패한 검증 시도(“False”)만 전파됩니다.
  • Both: 성공(“True”) 및 실패(“False”) 검증 상태가 모두 모듈로 전달됩니다.
  • None: 검증 상태가 전달되지 않습니다.

동시성과 관련하여 SecOC_VerificationStatusCallout은(는) 서로 다른 Freshness Value ID에 대해서는 reentrant이지만, 동일한 Freshness Value ID에 대해서는 non-reentrant입니다 [SWS_SecOC_00119]. 따라서 구현 모듈은 동일한 Freshness Value ID에 대해 경쟁 호출이 발생하지 않도록 해야 합니다. 호출 컨텍스트는 동기적으로 SecOC 모듈의 내부 검증 루틴 범위 내에 있을 것으로 보입니다. 질문 Q-cd6928ca22d48f54 (열림) 이 콜아웃에 대해 특정 오류 코드나 DET 및 DEM으로의 보고는 정의되어 있지 않습니다 [SWS_SecOC_00119].

이 사용 지침은 AI에 의해 생성되었으며 AUTOSAR 릴리스 R20-11의 사양 데이터만을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 SecOC_VerifyStatus [SWS_SecOC_91014] 📄 PDF

void SecOC_VerifyStatus (SecOC_VerificationStatusType verificationStatus);

This s ervice provides the ability to inform the application about the result of the verification attempt of a received PDU by the Sec OC module.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 40383ff847fc 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 의미론

동기 함수 SecOC_VerifyStatus은(는) SecOC 모듈에 의한 수신 PDU의 검증 시도 결과를 애플리케이션에 알립니다 [SWS_SecOC_91014]. 이 인터페이스는 서비스 ID 0x53을(를) 가지며, 값을 반환하지 않고(void), 헤더 SecOC_Externals.h을(를) 통해 제공됩니다 [SWS_SecOC_91014].

매개변수

유일한 전달 매개변수로 SecOC_VerificationStatusType 타입의 In 매개변수 verificationStatus이(가) 사용됩니다 [SWS_SecOC_91014]. 이 구조체는 검증 상태에 대한 세부 정보와 검증이 수행된 Data ID 및 Freshness Value ID 정보를 제공합니다 [SWS_SecOC_91014]. 추가 입력 또는 출력 매개변수는 존재하지 않습니다 [SWS_SecOC_91014].

오류 처리 및 동시성

특정 오류 코드 및 DET 또는 DEM에 대한 통지는 이 서비스에 대해 정의되어 있지 않습니다 [SWS_SecOC_91014]. 해석: 실패한 검증은 주로 전달된 구조체 verificationStatus 내의 상태 값을 통해 애플리케이션에 전달될 것으로 추정됩니다. 질문 Q-177be3d746f99b24 (열림) 동시성과 관련하여 SecOC_VerifyStatus은(는) 동일한 Freshness Value ID에 대해서는 non-reentrant이지만 서로 다른 Freshness Value ID에 대해서는 reentrant합니다 [SWS_SecOC_91014].

이 텍스트는 AI에 의해 생성되었으며 가이드 역할을 합니다. AUTOSAR 사양이 결정적인 기준입니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 SecOC_StateType [SWS_SecOC_00162] 📄 PDF

States of the Sec OC module

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 9d4be727e8c2 출처 열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

열거형 SecOC_StateType은 SecOC 모듈의 내부 작동 상태를 형식적으로 나타내는 역할을 하며, 헤더 파일 SecOC.h을 통해 제공됩니다 [SWS_SecOC_00162]. 이를 통해 소프트웨어 컴포넌트의 전체 라이프사이클에 걸쳐 일관된 상태 관리가 가능합니다.

사양에 따라 이 열거형의 값 범위는 정확히 두 개의 이산 상태로 구성됩니다 [SWS_SecOC_00162]:

  • SECOC_UNINIT: SecOC 모듈이 초기화되지 않았음을 명확하게 알립니다 [SWS_SecOC_00162].
  • SECOC_INIT: SecOC 모듈이 초기화되었음을 확정적으로 나타냅니다 [SWS_SecOC_00162].

상호 작용 및 순서 조건과 관련하여 SECOC_UNINIT은 시스템 시작 직후의 기본 상태를 나타내는 것으로 추정됩니다. 질문 Q-4d02fe3a0979113f (열림) 이 단계에서는 필요한 데이터 구조가 아직 준비되지 않았기 때문에 메시지의 암호화 보안 적용 또는 검증을 위한 기능적 호출이 거부될 수 있습니다. 모듈 초기화가 성공적으로 완료된 후에야 상태가 SECOC_INIT(으)로 변경되는 것으로 보입니다. 호출 모듈이나 내부 모니터링 루틴은 현재 작동 상태를 동기적으로 확인하고 초기화 전의 허용되지 않은 액세스를 안정적으로 차단하기 위해 SecOC_StateType을(를) 참조할 것으로 추정됩니다.

이 텍스트는 AI에 의해 작성되었으며 AUTOSAR R20-11의 사양 데이터만을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 SecOC_VerificationResultType [SWS_SecOC_00149] 📄 PDF

Enumeration to indicate veri fication results.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 9b4c5c47c73b 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

열거형 타입 SecOC_VerificationResultType은(는) SecOC 모듈에서 보안 I-PDU 검증 시 결과를 알리는 데 사용되며 헤더 Rte_SecOC_Type.h을(를) 통해 제공됩니다 [SWS_SecOC_00149].

이 열거형은 검증 상태를 구별하기 위해 다음과 같은 결과 값을 명시합니다 [SWS_SecOC_00149]:

  • SECOC_VERIFICATIONSUCCESS (0x00): 데이터 검증에 성공했습니다 [SWS_SecOC_00149].
  • SECOC_VERIFICATIONFAILURE (0x01): 검증에 실패했습니다 [SWS_SecOC_00149].
  • SECOC_FRESHNESSFAILURE (0x02): 잘못된 Freshness 값으로 인해 검증에 실패했습니다 [SWS_SecOC_00149].
  • SECOC_AUTHENTICATIONBUILDFAILURE (0x03): 인증 코드의 잘못된 구성으로 인해 검증에 실패했습니다 [SWS_SecOC_00149].
  • SECOC_NO_VERIFICATION (0x04): 검증을 건너뛰고 데이터가 변경 없이 상위 계층으로 전달되었습니다. 이 상태는 상태 재정의 SecOC_VerifyStatusOverride이(가) 활성화된 경우에만 가능합니다 [SWS_SecOC_00149].
  • SECOC_VERIFICATIONFAILURE_OVERWRITTEN (0x05): 검증에 실패했으나 재정의 상태로 인해 I-PDU가 상위 계층으로 전달되었습니다. 이 상태 역시 오직 SecOC_VerifyStatusOverride을(를) 사용할 때만 발생합니다 [SWS_SecOC_00149].

상위 계층은 이러한 값을 기반으로 검증이 정상적으로 성공했는지, 암호화 코드나 Freshness 값으로 인해 실패했는지, 또는 관리 재정의 상태가 데이터 전달을 제어했는지를 정밀하게 평가할 수 있습니다 [SWS_SecOC_00149].

이 텍스트는 AUTOSAR CP R20-11 사양을 기반으로 AI에 의해 생성되었습니다.

타입 SecOC_VerificationStatusType [SWS_SecOC_00160] 📄 PDF

Data structure to bundle the status of a verification attempt for a specific Freshness Value and Data ID

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 98b8726de1ab 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

검증 상태 구조체의 사용

구조체 타입 SecOC_VerificationStatusType은(는) [SWS_SecOC_00160]에 따라 보안 I-PDU에 대한 검증 시도 결과를 관련 Data-ID 및 사용된 신선도 값과 함께 묶습니다. 정의는 헤더 파일 Rte_SecOC_Type.h을(를) 통해 제공되며 다음 요소를 포함합니다:

  • freshnessValueID (uint16): 해당 검증 상태를 초래한 신선도 값의 식별자 ([SWS_SecOC_00160]).
  • verificationStatus (SecOC_VerificationResultType): 검증 시도의 세부 결과 ([SWS_SecOC_00160]).
  • secOCDataId (uint16): 해당 PDU의 Data-ID ([SWS_SecOC_00160]).

요소 verificationStatus은(는) 특정 성공 및 오류 상태를 구분합니다 ([SWS_SecOC_00160]):

  • SECOC_VERIFICATIONSUCCESS: 암호화 검사가 성공했습니다.
  • SECOC_VERIFICATIONFAILURE: 검증이 실패했습니다.
  • SECOC_FRESHNESSFAILURE: 유효하지 않은 신선도 값으로 인해 검증이 실패했습니다.
  • SECOC_AUTHENTICATIONBUILDFAILURE: 잘못 생성된 인증 코드로 인해 검증이 실패했습니다.
  • SECOC_NO_VERIFICATION: 이 I-PDU에 대해 검증 시도가 수행되지 않았으며, 상위 계층으로 변경 없이 그대로 전달되었습니다.
  • SECOC_VERIFICATIONFAILURE_OVERWRITTEN: 검증은 실패했으나, 활성 Override 상태로 인해 I-PDU가 상위 계층으로 전달되었습니다.

해석: 이 타입은 검증 세부 정보를 묶으므로, 수신된 데이터의 인증 상태를 상위 계층에 알리기 위해 주로 피드백 및 알림 인터페이스에서 사용될 것으로 보입니다. 질문 Q-a1099bc88a2981e2 (열림)

이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 SecOC_OverrideStatusType [SWS_SecOC_00991] 📄 PDF

Type SecOC_OverrideStatusType.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: a5d2888a2f81 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

열거형 타입 SecOC_OverrideStatusType은(는) SecOC 모듈에서 I-PDU의 검증 상태를 재정의하기 위한 다양한 모드를 정의하며 헤더 Rte_SecOC_Type.h을(를) 통해 제공됩니다 [SWS_SecOC_00991].

열거형 타입의 값은 Authenticator 검증의 수행 여부 및 방식과 수신된 I-PDU를 처리하는 방법을 제어합니다 [SWS_SecOC_00991]:

  • SECOC_OVERRIDE_DROP_UNTIL_NOTICE (0x00): CSM 호출 없이 검증이 생략되고, I-PDU가 폐기되며 검증 결과가 SECOC_NO_VERIFICATION(으)로 설정됩니다 [SWS_SecOC_00991].
  • SECOC_OVERRIDE_DROP_UNTIL_LIMIT (0x01): 이전과 마찬가지로 검증이 중단되고 I-PDU가 폐기되지만, 재정의할 구성된 메시지 수에 도달할 때까지로 제한됩니다 [SWS_SecOC_00991].
  • SECOC_OVERRIDE_CANCEL (0x02): 검증 상태의 활성 재정의를 중단하고 일반 동작을 복원합니다 [SWS_SecOC_00991].
  • SECOC_OVERRIDE_PASS_UNTIL_NOTICE (0x40) 및 SECOC_OVERRIDE_PASS_UNTIL_LIMIT (0x42): Authenticator 검증이 수행되고 결과와 관계없이 I-PDU가 상위 계층으로 전달됩니다. 검증에 실패하면 결과가 SECOC_VERIFICATIONFAILURE_OVERWRITTEN(으)로 설정됩니다(추후 공지 시까지 또는 카운터 제한 방식) [SWS_SecOC_00991].
  • SECOC_OVERRIDE_SKIP_UNTIL_LIMIT (0x41) 및 SECOC_OVERRIDE_SKIP_UNTIL_NOTICE (0x43): 검증이 생략되고 결과는 SECOC_NO_VERIFICATION이(가) 되며, I-PDU는 상위 계층으로 전달됩니다. SecOCRxSecuredPduCollection이(가) 구성된 경우 SecOC는 SecOCRxCryptographicPdu을(를) 기다리지 않고 SecOCRxAuthenticPdu을(를) 직접 처리합니다 [SWS_SecOC_00991].

이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_SecOC
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_SecOC@rel:R20-11#64ae3264
Content hash
64ae3264
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_SecureOnboardCommunication.pdf#nameddest=SWS_SecOC_00106

초기화 및 상태

This service stops the secure onboard communication. All buffered I - PDU are removed and have to be obtained again, if needed, after Sec OC_ Init has been called. By a call to Sec OC_ De Init the AUTOSAR Sec OC module is put into a not in itialized state (Sec OC_ UNINIT).

void SecOC_DeInit (void);

Returns the version information of this module.

void SecOC_GetVersionInfo (Std_VersionInfoType* versioninfo);
SecOC_Init 함수

Initializes the the Sec OC module. Successful initialization leads to state Sec OC_ INIT. In configurations, in which Sec OC is assigned to more than one partition (i.e. Sec OC_ Main Functions are mapped to partition s), Sec OC may provide one init AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_SecureOnboardCommunication function per partition. The decision on whether a single Sec OC_ Init() function or one per partition is provided is implementation - specific. In case a given implementation provides one Sec OC_ Init() function per partition, it is up to the implementation to devise a naming pattern that prevents name clashes among the different Sec OC_ Init() functions (e.g., by adding a suffix containing short name the Ecuc Partition.

void SecOC_Init (const SecOC_ConfigType* config);

서비스 · Get…

Service SecOC_GetRxFreshness.

Std_ReturnType SecOC_GetRxFreshness (uint16 SecOCFreshnessValueID, const uint8* SecOCTruncatedFreshnessValue, uint32 SecOCTruncatedFreshnessValueLength, uint16 SecOCAuthVerifyAttempts, uint8* SecOCFreshnessValue, uint32* SecOCFreshnessValueLength);

Service SecOC_GetRxFreshnessAuthData.

Std_ReturnType SecOC_GetRxFreshnessAuthData (uint16 SecOCFreshnessValueID, const uint8* SecOCTruncatedFreshnessValue, uint32 SecOCTruncatedFreshnessValueLength, const uint8* SecOCAuthDataFreshnessValue, uint16 SecOCAuthDataFreshnessValueLength, uint16 SecOCAuthVerifyAttempts, uint8* SecOCFreshnessValue, uint32* SecOCFreshnessValueLength);

This API returns th e freshness value from the Most Significant Bits in the first byte in the array (Sec OCFreshness Value), in big endian format.

Std_ReturnType SecOC_GetTxFreshness (uint16 SecOCFreshnessValueID, uint8* SecOCFreshnessValue, uint32* SecOCFreshnessValueLength);

Service SecOC_GetTxFreshnessTruncData.

Std_ReturnType SecOC_GetTxFreshnessTruncData (uint16 SecOCFreshnessValueID, uint8* SecOCFreshnessValue, uint32* SecOCFreshnessValueLength, uint8* SecOCTruncatedFreshnessValue, uint32* SecOCTruncatedFreshnessValueLength);

서비스 · Tp…

Requests cancellation of an ongoing reception of a PDU in a lower layer transport protocol module.

Std_ReturnType SecOC_TpCancelReceive (PduIdType RxPduId);

Requests cancellation of an ongoing transmission of a PDU in a lower layer communication module.

Std_ReturnType SecOC_TpCancelTransmit (PduIdType TxPduId);

Requests transmission of a PDU.

Std_ReturnType SecOC_TpTransmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);

서비스 · 기타

Requests cancellation of an ongoing transmission of a PDU in a lower layer communication module.

Std_ReturnType SecOC_IfCancelTransmit (PduIdType TxPduId);

Requests transmission of a PDU.

Std_ReturnType SecOC_IfTransmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);

The service provides the ability to enable the sending of un - authenticated PDU to lower layer. (example: in case authentication build counter has reached the configuration value Sec OCAuthentication Build Attempts or the query of the freshness function returns E_ NOT_ OK or the calculation of the authenticator has returned a non - recoverable error such as returning E_ NOT_ OK or KEY_ FAILURE). T his service is optional (the service is available only if Sec OCDefault Authentication Information Pattern is configured). If the service is not available or the service is available but the service was called with send Default

Std_ReturnType SecOC_SendDefaultAuthenticationInformation (uint16 FreshnessValueID, boolean sendDefaultAuthenticationInformation);

This s ervice provides the ability to inform the application about the result of the verification attempt of a received PDU by the Sec OC module.

void SecOC_VerifyStatus (SecOC_VerificationStatusType verificationStatus);

Service SecOC_VerifyStatusOverride.

Std_ReturnType SecOC_VerifyStatusOverride (uint16 ValueID, SecOC_OverrideStatusType overrideStatus, uint8 numberOfMessagesToOverride);

콜백

This function is called to provide the received data of an I - PDU segment (N - PDU) to the upper layer. Each call to this function provides the next part of the I - PDU data. The si ze of the remaining buffer is written to the position indicated by buffer Size Ptr.

BufReq_ReturnType SecOC_CopyRxData (PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);

Service SecOC_CopyTxData.

BufReq_ReturnType SecOC_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);

Indication of a received PDU from a lower layer communication interface module.

void SecOC_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);

This interface is used by the Sec OC to indicate that the Secured I - PDU has been initiated for transmission.

void SecOC_SPduTxConfirmation (uint16 SecOCFreshnessValueID);

Service SecOC_StartReception.

BufReq_ReturnType SecOC_StartOfReception (PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);

Called after an I - PDU has been received via the TP API, the result indicates whether the transmission was successful or not.

void SecOC_TpRxIndication (PduIdType id, Std_ReturnType result);

This function is called after the I - PDU has been transmitted on its network, the result indicates whether the transmission was successful or not.

void SecOC_TpTxConfirmation (PduIdType id, Std_ReturnType result);

Within this API , the upper layer module (called module) shall check whether the available data fits into the buffer size reported by Pdu Info Ptr - >Sdu Length. If it fits, it shall copy its data into the buffer provided by Pdu Info Ptr - >Sdu Data Ptr and update the length of the actual copied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without changing Pdu Info Ptr.

Std_ReturnType SecOC_TriggerTransmit (PduIdType TxPduId, PduInfoType* PduInfoPtr);

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.

void SecOC_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);

콜아웃 및 예상 인터페이스

Service is used to propagate the status of each verification attempt from the Sec OC module to other modules. This service can be configured such that:  Only: "False" Verifica tion Status is propagated to modules  Both: "True" and "False" Verification Status are propagated to modules  None: No Verification Status is propagated

void SecOC_VerificationStatusCallout (SecOC_VerificationStatusType verificationStatus);

주기적

This function performs the processing of the Sec OC module's authentication and verification processing for the Rx path. Per configured Sec OCMain Function Rx instance one Sec OC_ Main Function Rx_ shall be implemented. Hereby is the short name of the Sec OCMain Function Rx configuration container in the ECU configuration.

void SecOC_MainFunctionRx (void);

This function performs the processing of the Sec OC module's authentication and verification processing for the Tx path. Per configured Sec OCMain Function Tx instance one Sec OC_ Main Function Tx_ shall be implemented. Hereby is t he short name of the Sec OCMain Function Tx configuration container in the ECU configuration.

void SecOC_MainFunctionTx (void);

타입

Configuration data structure of Sec OC module

Type SecOC_OverrideStatusType.

States of the Sec OC module

Enumeration to indicate veri fication results.

Data structure to bundle the status of a verification attempt for a specific Freshness Value and Data ID