SecOC

文档信息 Document Information

版本历史 Version History

日期(Date)

作者(Author)

版本(Version)

状态(Status)

说明(Description)

2025/01/20

Jian.Jiang

V0.1

发布(Release)

首次发布(First release)

2025/04/04

Jian.Jiang

V1.0

发布(Release)

正式发布(Official release)

参考文档 References

编号(Number)

分类(Classification)

标题(Title)

版本(Version)

1

Autosar

AUTOSAR_CP_SRS_SecureOnboardCommunication.pdf

R23-11

2

Autosar

AUTOSAR_CP_EXP_LayeredSoftwareArchitecture.pdf

R23-11

3

Autosar

AUTOSAR_CP_SWS_SecureOnboardCommunication.pdf

R23-11

4

Autosar

AUTOSAR_CP_SWS_CryptoServiceManager.pdf

R23-11

术语与简写 Terms and Abbreviations

术语 Terms

术语(Terms)

解释(Explanation)

Authentic I-PDU

真实 I-PDU 是任意的 AUTOSAR I-PDU,其内容在网络传输过程中通过安全 I-PDU 进行保护。安全内容包括完整的 I-PDU 或 I-PDU 的一部分。(A Real I-PDU is an arbitrary AUTOSAR I-PDU whose content is protected by a secure I-PDU during network transmission.) The security content includes all or part of I-PDU.

Authentication

认证是与身份识别相关的服务。此功能既适用于实体,也适用于信息本身。进行通信的双方应相互识别。(Authentication refers to the service related to identity recognition.) This function applies to both entities and information. Both parties in communication should identify each other.

Authentication Information

认证信息由新鲜度值(或其一部分)和认证器(或其一部分)组成。认证信息是 SecOC 为实现安全 I-PDU 添加的附加信息。(The authentication information consists of a freshness value (or a part thereof) and an authenticator (or a part thereof).) Authentication information is the additional information added by SecOC to ensure secure I-PDU.

Authenticator

认证器是用于提供消息认证的数据。一般来说,术语“消息认证码 (MAC)”用于对称方法,而术语“签名”或“数字签名”则指具有不同属性和约束的非对称方法。(Authenticator is the data used for message authentication.) In general, the term “Message Authentication Code (MAC)” is used for symmetric methods while the term “signature” or “digital signature” refer to the asymmetric methods with different attributes and constraints.

Secured I-PDU

安全 I-PDU 是一种 AUTOSAR I-PDU,它包含真实 I-PDU 的有效负载并辅以额外的身份验证信息。(Secure I-PDU is a kind of AUTOSAR I-PDU that contains the payload of real I-PDU and comes with additional authentication information.)

简写 Abbreviations

简写(Abbreviation)

全称(Full name)

解释(Explanation)

CSM

The AUTOSAR Crypto Service Manager

AUTOSAR 加密服务管理器

SecOC

Secure Onboard Communication

安全机载通信

MAC

Message Authentication Code

信息认证码

FV

Freshness Value

新鲜度值

简介 Introduction

SecOC 模块旨在为 PDU 级别的关键数据提供资源高效且实用的身份验证机制。主要使用带有消息认证码 (MAC) 的对称认证方法。

The SecOC module provides a mechanism featuring efficient and practical resources for critical data at the PDU level. Symmetric authentication method with message authentication codes (MAC) is mainly used.

它们使用比非对称方法小得多的密钥实现相同的安全级别,并且可以在软件和硬件中紧凑高效地实现。也可以使用对称方法和非对称认证方法。

They use the keys that are much smaller than asymmetric methods to achieve the security of the same level compactly and efficiently in software and hardware. Both symmetric and asymmetric authentication methods can also be used.

SecOC模块层次图 (SecOC Module Layer Diagram)

SecOC模块层次图. (SecOC Module Layer Diagram.)

如图 SecOC模块层次图. (SecOC Module Layer Diagram.) 所示,SecoC模块处于AUTOSAR架构中的通信服务层,其上下层模块都为PduR模块。

As shown in the figure SecOC模块层次图. (SecOC Module Layer Diagram.) , the SecoC module is in the communication service layer of the AUTOSAR architecture. Its upper and lower layer modules are all PduR modules.

功能描述 Functional Description

特性 Features

Authentic I-PDU

Authentic I-PDU指需要进行保护以应对非法篡改和重放攻击的I-PDU。

Authentic I-PDU refers to the I-PDU that should be well protected from illegal tampering and replay attacks.

Secured I-PDU

Secured I-PDU由Authentic I-PDU和Authenticator (eg: MAC )组成。同时Secured IPDU中可以附加Secured I-PDU Header和FreshnessValue信息。

Secured I-PDU consists of Authentic I-PDU and Authenticator (e.g.: MAC ). Furthermore, Secured IPDU can come with Secured I-PDU Header and FreshnessValue information.

Secured I-PDU Header指示Authentic I-PDU的长度,当没有Secured I-PDU Header时,Authentic I-PDU长度由配置获取。Freshness Value是在生成Authenticator时使用的新鲜度值。Authenticator为生成的认证信息。

Secured I-PDU Header indicates the length of Authentic I-PDU. If there is no Secured I-PDU Header, the length of Authentic I-PDU is gotten by configuration. Freshness Value is the value used for generating Authenticator. Authenticator is the generated authentication information.

Secured I-PDU

Secured I-PDU.

Secured I-PDU 中的原始 I-PDU 的长度、新鲜度值和认证器可能因一个唯一不可定义的Secured I-PDU 而异。

The length, freshness value, and authenticator of the original I-PDU in a Secured I-PDU may vary due to a unique undefined Secured I-PDU.

Secured I-PDU 中包含的身份验证器长度(参数 SecOCAuthInfoTruncLength)特定于唯一可识别的Secured I-PDU。通过为每个Secured I-PDU 提供 MAC 截断长度的细粒度配置,这允许在整个系统中提供灵活性(即两个独立的唯一Secured I-PDU 可能具有包含在Secured I-PDU 有效负载中的不同身份验证器长度)。

The length of the authenticator (parameter SecOCAuthInfoTruncLength) contained in the Secured I-PDU is specific to the unique identifiable Secured I-PDU. By providing fine-grained configuration of MAC truncation length for each Secured I-PDU, the flexibility in the entire system can be ensured (i.e., two independent unique Secured I-PDUs may have different lengths of authenticators included in the Secured I-PDU payload).

带有截断新鲜度计数器和截断认证器的Secured I-PDU 内容示例(Instance of Secured I-PDU content with truncated freshness counter and truncated authenticator)

带有截断新鲜度计数器和截断认证器的Secured I-PDU 内容示例. (Instance of Secured I-PDU content with truncated freshness counter and truncated authenticator.)

Authenticator 涵盖的数据 Data Covered by Authenticator

计算认证器所依据的数据包括安全 I-PDU 的数据标识符(参数 SecOCDataId)、真实 I-PDU 数据和完整新鲜度值。这些分别连接在一起,组成位数组,传递给认证算法以生成/验证认证器。

The data used by the computational authenticator includes the data identifier (parameter SecOCDataId) of the secure I-PDU, real I-PDU data, and complete freshness value. These are connected respectively to form a bit group, which is transmitted to the authentication algorithm to generate/verify the authenticator.

DataToAuthenticator = Data Identifier | secured part of the Authentic I-PDU | Complete Freshness Value

Freshness Value

使用Freshness Values能保证生成Secured I-PDU的新鲜度。通常FreshnessValue由新鲜度管理器(FVM)管理,SecOC使用FreshnessValueId从FVM获取相应的新鲜度值。此外,新鲜度值可以从Authentic I-PDU中截取一部分作为新鲜度值,截取开始的位置和长度由配置确定。

Freshness Values can ensure the freshness of the generated Secured I-PDU. In general, FreshnessValue is managed by the Freshness Value Manager (FVM), and SecOC obtains the corresponding freshness value from FVM by using FreshnessValueId. In addition, a portion of the freshness value can be extracted from the Authentic I-PDU as the freshness value. The starting position and length of the extraction are determined by configuration.

根据配置Secured I-PDU中可以不包含,包含完整或者部分的新鲜度值。

Secured I-PDU may contain no, complete or part of the freshness value based on the specific configuration.

SecOC和PduR的关系 Relationship Between SecOC and PduR

SecOC需要和PduR进行交互,用于获取和发送数据。

SecOC needs to interact with PduR to get and send data.

发送数据时,SecOC先作为PduR的下层模块,从PduR获取Authentic I-PDU,将Authentic I-PDU转换为Secured I-PDU之后,SecOC又作为PduR的上层模块,发送数据。

To send data, SecOC serves as a lower layer module of PduR to get Authentic I-PDU from PduR, and convert Authentic I-PDU to Secured I-PDU. Then SecOC serves as an upper layer module of PduR to send data.

接收数据时,SecOC先作为PduR的上层模块,从PduR接收Secured I-PDU。SecOC从Secured I-PDU中解析出Authentic I-PDU并通过校验之后,SecOC又作为PduR的下层模块,通过PduR将数据传递给上层。

To receive data, SecOC serves as the upper layer module of PduR to receive Secured I-PDU from PduR. After parsing the Authentic I-PDU from the Secured I-PDU and passing the verification, SecOC acts as a lower layer module of PduR to transmit the data to the upper layer through PduR.

SecOC和PduR的关系 (Relationship between SecOC and PduR)

SecOC和PduR的关系. (Relationship Between SecOC and PduR.)

认证I-PDU(发送)功能 Certificate I-PDU (Sending) Function

通过向原始 I-PDU 添加认证信息来创建安全 I-PDU。

A secure I-PDU is created by adding authentication information to the original I-PDU.

创建安全 I-PDU 以及对原始 I-PDU 的认证包括以下六个步骤:

Creating a secure I-PDU and authenticating the original I-PDU requires the following six steps:

1.准备安全的 I-PDU;

1.Prepare a secure I-PDU;

2.为验证器构建数据;

2.Build data for validator;

3.生成验证器;

3.Generate validator;

4.构建安全的 I-Pdu;

4.Build a secure I-Pdu;

5.增加新鲜度计数器;

5.Prepare more freshness value counter;

6.通过PduR发送安全I-PDU。

6.Send I-PDU via PduR.

上层调用SecOC_IfTransmit()或者SecOC_TpTransmit()发起Secured I-PDU的发送过程。

The upper layer calls SecOC_ifTransmit() or SecOC_TpTTransmit() to initiate the sending of Secured I-PDU sending.

对于直接发送,SecOC从SecOC_IfTransmit()函数的PduInfo中获取Authentic I-PDU。对于TP发送,SecOC需要分多次调用PduR_SecOCTpCopyTxData()获取Authentic I-PDU。

For direct sending, SecOC gets the Authentic I-PDU from PduInfo in the SecOC_IfTransmit() function. For sending via TP, SecOC has to finish sending by several times.Call PduR_SecOCTpCopyTxData() to get Authentic I-PDU.

获取到Authentic I-PDU之后,SecOC根据配置的FreshnessValue相关属性,取得FreshnessValue,再根据DataToAuthenticator的生成规则,构建DataToAuthenticator。

After obtaining the Authentic I-PDU, SecOC will obtain the FreshnessValue based on the configured FreshnessValue related attributes and then construct the DataToAAuthenticator according to the generation rules of the DataToAAuthenticator.

SecOC调用CSM模块的接口,将DataToAuthenticator传递给CSM。CSM模块根据输入的DataToAuthenticator等参数,计算生成Authenticator。

SecOC transmits the DataToAuthenticator to CSM by calling the interface of CSM module. The CSM module calculates and generates an Authenticator based on input parameters such as DataToAuthenticator.

生成Authenticator后,SecOC根据配置生成Secured I-PDU。之后SecOC调用PduR的发送接口将Secured I-PDU一次(If)或者多次(TP)发送出去。

After generating the Authenticator, SecOC will generate Secured I-PDU based on the configuration. Afterwards, SecOC calls the sending interface of PduR to send the Secured I-PDU (If) once or (TP) several times.

验证I-PDU(接收)功能 Verify I-PDU (Receiving) Function

将安全 I-PDU 中包含的认证信息与基于本地数据标识符、本地新鲜度值和安全 I-PDU 中包含的原始 I-PDU 计算出的认证信息进行比较的过程。

It refers to the process of comparing the authentication information contained in the secure I-PDU with the authentication information calculated based on the local data identifier, local freshness value and the original I-PDU contained in the secure I-PDU.

安全 I-PDU 的验证包括以下六个步骤:

The verification of secure I-PDU includes the following six steps:

1.解析原始的 I-PDU、新鲜度值和身份验证器;

1.Analyze the original I-PDU, freshness value, and authenticator;

2.从新鲜度管理器获取新鲜度值;

2.Get freshness values from the freshness manager;

3.构建数据进行身份验证;

3.Build data for authentication;

4.验证身份验证信息;

4.Verify identity verification information;

5.向新鲜度经理发送确认信息;

5.Send confirmation message to the freshness manager;

6.将原始的I-PDU传递给上层。

6.Transmit the original I-PDU to the upper layer.

PduR收到需要校验的I-PDU时,调用SecOC_RxIndication()或者SecOC_StartOfReception()通知SecOC。SecOC将Secured I-PDU缓存到本地后开始校验I-PDU处理流程。

Upon receiving I-PDU that needs verifying, PduR will call SecOC_RxIndication() or SecOC_StartOfReception() to notify SecOC. SecOC caches the Secured I-PDU locally first and then starts verifying the I-PDU processing flow.

在MainFunction中,SecOC从Secured I-PDU中解析出Authentic I-PDU,FreshnessValue以及Authenticator。从新鲜度值管理器(FVM)中获取FreshnessValue,然后和Authentic I-PDU以及DataId组成DataToAuthenticator。

In MainFunction, SecOC parses Authentic I-PDU, FreshnessValue and Authenticator from Secured I-PDU. Get FreshnessValue from the Freshness Value Manager (FVM), and then combine it with Authentic I-PDU and DataId to form a DataToAuthenticator.

SecOC将DataToAuthenticator以及从接收报文中解析出来的Authenticator传递给CSM。CSM校验后将是否从成功的结果反馈给SecOC。

SecOC transmits the DataToAuthenticator and the Authenticator parsed from the received message to CSM. After verification, CSM will feed back the results to SecOC.

如果校验成功,SecOC 向FVM发送确认信息,FVM根据该信息维护FV。

If verification is successful, SecOC will send confirmation message to FVM, which will maintain FV based on the information.

SecOC调用PduR接口将Authentic I-PDU分一次(IF)或多次(TP)传递给上层。

SecOC transmits the Authentic I-PDU to the upper layer (IF) once or (TP) several times by calling the PduR interface.

Override功能 Function of Override

Override功能是一种特殊的可以干扰SecOC正常接收处理流程的机制。根据设置的Override策略,SecOC可能会不执行校验机制,或者在校验失败时也会将Authentic I-PDU传递给上层模块。

The Override function is a special mechanism that can interfere with the normal receiving and processing flow of SecOC. According to the set Override strategy, SecOC may not execute the verification mechanism, or transmit the Authentic I-PDU to the upper layer module when verification fails.

SecOC会在进行校验前判断Override功能设置的策略,决定是否需要调用CSM的接口进行数据校验。并且在校验结束后,根据Override功能设置的策略决定是否将需要将Authentic I-PDU传递给上层模块。

SecOC will decide whether to call CSM’s interface for data verification based on the strategies set for the Override function before verification. After verification ends, it will decide whether to transmit the Authentic I-PDU to the upper layer module based on the strategy of Override function setting.

Override策略如下表所示:

Override strategy is shown in the table below:

策略(Strategy)

说明(Description)

SECOC_OVERRIDE_DROP_UNTIL_NOTICE

直至另行通知,不执行验证器验证(无 CSM 呼叫)I-PDU 被丢弃,验证结果设置为 SECOC_NO_VERIFICATION。(Unless otherwise notified, validator verification will not be performed (no CSM call) and I-PDU will be discarded. The verification result will be set to SECOC_NO_VERIFICATION.)

SECOC_OVERRIDE_DROP_UNTIL_LIMIT

直到达到 NumberOfMessagesTo Override,才执行验证器验证(无 CSM 呼叫)I-PDU 被丢弃,验证结果设置为 SECOC_NO_VERIFICATION。(Validator verification will not be performed (no CSM call) and the I-PDU will be discarded until the NumberOfMessages To Override is reached. The verification result will be set to SECOC_NO_VERIFICATION.)

SECOC_OVERRIDE_CANCEL

取消覆盖 VerifyStatus。(Cancel the coverage of VerifyStatus.)

SECOC_OVERRIDE_PASS_UNTIL_NOTICE

除非另行通知,否则执行验证器验证,无论验证结果如何,I-PDU 都会发送到上层,如果验证失败,则将验证结果设置为 SECOC_VERIFICATIONFAILURE_OVERWRITTEN。(Unless otherwise notified, validator verification will be performed. Whatever the verification result, I-PDU will transmit it to the upper layer. If verification fails, the verification result will be set to SECOC_VERIFICATIONFAILURE_OVERWRITTEN.)

SECOC_OVERRIDE_SKIP_UNTIL_LIMIT

直到达到 NumberOfMessagesTo Override 时,才进行认证器验证,将 I-PDU 发送到上层,验证结果设置为 SECOC_NO_VERIFICATION。如果配置了 SecOCRxSecuredPduCollection,SecOc 应处理 SecOCRxAuthentic Pdu,而无需等待 SecOCRx CryptographicPdu。(The authenticator verification will not be performed and the I-PDU will not be transmitted to the upper layer until the NumberOfMessages To Override is reached. The verification result will be set to SECOC_NO_VERIFICATION.) If SecOCRxSecuredPduCollection is configured, SecOc should process SecOCRxAuthentic Pdu without waiting for SecOCRx CryptographicPdu.

SECOC_OVERRIDE_PASS_UNTIL_LIMIT

直到达到 NumberOfMessagesTo Override 为止,执行验证器验证,无论验证结果如何,I-PDU 都会发送到上层,如果验证失败,则将验证结果设置为 SECOC_VERIFICATIONFAILURE_OVERWRITTEN。(The validator verification will not be performed until NumberOfMessagesTo Override is reached. Whatever the verification results, I-PDU will transmit it to the upper layer. If verification fails, the verification result will be set to SECOC_VERIFICATIONFAILURE_OVERWRITTEN.)

SECOC_OVERRIDE_SKIP_UNTIL_NOTICE

除非另行通知,否则不执行认证器验证,I-PDU 被发送到上层,验证结果设置为 SECOC_NO_VERIFICATION。如果配置了 SecOCRxSecuredPduCollection,SecOc 应处理 SecOCRxAuthentic Pdu,而无需等待 SecOCRx CryptographicPdu。(Unless otherwise notified, authentication verification will not be performed and I-PDU will be transmitted to the upper layer. The verification result will be set to SECOC_NO_VERIFICATION.) If SecOCRxSecuredPduCollection is configured, SecOc should process SecOCRxAuthentic Pdu without waiting for SecOCRx CryptographicPdu.

多核分布 Multi-core Distribution

为了在不同分区之间提供负载分配,Crypto-Stack 的不同部分应分配给不同的分区。因此,应支持这种分区基于加密实例进行,即加密驱动程序实例应可定位到不同的不同分区上。

To provide load distribution between different partitions, different parts of Crypto Stack should be allocated to different partitions. Therefore, this partition should be supported based on encrypted instances; in other words, the encrypted driver instances can be located on different partitions.

SecOC 模块中的主执行线程(即相应的 MainFunctions)可以拆分为不同的 MainFunctions(每个分区至少一个)。

The main executing threads (i.e. corresponding MainFunctions) in the SecOC module can be split into different MainFunctions (at least one for each partition).

SecOC 和 PduR 之间的分区间通信由 PduR 管理。

The communication between SecOC and PduR is managed by PduR.

偏差 Deviation

None

扩展 Extension

None

集成 Integration

文件列表 File List

静态文件 Static Files

文件(File)

描述(Description)

SecOC.h

SecOC模块头文件,包含了API函数的扩展声明并定义了端口的数据结构(The SecOC module header file contains extension declarations for API functions and defines the data structure of port.)

SecOC_Cbk.h

SecOC模块对外提供的回调函数声明(Declares the callback functions provided by SecOC module externally)

SecOC_Externals.h

SecOC模块对外提供的API函数声明(Declares the API function provided by SecOC externally)

SecOC_Internal.h

SecOC内部需要使用的数据类型,宏定义等(-Data type, macro definition, etc. required for use within SecOC)

SecOC_MemMap.h

SecOC变量和函数存储位置定义文件(Files for defining the storage location of SecOC variable and function)

SecOC_Types.h

SecOC数据类型定义(Defines the data type of SecOC)

SecOC.c

SecOC模块源文件,包含了API函数的实现。(The SecOC module source file, which contains the realization of API functions.)

动态文件 Dynamic Files

文件(File)

描述(Description)

SecOC_Callout.c

SecOC定义的Callout函数源文件(Source file of Callout function defined by SecOC)

SecOC_Callout.h

SecOC定义的Callout函数头文件(Callout function header file defined by SecOC)

SecOC_Cfg.c

定义SecOC模块中PC配置参数(Defines PC configuration parameters in SecOC module)

SecOC_Cfg.h

定义SecOC模块预编译时用到的配置参数(Defines the configuration parameters used for pre-compiling SecOC modules)

SecOC_Lcfg.c

定义SecOC模块中连接时用到的配置参数(Defines the configuration parameters used for connections in SecOC module)

SecOC_Lcfg.h

SecOC模块连接时用到的配置参数(Configuration parameters used for connecting SecOC module)

SecOC_PBcfg.c

定义SecOC模块中PB配置参数(Defines PB configuration parameters in SecOC module)

SecOC_PBcfg.h

SecOC模块PB配置参数(PB configuration parameters in SecOC module)

错误处理 Error Handling

开发错误 Development Errors

Error code

Value[hex]

Description

SECOC_E_PARAM_POINTER

0x01

An API service was called with a NULL pointer

SECOC_E_UNINIT

0x02

API service used without module initialization

SECOC_E_INVALID_PDU_SDU_ID

0x03

Invalid I-PDU identifier

SECOC_E_CRYPTO_FAILURE

0x04

Crypto service failed

SECOC_E_INIT_FAILED

0x07

initialization of SecOC failed

产品错误 Product Errors

None

运行时错误 Runtime Errors

Error code

Value[hex]

Description

SECOC_E_FRESHNESS_FAILURE

0x08

NO freshness value available from the Freshness Manager

接口描述 Interface Description

类型定义 Type Definitions

Type Name

Type

Description

SecOC_SameBufferPduCollectionType

struct SecOC_SameBufferPduCollectionTag

Define SecOC Buffer configuration that may be used by a collection of Pdus.

SecOC_ReceptionOverflowStrategyType

enum SecOC_ReceptionOverflowStrategyTag

Define strategy for handling PDUs when the received buffer overflows.

SecOC_VeriStatusPropModeType

enum SecOC_VeriStatusPropModeTag

Define which authentication state is passed to the SWC.

SecOC_PduType

enum SecOC_PduTag

Define the type of API.

SecOC_CryptoProcessingType

enum SecOC_CryptoProcessingTag

Define the encryption and decryption process, synchronous or asynchronous.

SecOC_CsmPrimitivesType

enum SecOC_CsmPrimitivesTag

Define the Csm primitive, MAC or SIGNATURE.

SecOC_CsmJobType

struct SecOC_CsmJobTag

Define information about the Csm job.

SecOC_RxSecuredPduType

struct SecOC_RxSecuredPduTag

Define the Pdu that is received by the SecOC module from the PduR.

SecOC_RxAuthenticPduType

struct SecOC_RxAuthenticPduTag

Define the Authentic Pdu that is received by the SecOC module from the PduR.

SecOC_RxCryptographicPduType

struct SecOC_RxCryptographicPduTag

Define the Cryptographic Pdu that is received by the SecOC module from the PduR.

SecOC_UseMessageLinkType

struct SecOC_UseMessageLinkTag

Define information about the message linker.SecOC links an Authentic I-Pdu and Cryptographic I-Pdu together by repeating a specific part (Message Linker) of the Authentic I-Pdu in the Cryptographic I-Pdu.

SecOC_QueueInfoType

struct SecOC_QueueInfoTag

Define information about the queue where PDUs reside.

SecOC_RxPduProcessingType

struct SecOC_RxPduProcessingTag

Define the processing information of the Rx Pdu.

SecOC_TxPduProcessingType

struct SecOC_TxPduProcessingTag

Define the processing information of the Tx Pdu.

SecOC_RxSecuredPduCollectionType

struct SecOC_RxSecuredPduCollectionTag

When Secured I-Pdu is received in Authentic I-Pdu and CryptoGraphic I-Pdu, specify all information of this Secured I-Pdu.

SecOC_RxSecuredPduLayerType

struct SecOC_RxSecuredPduLayerTag

Define information about the two types of Rx Secured I-PDUs.

SecOC_RxPduSecuredAreaType

struct SecOC_RxPduSecuredAreaTag

Define an area in the Authentic I-Pdu that will be the input to the Authenticator verification algorithm.

SecOC_RxAuthenticPduLayerType

struct SecOC_RxAuthenticPduLayerTag

Define the Pdu that is received by the SecOC module from the PduR.

SecOC_PbRxPduProcessingType

struct SecOC_PbRxPduProcessingTag

Define the information at the post-build phase to configure the RxPdus to be verified by the SecOC module.

SecOC_TxSecuredPduType

struct SecOC_TxSecuredPduTag

Define one Pdu that is transmitted by the SecOC module to the PduR after the Mac was generated.

SecOC_TxAuthenticPduType

struct SecOC_TxAuthenticPduTag

Define the Pdu (that is transmitted by the SecOC module to the PduR) which contains the Secured I-Pdu Header and the Authentic I-Pdu.

SecOC_TxCryptographicPduType

struct SecOC_TxCryptographicPduTag

Define the Cryptographic Pdu that is transmitted.

SecOC_TxSecuredPduCollectionType

struct SecOC_TxSecuredPduCollectionTag

Define the Pdu that is transmitted by the SecOC module to the PduR after the Mac was generated.Two separate Pdus are transmitted to the PduR:Authentic I-Pdu and Cryptographic I-Pdu.

SecOC_TxSecuredPduLayerType

struct SecOC_TxSecuredPduLayerTag

Define the Pdu that is transmitted by the SecOC module to the PduR after the Mac was generated.

SecOC_TxPduSecuredAreaType

struct SecOC_TxPduSecuredAreaTag

Define an area in the Authentic I-Pdu that will be the input to the Authenticator generation algorithm.

SecOC_TxAuthenticPduLayerType

struct SecOC_TxAuthenticPduLayerTag

Define the Pdu that is transmitted by the SecOC module to the PduR after the Mac was verified.

SecOC_PbTxPduProcessingType

struct SecOC_PbTxPduProcessingTag

Define the information at the post-build phase to configure the TxPdus to be secured by the SecOC module.

SecOC_PbConfigType

struct SecOC_PbConfigTag

Define configuration information at the post-build phase for the SecOC module.

SecOC_ReceptionOverflowStrategyTag

enum

Define strategy for handling PDUs when the received buffer overflows.

SecOC_VeriStatusPropModeTag

enum

Define which authentication state is passed to the SWC.

SecOC_PduTag

enum

Define the type of API.

SecOC_CryptoProcessingTag

enum

Define the encryption and decryption process, synchronous or asynchronous.

SecOC_CsmPrimitivesTag

enum

Define the Csm primitive, MAC or SIGNATURE.

Type Name

Type

Description

SecOC_StateType

enum SecOC_StateTag

States of the SecOC module.

SecOC_ConfigType

SecOC_PbConfigType

Structure for the configuration of the SecOC module.

SecOC_StateTag

enum

States of the SecOC module.

提供的服务 Services

SecOC_Init

void SecOC_Init(const SecOC_ConfigType *config)

Initializes the the SecOC module.

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

config

Pointer to a selected configuration structure.

Return type

void

SecOC_DeInit

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 SecOC_Init has been called.

Sync/Async

TRUE

Reentrancy

Non Reentrant

Return type

void

SecOC_GetVersionInfo

void SecOC_GetVersionInfo(Std_VersionInfoType *versioninfo)

Returns the version information of this module.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[inout]

versioninfo

Pointer to where to store the version information of this module.

Return type

void

SecOC_IfTransmit

Std_ReturnType SecOC_IfTransmit(PduIdType TxPduId, const PduInfoType *PduInfoPtr)

Requests transmission of a PDU.

Sync/Async

TRUE

Reentrancy

Reentrant for different PduIds.

Parameters

Dir

Name

Description

[in]

TxPduId

Identifier of the PDU to be transmitted.

[in]

PduInfoPtr

Length of and pointer to the PDU data and pointer to MetaData.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Transmit request has been accepted.

E_NOT_OK

Transmit request has not been accepted.

SecOC_TpTransmit

Std_ReturnType SecOC_TpTransmit(PduIdType TxPduId, const PduInfoType *PduInfoPtr)

Requests transmission of a PDU.

Sync/Async

TRUE

Reentrancy

Reentrant for different PduIds.

Parameters

Dir

Name

Description

[in]

TxPduId

Identifier of the PDU to be transmitted.

[in]

PduInfoPtr

Length of and pointer to the PDU data and pointer to MetaData.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Transmit request has been accepted.

E_NOT_OK

Transmit request has not been accepted.

SecOC_IfCancelTransmit

Std_ReturnType SecOC_IfCancelTransmit(PduIdType TxPduId)

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

Sync/Async

TRUE

Reentrancy

Reentrant for different PduIds.

Parameters

Dir

Name

Description

[in]

TxPduId

Identification of the PDU to be cancelled.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Cancellation was executed successfully by the destination module.

E_NOT_OK

Cancellation was rejected by the destination module.

SecOC_TpCancelTransmit

Std_ReturnType SecOC_TpCancelTransmit(PduIdType TxPduId)

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

Sync/Async

TRUE

Reentrancy

Reentrant for different PduIds.

Parameters

Dir

Name

Description

[in]

TxPduId

Identification of the PDU to be cancelled.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Cancellation was executed successfully by the destination module.

E_NOT_OK

Cancellation was rejected by the destination module.

SecOC_TpCancelReceive

Std_ReturnType SecOC_TpCancelReceive(PduIdType RxPduId)

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

Sync/Async

TRUE

Reentrancy

Non Reentrant

Parameters

Dir

Name

Description

[in]

RxPduId

Identification of the PDU to be cancelled.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Cancellation was executed successfully by the destination module.

E_NOT_OK

Cancellation was rejected by the destination module.

SecOC_VerifyStatusOverride

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

This service provides the ability to force specific behaviour of SecOc: accept or drop an I-PDU with or without performing the verification of authenticator or independent of the authenticator verification result, and force a specific result for SecOC_VerificationResultType allowing additional fault handling in the application.

Sync/Async

TRUE

Reentrancy

Reentrant for different Freshness ValueIDs

Parameters

Dir

Name

Description

[in]

ValueID

ID of the Freshness Value used to control the verification behaviour of all assigned Secured I-PDUs according to the override Status.Or ValueID is the DataID of a Secured I-PDU that shall be controlled by the overrideStatus.

[in]

overrideStatus

Defines whether verification is executed and whether the I-PDU is passed on, and for how long the override is active.

[in]

numberOfMessagesToOverride

Number of sequential verification to override when using a specific counter for authentication verification.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

request successful

E_NOT_OK

request failed

SecOC_SendDefaultAuthenticationInformation

Std_ReturnType SecOC_SendDefaultAuthenticationInformation(uint16 FreshnessValueID, boolean sendDefaultAuthenticationInformation)

The service provides the ability to enable the sending of un-authenticated PDU to lower layer.

Sync/Async

TRUE

Reentrancy

Reentrant for different FreshnessValueIDs.

Parameters

Dir

Name

Description

[in]

FreshnessValueID

ID of the Freshness Value for which sending SecOCDefaultAuthenticationInformationPattern should be enabled.

[in]

sendDefaultAuthenticationInformation

FALSE - sending SecOCDefaultAuthenticationInformation Pattern shall be disabled for given FreshnessValueID TRUE - sending SecOCDefaultAuthenticationInformationPattern shall be enabled for given FreshnessValueID.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

Cancellation was executed successfully by the destination module.

E_NOT_OK

Cancellation was rejected by the destination module.

SecOC_VerifyStatus

void SecOC_VerifyStatus(SecOC_VerificationStatusType verificationStatus)

This function is called by the SecOC module to notify the BSW module about the verification status.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

verificationStatus

The verification status of the SecOC module.

Return type

void

SecOC_RxIndication

void SecOC_RxIndication(PduIdType RxPduId, const PduInfoType *PduInfoPtr)

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

Sync/Async

TRUE

Reentrancy

Reentrant for different PduIds.

Parameters

Dir

Name

Description

[in]

RxPduId

ID of the received PDU.

[in]

PduInfoPtr

Contains the length (SduLength) of the received PDU,a pointer to a buffer (SduDataPtr) containing the PDU, and the MetaData related to this PDU.

Return type

void

SecOC_TpRxIndication

void SecOC_TpRxIndication(PduIdType id, Std_ReturnType result)

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

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

id

Identification of the received I-PDU.

[in]

result

Result of the reception.

Return type

void

SecOC_TxConfirmation

void SecOC_TxConfirmation(PduIdType TxPduId, Std_ReturnType result)

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

Sync/Async

TRUE

Reentrancy

Reentrant for different PduIds.

Parameters

Dir

Name

Description

[in]

TxPduId

ID of the PDU that has been transmitted.

[in]

result

Result of the transmission.

Return type

void

SecOC_TpTxConfirmation

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.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

id

Identification of the transmitted I-PDU.

[in]

result

Result of the transmission of the I-PDU.

Return type

void

SecOC_TriggerTransmit

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 PduInfoPtr->SduLength.If it fits, it shall copy its data into the buffer provided by PduInfoPtr->SduDataPtr and update the length of the actual copied data in PduInfoPtr->SduLength. If not, it returns E_NOT_OK without changing PduInfoPtr.

Sync/Async

TRUE

Reentrancy

Reentrant for different PduIds

Parameters

Dir

Name

Description

[in]

TxPduId

ID of the SDU that is requested to be transmitted.

[inout]

PduInfoPtr

Contains a pointer to a buffer (SduDataPtr) to where the SDU data shall be copied, and the available buffer size in SduLengh.On return, the service will indicate the length of the copied SDU data in SduLength.

Return type

Std_ReturnType

Return values

Name

Description

E_OK

SDU has been copied and SduLength indicates the number of copied bytes.

E_NOT_OK

No SDU data has been copied. PduInfoPtr must not be used since it may contain a NULL pointer or point to invalid data.

SecOC_CopyRxData

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 size of the remaining buffer is written to the position indicated by bufferSizePtr.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

id

Identification of the received I-PDU.

[in]

info

Provides the source buffer (SduDataPtr) and the number of bytes to be copied (SduLength). An SduLength of 0 can be used to query the current amount of available buffer in the upper layer module. In this case, the SduDataPtr may be a NULL_PTR.

[out]

bufferSizePtr

Available receive buffer after data has been copied.

Return type

BufReq_ReturnType

Return values

Name

Description

BUFREQ_OK

Data copied successfully

BUFREQ_E_NOT_OK

Data was not copied because an error occurred.

SecOC_CopyTxData

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

This function is called to acquire the transmit data of an I-PDU segment (N-PDU).Each call to this function provides the next part of the I-PDU data unless retry->TpDataState is TP_DATARETRY . In this case the function restarts to copy the data beginning at the offset from the current position indicated by retry->TxTpDataCnt.The size of the remaining data is written to the position indicated by availableDataPtr.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

id

Identification of the transmitted I-PDU.

[in]

info

Provides the destination buffer (SduDataPtr) and the number of bytes to be copied (SduLength).

[in]

retry

This parameter is used to acknowledge transmitted data or to retransmit data after transmission problems.

[out]

availableDataPtr

Indicates the remaining number of bytes that are available in the upper layer module’s Tx buffer.

Return type

BufReq_ReturnType

Return values

Name

Description

BUFREQ_OK

Data has been copied to the transmit buffer completely as requested.

BUFREQ_E_BUSY

Request could not be fulfilled, because the required amount of Tx data is not available. The lower layer module may retry this call later on. No data has been copied.

BUFREQ_E_NOT_OK

Data has not been copied. Request failed.

SecOC_StartOfReception

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

This function is called at the start of receiving an N-SDU. The N-SDU might be fragmented into multiple N-PDUs (FF with one or more following CFs) or might consist of a single N-PDU (SF).

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

id

Identification of the I-PDU.

[in]

info

Pointer to a PduInfoType structure containing the payload data (without protocol information) and payload length of the first frame or single frame of a transport protocol I-PDU reception, and the MetaData related to this PDU. If neither first/single frame data nor MetaData are available, this parameter is set to NULL_PTR.

[in]

TpSduLength

Total length of the N-SDU to be received.

[out]

bufferSizePtr

Available receive buffer in the receiving module. This parameter will be used to compute the Block Size (BS) in the transport protocol module.

Return type

BufReq_ReturnType

Return values

Name

Description

BUFREQ_OK

Connection has been accepted. bufferSizePtr indicates the available receive buffer; reception is continued. If no buffer of the requested size is available, a receive buffer size of 0 shall be indicated by bufferSizePtr.

BUFREQ_E_NOT_OK

Connection has been rejected; reception is aborted. bufferSizePtr remains unchanged.

BUFREQ_E_OVFL

No buffer of the required length can be provided; reception is aborted. bufferSizePtr remains unchanged.

SecOC_CsmGenerateJobFinishedIndication

void SecOC_CsmGenerateJobFinishedIndication(const Crypto_JobType *job, Crypto_ResultType result)

CSM notifies SecOC that a Authenticator generate job has finished.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

job

JobID of the operation that caused the callback.

[in]

result

Contains the result of cryptographic operation.

Return type

void

SecOC_CsmVerifyJobFinishedIndication

void SecOC_CsmVerifyJobFinishedIndication(const Crypto_JobType *job, Crypto_ResultType result)

CSM notifies SecOC that a Authenticator verify job has finished.

Sync/Async

TRUE

Reentrancy

Reentrant

Parameters

Dir

Name

Description

[in]

job

JobID of the operation that caused the callback.

[in]

result

Contains the result of cryptographic operation.

Return type

void

依赖的服务 Applicable Services

强制接口 Compulsory interface

API Function

Header File

Description

Det_ReportRuntimeError

Det.h

Service to report runtime errors. If a callout has been configured then this callout shall be called.

PduR_SecOCCancelTransmit

PduR_SecOC.h

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

PduR_SecOCIfRxIndication

PduR_SecOC.h

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

PduR_SecOCIfTxConfirmation

PduR_SecOC.h

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

PduR_SecOCTransmit

PduR_SecOC.h

Requests transmission of a PDU.

可选接口 Optional Interface

API Function

Header File

Description

Csm_MacGenerate

Csm.h

Uses the given data to perform a MAC generation and stores the MAC in the memory location pointed to by the MAC pointer.

Csm_MacVerify

Csm.h

Verifies the given MAC by comparing if the MAC is generated with the given data.

Csm_SignatureGenerate

Csm.h

Uses the given data to perform the signature calculation and stores the signature in the memory location pointed by the result pointer.

Csm_SignatureVerify

Csm.h

Verifies the given signature by checking if it was generated with the given data.

Det_ReportError

Det.h

Service to report development errors.

IdsM_SetSecurityEvent

IdsM.h

This API is the application interface to report security events to the IdsM.

IdsM_SetSecurityEventWithContextData

IdsM.h

This API is the application interface to report security events with context data to the IdsM.

PduR_SecOCCancelReceive

PduR_SecOC.h

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

PduR_SecOCTpCopyRxData

PduR_SecOC.h

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 size of the remaining buffer is written to the position indicated by bufferSizePtr.

PduR_SecOCTpCopyTxData

PduR_SecOC.h

This function is called to acquire the transmit data of an I-PDU segment (N-PDU). Each call to this function provides the next part of the I-PDU data unless retry->TpDataState is TP_DATARETRY. In this case the function restarts to copy the data beginning at the offset from the current position indicated by retry->TxTpDataCnt. The size of the remaining data is written to the position indicated by availableDataPtr.

PduR_SecOCTpRxIndication

PduR_SecOC.h

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

PduR_SecOCTpStartOfReception

PduR_SecOC.h

This function is called at the start of receiving an N-SDU. The N-SDU might be fragmented into multiple N-PDUs (FF with one or more following CFs) or might consist of a single N-PDU (SF). The service shall provide the currently available maximum buffer size when invoked with TpSdu Length equal to 0.

PduR_SecOCTpTxConfirmation

PduR_SecOC.h

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

配置接口 Configuration Interfaces

API Function

Header File

Description

SecOC_VerifyStatus

SecOC_Externals.h

This service provides the ability to inform the application about the result of the verification attempt of a received PDU by the SecOC module.

SecOC_VerificationStatusCallout

SecOC_Externals.h

Service is used to propagate the status of each verification attempt from the SecOC module to other modules.

配置 Configuration

认证I-PDU配置 Certificate I-PDU Configuration

1.认证I-PDU配置主要在SecOCTxPduProcessing中进行,用户需要确认好需要保护的报文和使用的加密方式以及新鲜度管理器, 明确从哪里(上层)发送到哪里(通信栈)。

1.The authentication of I-PDU configuration is mainly carried out in SecOCTxPduProcessing. Users should confirm the messages that need protecting, the encryption method used and the freshness manager, and clarify the sending path (from upper layer to communication stack).

2.首先确认需要保护的I-PDU是否已经配置到SecOC模块中, 然后将相关报文的PduID在PduR中关联起来。

2.First, confirm whether the I-PDU that needs protecting has been configured in the SecOC module, and then link the PduID of the relevant message in PduR.

发送时将SecOC与PduR串起来 (String SecOC and PduR together during sending)

发送时将SecOC与PduR串起来 (String SecOC and PduR together during sending)

3.配置Authentic I-PDU的相关属性,包括DataId,SecOCFreshnessValueId, SecOCRxAuthServiceConfigRef等。

3.Configure relevant attributes of Authentic I-PDU, including DataId, SecOCFreshnessValueId, SecOCRxAuthServiceConfigRef, etc.

配置SecOC发送安全I-PDU (Configure SecOC to send secure I-PDU)

配置SecOC发送安全I-PDU (Configure SecOC to send secure I-PDU)

4.配置关联原始I-PDU ID

4.Configure and link original I-PDU ID

Config TxAuthentic

Config TxAuthentic

5.配置Secured I-PDU,将安全I-pdu与下层关联起来

5.Configure Secured I-PDU and link it with the lower layer

Config TxSecured

Config TxSecured.

校验I-PDU配置 Verify I-PDU Configuration

1.校验I-PDU配置主要在SecOCRxPduProcessing中进行,用户需要确认好需要校验的报文和使用的加密方式以及新鲜度管理器, 明确从哪里(通信栈)接收然后传到到哪里(上层)。

1.The verification of I-PDU configuration is mainly carried out in SecOCRxPduProcessing. Users should confirm the messages that need verifying, the encryption method used, and the freshness manager, and clarify the receiving path (from communication stack to upper layer).

2.首先确认需要校验的I-PDU是否已经配置到SecOC模块中, 然后将相关报文的PduID在PduR中关联起来。

2.First, confirm whether the I-PDU that needs verifying has been configured in the SecOC module, and then link the PduID of the relevant message in PduR.

接收时将SecOC与PduR串起来 (String SecOC and PduR together during receiving)

接收时将SecOC与PduR串起来. (String SecOC and PduR together during receiving.)

3.配置Secured I-PDU的相关属性,包括DataId,SecOCFreshnessValueId, SecOCRxAuthServiceConfigRef等。

3.Configure relevant attributes of Secured I-PDU, including DataId, SecOCFreshnessValueId, SecOCRxAuthServiceConfigRef etc.

配置接收时PduR与SecOC上层模块关联 (Link PduR and SecOC upper layer modules when receiving configuration)

配置接收时PduR与SecOC上层模块关联. (Link PduR and SecOC upper layer modules when receiving configuration.)

4.配置关联Secured I-PDU ID

4.Configure the linked Secured I-PDU ID

Config RxSecured

Config RxSecured.

5.配置Authentic I-PDU,将Authentic I-PDU与上层关联起来

5.Configure Authentic I-PDU and link it with the upper layer

Config RxAuthentic

Config RxAuthentic.

多分区配置 Multi-partition Configuration

1.在 SecOCMainFunctionRx 或者 SecOCMainFunctionTx 中,SecOC模块需要根据配置的分区信息,将不同的任务分配到不同的分区中。

1.In SecOCMainFunctionRx or SecOCMainFunctionTx, the SecOC module should allocate different tasks to different partitions based on the configured partition information.

SecOCPartition

SecOCPartition.

2.在SecOCRxPduProcessing中的SecOCRxPduMainFunctionRef 或者 SecOCTxPduProcessing中的SecOCTxPduMainFunctionRef中选择相应的分区。

2.Select the corresponding partition from SecOCRxPduMainFunctionalRef in SecOCRxPduProcessing or SecOCTxPduMainFunctionalRef in SecOCTxPduProcessing.

Override配置 Configuration of Override

1.通过配置SecOCIgnoreVerificationResult来使能忽略验证结果。

1.Enable the ignoring of verification results by configuring SecOCIgnoreVerifyResult.

2.通过调用函数SecOC_VerifyStatusOverride来覆写验证结果,或者执行过程。

2.Overwrite the verification result or execute the process by calling the function SecOC_VerifyStatusOverride.

Collection配置 Configuration of Collection

1.在SecOCRxPduProcessing或者SecOCTxPduProcessing下的SecOCRxSecuredPduLayer或SecOCTxSecuredPduLayer中配置SecOCRxSecuredPduCollection或SecOCTxSecuredPduCollection,

1.Configure SecOCRxSecuredAnduCollection or SecOCTxSecuredAnduCollection in SecOCRxSecuredAnduLayer or SecOCTxSecuredAnduLayer of SecOCRxPduProcessing or SecOCTxPduProcessing,

2.将安全分为两帧发送出去,分别为AuthenticPdu和CryptographicPdu。

2.Divide the security into two frames and send them out, i.e., AuthenticPdu and CryptographicPdu.

SecOCCollection

SecOCCollection.