DEENESPTFRRUARHIKOZHNL

类 ara::crypto::x509::CertSignRequest

[SWS_CRYPT_40300] Upstream: RS_CRYPTO_02306

class CertSignRequest :           public ara::crypto::Serializable {...};

Certificate Signing Request (CSR) object interface.

Header-Datei#include "ara/crypto/x509/cert_sign_request.h"
Forwarding-Header#include "ara/crypto/crypto_fwd.h"
Scopenamespace ara::crypto::x509
Basisklasse(n)ara::crypto::Serializable

用户指南人工智能生成

定义可序列化 X.509 证书签名请求的接口及其共享所有权管理。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 3439f3ad3ffa 来源 未决问题(3)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

定义可序列化 X.509 证书签名请求的接口及其共享所有权管理。

接口 ara::crypto::x509::CertSignRequest 在 AUTOSAR Adaptive 中用作证书签名请求(CSR)的抽象,并继承自 ara::crypto::Serializable,以使面向外部证书颁发机构的证书请求可序列化。生命周期和共享所有权主要通过定义为 std::shared_ptr<const CertSignRequest> 的类型别名 Sptrc 进行控制 [SWS_CRYPT_40301]。该常量智能指针确保 CSR 实例在创建后保持不可变,并可由多个组件安全地并发读取。

上下文

C++ 类 ara::crypto::x509::CertSignRequest 在 AUTOSAR 的 Adaptive Platform 模块 crypto 中提供了证书签名请求对象(CSR)的抽象接口。该接口类型在命名空间 ara::crypto::x509 中声明并通过包含路径 #include "ara/crypto/x509/cert_sign_request.h" [SWS_CRYPT_40301] 提供,构成了表示数字证书签名请求的基础元素。根据其声明语法,该类直接继承自基础接口 ara::crypto::Serializable。通过该继承层次结构规定了具体的 CSR 对象是可序列化的,从而允许跨模块和网络边界导出、存储和传输结构化的请求数据。

在整体架构中,CertSignRequest 承担了数据容器以及加密服务与应用软件之间交互方的角色。当应用程序希望为公钥基础设施中的使用对新加密密钥对进行认证时,该接口封装了请求的所有相关信息。推测该接口用于对完整的 PKCS#10 或供应商专用签名请求进行独立于供应商的封装,其中具体形式由底层加密驱动程序实现。 问题 (未决)通过纯接口进行的解耦保护了调用模块免受实现细节的影响,并确保了加密后端的功能可替换性。

生命周期

ara::crypto::x509::CertSignRequest 的创建和生命周期管理遵循用于共享资源的现代 C++ 内存管理原则。为了进行引用和所有权管理,规范将类型别名 Sptrc 定义为 std::shared_ptr<const CertSignRequest> [SWS_CRYPT_40301]。该智能指针构成了在不同软件组件之间实现 CSR 实例的所有权和传递的关键模型。

通过使用 std::shared_ptr 进行管理,实例的生命周期受自动引用计数的约束。只要有至少一个活动的 Sptrc 指针指向该对象,该对象就一直存在,并在最后一个引用指针销毁时自动释放。该接口的一个核心特征是智能指针显式绑定到类型 const CertSignRequest [SWS_CRYPT_40301]。这种常量限定强制了语义不可变性(Immutability):在请求最初生成之后,使用者不得再修改所包含的字段或签名。这确保了签名请求在整个生命周期中的完整性。

在并发方面,常量指针绑定带来了显著的安全优势。由于类型别名 CertSignRequest::Sptrc [SWS_CRYPT_40301] 仅授予只读访问权限,因此多个线程和系统进程可以并行处理同一个 CSR 实例,而无需额外的互斥锁同步。通过接口的设计,在结构上杜绝了并发读取访问时的数据竞争。

使用路径

典型使用流程分为请求的提供、功能性传递和后续序列化。由于接口负载中缺少公有构造函数,实例化通常应由加密栈中的专用 X.509 提供程序执行。 问题 Q-166e702484f51ee9 (未决)调用方以常量智能指针 CertSignRequest::Sptrc [SWS_CRYPT_40301] 的形式接收返回的就绪实例。

在后续流程中,CSR 对象充当验证或转发过程的输入数据结构。通过继承自 ara::crypto::Serializable 的功能,应用软件可以将该对象序列化为与平台无关的字节流。该序列化通常推测会生成标准化的 ASN.1 DER 或 PEM 编码数据结构,随后传输给外部证书颁发机构(Certificate Authority)或持久化在文件系统中。 问题 Q-b44960c0a712e65c (未决)在整个调用链中,实例的生命周期通过所持有的 Sptrc [SWS_CRYPT_40301] 得到可靠保障。

本指南由 AI 基于 AUTOSAR Adaptive 规范 R25-11 生成。

UML 类图

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__crypto__x509__CertSignRequest934 CertSignRequest nara__crypto__Serializable855 Serializable nara__crypto__x509__CertSignRequest934->nara__crypto__Serializable855

类型别名

Sptrc 类型别名

Smart pointer of the constant interface.

using Sptrc = std::shared_ptr<const CertSignRequest>;

类型别名文档

类型别名 Sptrc [SWS_CRYPT_40301] Upstream: RS_CRYPTO_02306

using Sptrc = std::shared_ptr<const CertSignRequest>;

Smart pointer of the constant interface.

Header-Datei#include "ara/crypto/x509/cert_sign_request.h"
Scopeclass ara::crypto::x509::CertSignRequest
SymbolSptrc

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

Record
AUTOSAR/AP/record/SWS_CRYPT_40301
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_40301@rel:R25-11#90fe56e3
Content hash
90fe56e3
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_40301
Status: valid/unmigrated Version: rel:R25-11#aa84db48 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CRYPT_40301@rel:R25-11#aa84db48
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#76e481f82026-09-30
  • R19-11rel:R19-11#429783692026-10-14
  • R20-11rel:R20-11#f279f00d2026-10-14
  • R21-11rel:R21-11#f279f00d2026-10-14
  • R22-11rel:R22-11#ba0930b52026-10-14
  • R23-11rel:R23-11#c98782022026-10-14
  • R24-11rel:R24-11#c98782022026-10-14
  • R25-11rel:R25-11#aa84db482026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill