AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 16126e8d9692출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
대칭 키 암호화를 통해 키를 안전하게 패키징 및 언패키징할 수 있도록 지원합니다.
컨텍스트 SymmetricKeyWrapperCtx은 대칭형 알고리즘을 사용한 키의 암호학적 래핑 및 언래핑에 사용됩니다. Wrap 또는 UnwrapSymmetricKey를 실행하기 전에 컨텍스트는 SetKey을 통해 호환 가능한 키 암호화 키(KEK)로 구성되어야 합니다 [SWS_CRYPT_24018]. 모든 작업은 관련된 키 객체의 적절한 사용 권한을 전제로 하며, 롤백 의미 체계를 가진 ara::core::Result를 통해 오류를 보고합니다 [SWS_CRYPT_24014]. 해당 인터페이스는 예외 안전(exception safe)하며 동시 실행을 위해 스레드 안전(thread-safe)으로 명시되어 있습니다.
컨텍스트
클래스 SymmetricKeyWrapperCtx은 AUTOSAR Adaptive Platform 내에서 대칭형 키 래핑 알고리즘(Key Wrapping)을 위한 표준화된 인터페이스를 정의합니다. 주요 책임은 내보내기 시 키를 암호학적으로 보호하고 내부 사용을 위해 래핑된 키를 복원하는 것입니다. 여기서 클래스는 주로 임시 키 객체 유형 SymmetricKey로 제공되거나 KeySlot를 통해 영구적으로 제공되는 키 암호화 키(Key Encryption Key, KEK)와 상호작용합니다 [SWS_CRYPT_24018], [SWS_CRYPT_50034]. 래핑 시 컨텍스트는 제네릭 CryptoObject를 전달받는 반면 [SWS_CRYPT_24014], 언래핑 작업은 바로 사용할 수 있는 새로운 SymmetricKey 객체를 생성하여 반환합니다 [SWS_CRYPT_24016].
수명 주기
SymmetricKeyWrapperCtx의 인스턴스는 형식화된 스마트 포인터 Sptr(std::shared_ptr<SymmetricKeyWrapperCtx>의 별칭)을 통해 관리됩니다 [SWS_CRYPT_24001]. 해당 클래스가 순수 가상 메서드를 가진 추상 인터페이스를 나타내므로, 실제 객체 생성은 담당 프로바이더 팩토리를 통해 수행될 것으로 추정됩니다. 질문 Q-7b9a1007da43ddcd (열림) 인터페이스의 모든 멤버 함수는 예외 안전(exception safe) 및 스레드 안전(thread-safe)으로 명시되어 있어 동시성 소프트웨어 컴포넌트에서 안전하게 사용할 수 있습니다 [SWS_CRYPT_24014], [SWS_CRYPT_24016].
라이프사이클 동안 컨텍스트는 두 가지 주요 단계를 거칩니다. 인스턴스화 직후에는 초기화되지 않은 상태에 있습니다. 이 단계에서는 암호화 작업 및 버퍼 계산이 kUninitializedContext 오류와 함께 실패합니다 [SWS_CRYPT_50035], [SWS_CRYPT_24014]. 호환되는 KEK 또는 KeySlot을 사용하여 SetKey을 성공적으로 호출해야만 컨텍스트가 키를 안전하게 래핑하거나 언래핑할 수 있는 작동 준비 상태로 전환됩니다 [SWS_CRYPT_24018], [SWS_CRYPT_50034].
사용 경로
키를 래핑하는 정규 흐름에는 구성, 버퍼 확인 및 실행의 조율된 시퀀스가 필요합니다. 먼저 애플리케이션은 SetKey을 통해 원하는 KEK 객체 [SWS_CRYPT_24018]로 컨텍스트를 구성하거나 해당 KeySlot를 바인딩합니다 [SWS_CRYPT_50034]. 두 번째 단계에서 애플리케이션은 GetRequiredWrappedKeyBufferSize를 통해 래핑할 대상 객체에 최대로 필요한 출력 버퍼 크기를 확인합니다 [SWS_CRYPT_50035]. 적절한 크기의 메모리 영역(ReadWriteMemRegion)이 제공된 후 Wrap 호출이 수행되며, 이는 직렬화 및 암호화된 키 데이터를 버퍼에 쓰고 정확한 바이트 수를 반환합니다 [SWS_CRYPT_24014].
보완적인 언래핑 과정의 경우, 애플리케이션은 SetKey을 통한 구성 후 래핑된 데이터가 포함된 입력 버퍼를 UnwrapSymmetricKey에 전달합니다 [SWS_CRYPT_24016]. 이때 새로 생성될 대칭 키에 대한 대상 알고리즘 식별자(targetAlgId) 및 허용된 사용 플래그(allowedUsage)를 명시적으로 지정해야 합니다 [SWS_CRYPT_24016].
오류 시나리오
클래스의 메서드는 롤백 의미 체계를 가진 반환 유형 ara::core::Result을 통해 오류를 알립니다. 주요 오류 시나리오는 다음과 같습니다:
사용 권한 위반: KEK를 설정할 때 최소한 kAllowKeyWrapping 또는 kAllowKeyUnwrapping 권한이 있어야 하며, 그렇지 않으면 SetKey가 ara::crypto::CryptoErrc::kUsageViolation과 함께 실패합니다 [SWS_CRYPT_24018]. Wrap의 경우 KEK에 kAllowKeyWrapping이 없거나 래핑할 객체에 kAllowSecuredExport이 없으면 마찬가지로 kUsageViolation이 발생합니다 [SWS_CRYPT_24014]. 언래핑 시 KEK가 kAllowKeyUnwrapping을 허용하는지 확인합니다 [SWS_CRYPT_24016].
리소스 충돌 및 빈 슬롯: 작업이 점유된 리소스에 접근하면 ara::crypto::CryptoErrc::kBusyResource이 반환되고, 참조된 KeySlot이 비어 있으면 ara::crypto::CryptoErrc::kEmptyKeySlot가 발생합니다 [SWS_CRYPT_24014], [SWS_CRYPT_24016].
Configure the context to use the provided key as key encryption key.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: d0a83598653d출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
사용법 및 의미론
동기 멤버 함수 SetKey는 전달된 객체 SymmetricKey::Sptr가 후속 키 작업을 위한 Key Encryption Key (KEK)로 사용되도록 ara::crypto::cryp::SymmetricKeyWrapperCtx의 인스턴스를 구성합니다 [SWS_CRYPT_24018]. 이 함수는 noexcept를 갖는 순수 가상 메서드로 명세되어 있으며, 할당이 성공한 경우 빈 ara::core::Result<void>를 반환합니다 [SWS_CRYPT_24018].
오류 처리 및 롤백
구성 중 오류가 발생하면 필수 롤백 시맨틱이 적용되어 컨텍스트 상태가 변경되지 않고 유지됩니다 [SWS_CRYPT_24018]. 가능한 오류 원인은 ara::crypto::CryptoErrc의 오류 코드를 통해 매핑됩니다:
kIncompatibleObject: 전달된 키 객체가 대칭 컨텍스트와 호환되지 않습니다 [SWS_CRYPT_24018].
kUsageViolation: 키의 허용된 사용 범위에 kAllowKeyWrapping 또는 kAllowKeyUnwrapping가 모두 포함되어 있지 않습니다 [SWS_CRYPT_24018].
이 메서드는 thread-safe 및 예외 안전(exception safe)으로 명세되어 있습니다 [SWS_CRYPT_24018]. 키가 슬롯을 통해 관리되거나 컨텍스트가 KeySlots만을 지원하는 경우, 동일한 래퍼 컨텍스트에 대해 KeySlot::Sptr를 갖는 대안 오버로드 SetKey가 존재합니다 [SWS_CRYPT_50034]. 이는 키 래핑 실행 시점에 슬롯에 저장된 키를 로드하도록 컨텍스트를 구성합니다 [SWS_CRYPT_50034].
이 사용 지침은 AUTOSAR Adaptive Platform 릴리스 R25-11 사양을 기반으로 합니다.
Configure the context to use the key stored in the provided KeySlot at the time the key wrapping is performed.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 30d79040bb46출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
사용
가상 메서드 SetKey은 키 래핑이 실행되는 즉시 제공된 KeySlot에 저장된 키가 사용되도록 컨텍스트 ara::crypto::cryp::SymmetricKeyWrapperCtx을 구성합니다 [SWS_CRYPT_50034]. 호출 시 대칭 키를 포함하는 KeySlot::Sptr인 keySlot를 매개변수로 기대합니다 [SWS_CRYPT_50034]. 함수는 동기식으로 호출되며, noexcept로 선언되어 있고 ara::core::Result<void>을 반환합니다 [SWS_CRYPT_50034].
Unwrap a wrapped key using the previously set key encryption key and return an SymmetricKey.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: fe87df5f5eae출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
ara::crypto::cryp::SymmetricKeyWrapperCtx 인터페이스의 UnwrapSymmetricKey 메서드는 이전에 설정된 Key Encryption Key(KEK)를 사용하여 래핑된 키를 복호화하고 새로운 SymmetricKey 객체를 반환합니다 [SWS_CRYPT_24016]. 동기 함수는 매개변수로 보호된 키 데이터를 포함하는 입력 버퍼(wrappedKey), 대상 키의 알고리즘 식별자(targetAlgId), 그리고 해당 키의 허용된 변환 유형에 대한 비트 플래그(allowedUsage)를 전달받습니다 [SWS_CRYPT_24016].
반환 값 ara::core::Result<SymmetricKey::Sptr>은(는) 성공적인 실행 시 생성된 키에 대한 스마트 포인터를 포함하거나 롤백 의미론과 함께 오류를 알립니다 [SWS_CRYPT_24016]. 가능한 오류 원인은 다음과 같습니다:
InvalidArgument: 잘못된 형식이나 잘못된 버퍼 크기 등으로 인해 wrappedKey의 전달된 키 데이터를 언래핑할 수 없습니다 [SWS_CRYPT_24016].
ara::crypto::CryptoErrc::kUninitializedContext: 래퍼 컨텍스트가 아직 적절한 KEK로 초기화되지 않았습니다 [SWS_CRYPT_24016].
ara::crypto::CryptoErrc::kUsageViolation: KEK의 사용 제약으로 인해 언래핑이 금지됩니다(kAllowKeyUnwrapping의 누락) [SWS_CRYPT_24016].
ara::crypto::CryptoErrc::kUnknownIdentifier: targetAlgId에 전달된 값이 알려지지 않았거나 지원되지 않습니다 [SWS_CRYPT_24016].
ara::crypto::CryptoErrc::kIncompatibleArguments: 지정된 allowedUsage 플래그가 targetAlgId 또는 키 유형과 호환되지 않습니다 [SWS_CRYPT_24016].
ara::crypto::CryptoErrc::kBusyResource: 작업에 필요한 시스템 리소스가 현재 사용 중입니다 [SWS_CRYPT_24016].
ara::crypto::CryptoErrc::kEmptyKeySlot: 작업에 대해 구성된 KeySlot이 비어 있습니다 [SWS_CRYPT_24016].
이 메서드는 const 및 noexcept(으)로 선언되어 예외 안전성을 보장하며, 사양에 따라 동시 호출에 대해 thread-safe합니다 [SWS_CRYPT_24016].
Wrap the provided key using the previously set key encryption key.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 8e6ff8198c9d출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
사용
ara::crypto::cryp::SymmetricKeyWrapperCtx 클래스(헤더 파일 ara/crypto/cryp/symmetric_key_wrapper_ctx.h)의 메서드 Wrap은(는) 이전에 설정된 키 암호화 키(Key Encryption Key)를 사용하여 제공된 키를 래핑합니다 [SWS_CRYPT_24014].
rollback_semantics if the allowed usage of the KEK does not include kAllowKey Wrapping or the allowed usage of the object does not include k AllowSecuredExport
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문