DEENESPTFRRUARHIKOZHNL

класс ara::crypto::cryp::PrivateKey

[SWS_CRYPT_22500] Upstream: RS_CRYPTO_02002, RS_CRYPTO_02403

class PrivateKey :         public CryptoObject {...};

Generalized Asymmetric Private Key interface.

Header-Datei#include "ara/crypto/cryp/cryobj/private_key.h"
Forwarding-Header#include "ara/crypto/crypto_fwd.h"
Scopenamespace ara::crypto::cryp
Basisklasse(n)CryptoObject

Руководство пользователяСОЗДАНО ИИ

Инкапсулирует асимметричные закрытые ключи и предоставляет соответствующий открытый ключ.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: cbfbff2bb90c Происхождение Открытые вопросы (3)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Инкапсулирует асимметричные закрытые ключи и предоставляет соответствующий открытый ключ.

Интерфейс ara::crypto::cryp::PrivateKey определяет общий интерфейс для асимметричных закрытых ключей в AUTOSAR Adaptive и управляется преимущественно через псевдоним разделяемого указателя PrivateKey::Sptr [SWS_CRYPT_22501]. Его центральная функция GetPublicKey() позволяет получать соответствующий открытый ключ как PublicKey::Sptr для предоставления его партнерским криптографическим операциям [SWS_CRYPT_22511]. Данное получение специфицировано как потокобезопасное и безопасное относительно исключений без стандартизированных кодов ошибок, при этом возможные ошибки, вероятно, сигнализируются специфичным для реализации образом через тип возвращаемого значения ara::core::Result (интерпретация). Вопрос (открытый)

Контекст

Интерфейс ara::crypto::cryp::PrivateKey функционирует в AUTOSAR Adaptive Platform как обобщенный интерфейс для асимметричных закрытых ключей внутри модуля crypto. Он объявлен в заголовочном файле ara/crypto/cryp/cryobj/private_key.h и наследуется напрямую от базового интерфейса CryptoObject. Будучи ключевым компонентом системы асимметричной криптографии, PrivateKey инкапсулирует конфиденциальный ключевой материал, необходимый для криптографических операций, таких как формирование электронных цифровых подписей или процедуры асимметричного расшифрования.

К основным партнерам по взаимодействию, помимо базового класса CryptoObject, относятся, в частности, соответствующий интерфейс открытого ключа PublicKey, а также потребляющие криптографические сервисы и прикладные подпрограммы. В то время как закрытый ключ должен всегда храниться в секрете, интерфейс через функцию-член GetPublicKey() обеспечивает прямое предоставление соответствующего открытого ключа [SWS_CRYPT_22511]. Таким образом реализуется фиксированная типовая связь между закрытым ключом и его математическим аналогом.

PrivateKeyContext Anwendung Anwendung PrivateKey PrivateKey Anwendung->PrivateKey nutzt Sptr PublicKey PublicKey Anwendung->PublicKey empfaengt Sptr CryptoObject CryptoObject PrivateKey->CryptoObject erbt von PrivateKey->PublicKey предоставляет через GetPublicKey()

Контекстная диаграмма: встраивание PrivateKey в криптографическую объектную модель и отношение к соответствующему PublicKey. Источники: [SWS_CRYPT_22501], [SWS_CRYPT_22511]

Жизненный цикл

Управление и передача экземпляров интерфейса PrivateKey осуществляются через типизированный умный указатель PrivateKey::Sptr, который определен как псевдоним типа для std::shared_ptr<PrivateKey> [SWS_CRYPT_22501]. Этот разделяемый указатель гарантирует совместное владение и автоматическое управление ресурсами посредством подсчета ссылок, так что защищенный ключевой материал освобождается, как только аннулируется последняя ссылка.

Поскольку PrivateKey представляет собой абстрактный интерфейс с чисто виртуальными методами, такими как GetPublicKey() [SWS_CRYPT_22511], приложения не могут напрямую создавать экземпляры этого класса. Создание и предоставление конкретных экземпляров PrivateKey::Sptr, вероятно, осуществляется через специализированные фабрики, компоненты управления ключами или криптопровайдеры системы Adaptive (интерпретация). Вопрос Q-f0f9fe2258fac168 (открытый) Сам интерфейс не определяет дискретных внутренних состояний или переходов между состояниями.

Что касается параллелизма, интерфейс для центральной функции-члена GetPublicKey() явно специфицирует потокобезопасность (thread-safe) [SWS_CRYPT_22511]. Это позволяет нескольким потокам выполнения осуществлять параллельный, не требующий синхронизации доступ на чтение к одному и тому же экземпляру ключа для получения соответствующего открытого ключа.

Путь использования

Типичный сценарий использования PrivateKey включает получение закрытого ключа и последующее извлечение соответствующего открытого ключа для целей валидации, регистрации или коммуникации:

  1. Получение ключа: потребляющий программный компонент получает действительный экземпляр асимметричного закрытого ключа в форме PrivateKey::Sptr [SWS_CRYPT_22501].
  2. Запрос партнерского ключа: если для последующего рабочего процесса требуется соответствующий открытый ключ, компонент вызывает функцию-член GetPublicKey() на экземпляре [SWS_CRYPT_22511].
  3. Обработка результата: вызов возвращает ara::core::Result<PublicKey::Sptr> [SWS_CRYPT_22511]. Приложение проверяет объект результата на успешность и при успешном выполнении распаковывает указатель PublicKey::Sptr.
  4. Дальнейшее использование: полученный открытый ключ затем может быть передан внешним коммуникационным партнерам или передан локальным подпрограммам верификации. Формирование открытого ключа внутри, вероятно, осуществляется непосредственно из математических ключевых параметров закрытого ключа (интерпретация). Вопрос Q-464000dc5d638649 (открытый)

Сценарии ошибок

Для безошибочной интеграции решающее значение имеют характеристики ошибок и граничные условия GetPublicKey():

  • Стандартизированные ошибки: согласно спецификации, функция GetPublicKey() не определяет стандартизированных кодов ошибок [SWS_CRYPT_22511].
  • Канал ошибок: хотя стандартизированные ошибки не определены, тип возвращаемого значения ara::core::Result передает потенциальные сбои. Если при внутреннем формировании ключа или создании объекта возникает ошибка, объект результата, вероятно, будет содержать специфичные для реализации коды ошибок базовых криптографических драйверов (интерпретация). Вопрос Q-4af6390594d9c5e1 (открытый)
  • Безопасность относительно исключений: функция явно классифицирована как безопасная относительно исключений (exception safe) и снабжена идентификатором noexcept [SWS_CRYPT_22511]. Поэтому вызывающим компонентам не требуется перехватывать исключения C++.
  • Предусловия и постусловия: предусловием для успешного вызова является действительный, не освобожденный экземпляр PrivateKey. В качестве постусловия интерфейс в случае успеха гарантирует возврат PublicKey::Sptr, математически точно соответствующего закрытому ключу [SWS_CRYPT_22511].

Этот класс-гайд был сгенерирован ИИ на основе спецификации AUTOSAR Adaptive R25-11.

UML-диаграмма классов

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

G nara__crypto__cryp__PrivateKey762 PrivateKey + GetPublicKey() nara__crypto__cryp__CryptoObject679 CryptoObject nara__crypto__cryp__PrivateKey762->nara__crypto__cryp__CryptoObject679 nara__crypto__Serializable855 Serializable nara__crypto__cryp__CryptoObject679->nara__crypto__Serializable855

Методы

GetPublicKey функция

The interface shall return the public key correspondent to this private key.

virtual ara::core::Result< PublicKey::Sptr > GetPublicKey () const noexcept=0;

Псевдонимы типов

Sptr псевдоним типа

shared smart pointer of the interface.

Документация методов

функция GetPublicKey [SWS_CRYPT_22511] Upstream: RS_CRYPTO_02108, RS_CRYPTO_02115

virtual ara::core::Result< PublicKey::Sptr > GetPublicKey () const noexcept=0;

The interface shall return the public key correspondent to this private key.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 9b62fab60fc4 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Метод GetPublicKey класса ara::crypto::cryp::PrivateKey служит для синхронного получения открытого ключа, соответствующего закрытому ключу [SWS_CRYPT_22511]. Вызов выполняется без параметров на существующем экземпляре PrivateKey. В качестве возвращаемого значения интерфейс возвращает ara::core::Result<PublicKey::Sptr>, предоставляющий при успешном выполнении shared pointer на соответствующий объект PublicKey [SWS_CRYPT_22511].

Обработка ошибок и параллелизм

Для данного метода в спецификации не определены стандартизированные коды ошибок [SWS_CRYPT_22511]. Обработка ошибок выполняется через возвращаемый объект типа ara::core::Result. Поскольку операция объявлена как noexcept, она считается исключениебезопасной (exception safe) [SWS_CRYPT_22511]. Кроме того, метод квалифицирован как const и специфицирован как потокобезопасный (thread-safe), благодаря чему допустимы параллельные операции чтения из нескольких потоков [SWS_CRYPT_22511].

Взаимодействие

В типичных криптографических сценариях GetPublicKey используется после создания асимметричной пары ключей с помощью GeneratePrivateKey [SWS_CRYPT_20722]. При этом допустимые флаги использования созданного закрытого ключа переносятся на соответствующий открытый ключ (например, разрешение на проверку подписи из операции создания подписи) [SWS_CRYPT_20722]. Следует отличать эту функцию от одноименного интерфейса в ProtectedKeyImportCtx, который служит для распаковки импортированных открытых ключей [SWS_CRYPT_50211].

Данное указание по использованию сгенерировано автоматически на основе AUTOSAR R25-11.

Руководство разработчика реализации в подготовке (сложность I1)

Header-Datei#include "ara/crypto/cryp/cryobj/private_key.h"
Scopeclass ara::crypto::cryp::PrivateKey
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Rückgabewert

TypBeschreibung
ara::core::Result< PublicKey::Sptr >A result containing a shared pointer to the public key correspondent to this private key

Fehler

FehlercodeBeschreibung
This function does not specify any standardized errors.

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

Record
AUTOSAR/AP/record/SWS_CRYPT_22511
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_22511@rel:R25-11#c03c2f28
Content hash
c03c2f28
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_22511
Status: valid/unmigrated Version: rel:R25-11#e5f0457b 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_22511@rel:R25-11#e5f0457b
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#f0d041e72026-09-30
  • R19-11rel:R19-11#bb931c232026-10-14
  • R20-11rel:R20-11#85846a1e2026-10-14
  • R21-11rel:R21-11#85846a1e2026-10-14
  • R22-11rel:R22-11#99b114f02026-10-14
  • R23-11rel:R23-11#6fdc19552026-10-14
  • R24-11rel:R24-11#a752dbfc2026-10-14
  • R25-11rel:R25-11#e5f0457b2026-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

Документация псевдонимов типов

псевдоним типа Sptr [SWS_CRYPT_22501] Upstream: RS_CRYPTO_02306

using Sptr = std::shared_ptr<PrivateKey>;

shared smart pointer of the interface.

Header-Datei#include "ara/crypto/cryp/cryobj/private_key.h"
Scopeclass ara::crypto::cryp::PrivateKey
SymbolSptr

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

Record
AUTOSAR/AP/record/SWS_CRYPT_22501
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CRYPT_22501@rel:R25-11#37251749
Content hash
37251749
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Cryptography.pdf#nameddest=SWS_CRYPT_22501
Status: valid/unmigrated Version: rel:R25-11#48b56da1 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_22501@rel:R25-11#48b56da1
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#568a064f2026-09-30
  • R19-11rel:R19-11#c428ba2c2026-10-14
  • R20-11rel:R20-11#fb4c3bbd2026-10-14
  • R21-11rel:R21-11#fb4c3bbd2026-10-14
  • R22-11rel:R22-11#6e7979fe2026-10-14
  • R23-11rel:R23-11#d106cca42026-10-14
  • R24-11rel:R24-11#5eb65ced2026-10-14
  • R25-11rel:R25-11#48b56da12026-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