Crypto Driver (Crypto)
Low-level driver executing cryptographic primitives on hardware security modules (HSM) or software libraries.
Funktionen — Übersicht
void Crypto_Init (const Crypto_ConfigType* configPtr);Initializes the Crypto Driver.void Crypto_GetVersionInfo (Std_VersionInfoType* versioninfo);Returns the version information of this module.Std_ReturnType Crypto_ProcessJob (uint32 objectId, Crypto_JobType* job);Service Crypto_ProcessJob.Std_ReturnType Crypto_CancelJob (uint32 objectId, Crypto_JobType* job);This interface removes the provided job from the queue and cancels the processing of the job if possible.Std_ReturnType Crypto_KeyElementSet (uint32 cryptoKeyId, uint32 keyElementId, const uint8* keyPtr, uint32 keyLength);Sets the given key element bytes to the key identified by crypto Key Id.Std_ReturnType Crypto_KeySetValid (uint32 cryptoKeyId);Sets the key state of the key identified by crypto Key Id to valid.Std_ReturnType Crypto_KeySetInvalid (uint32 cryptoKeyId);Sets invalid for the status of the key identifi ed by crypto Key Id.Std_ReturnType Crypto_KeyElementGet (uint32 cryptoKeyId, uint32 keyElementId, uint8* resultPtr, uint32* resultLengthPtr);This interface shall be used to get a key element of the key identified by the cryptoStd_ReturnType Crypto_KeyGetStatus (uint32 cryptoKeyId, Crypto_KeyStatusType* keyStatusPtr);Returns the key state of the key identified by crypto Key Id.Std_ReturnType Crypto_KeyElementCopy (uint32 cryptoKeyId, uint32 keyElementId, uint32 targetCryptoKeyId, uint32 targetKeyElementId);Service Crypto_KeyElementCopy.Std_ReturnType Crypto_KeyElementCopyPartial (uint32 cryptoKeyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetCryptoKeyId, uint32 targetKeyElementId);Service Crypto_KeyElementCopyPartial.Std_ReturnType Crypto_KeyCopy (uint32 cryptoKeyId, uint32 targetCryptoKeyId);Copies a key with all its elements to another key in the same crypto driver.Std_ReturnType Crypto_KeyElementIdsGet (uint32 cryptoKeyId, uint32* keyElementIdsPtr, uint32* keyElementIdsLengthPtr);Used to retrieve information which key elements are available in a given key.Std_ReturnType Crypto_RandomSeed (uint32 cryptoKeyId, const uint8* seedPtr, uint32 seedLength);This function generates the internal seed state using the pro vided entropy source.Std_ReturnType Crypto_KeyGenerate (uint32 cryptoKeyId);Generates new key material store it in the key identified by crypto Key Id.Std_ReturnType Crypto_KeyDerive (uint32 cryptoKeyId, uint32 targetCryptoKeyId);Derives a new key by using the key elements in the given key identified by the crypto Key Id.Std_ReturnType Crypto_KeyExchangeCalcPubVal (uint32 cryptoKeyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);Calculates the public value for the key exchange a nd stores the public key in the memory location pointed by the public value...Std_ReturnType Crypto_KeyExchangeCalcSecret (uint32 cryptoKeyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);Calculates the shared secret key for the key exchange with the key material of the key identified by the crypto Key Id and the...void Crypto_MainFunction (void);If asynchronous job processing is configured and there are job queues, the function is called cyclically to process queued jobs.
Typen — Übersicht
struct Crypto_ConfigTypeConfiguration data structure of Cry If module
Funktionen & Typen — Detailansicht
함수 Crypto_Init [SWS_Crypto_91000] 📄 PDF
void Crypto_Init (const Crypto_ConfigType* configPtr);
Initializes the Crypto Driver.
함수 Crypto_Init은 [SWS_Crypto_91000]에 따라 Crypto Driver를 초기화하는 역할을 합니다. 인터페이스는 헤더 Crypto.h에 선언되어 있으며 서비스 ID 0x00을 가집니다[SWS_Crypto_91000].
호출 및 인터페이스 매개변수에 대해 다음과 같은 속성이 지정되어 있습니다:
- 구성 포인터:
const Crypto_ConfigType*타입의 입력 매개변수configPtr을 통해 선택된 구성 구조체에 대한 포인터가 전달됩니다[SWS_Crypto_91000]. - 반환값: 이 함수는 반환값을 가지지 않으며(
void), 입출력 매개변수나 별도의 출력 매개변수도 존재하지 않습니다[SWS_Crypto_91000]. - 실행 동작: 초기화 루틴은 동기식으로 실행됩니다(
Synchronous)[SWS_Crypto_91000]. - 재진입성: 이 함수는 비-재진입(
Non Reentrant)으로 정의됩니다[SWS_Crypto_91000]. 병렬 또는 중첩 호출은 허용되지 않습니다.
비-재진입으로 분류되어 있고 사양에서 특정 오류 코드를 반환하지 않으므로, 이 호출은 일반적으로 ECU 시작 단계에서 다른 모든 드라이버 액세스 전에 중앙에서 수행될 것으로 보입니다(해석). 질문 Q-008bb5a45b823891 (열림) 또한 호출자는 참조된 구성 구조체가 메모리에서 영구적으로 유효하게 유지되도록 보장할 책임이 있을 것으로 보입니다(해석). 질문 Q-6271a86fad440121 (열림)
본 사용 지침은 AUTOSAR CP R20-11 사양을 바탕으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Crypto_GetVersionInfo [SWS_Crypto_91001] 📄 PDF
void Crypto_GetVersionInfo (Std_VersionInfoType* versioninfo);
Returns the version information of this module.
함수 Crypto_ProcessJob [SWS_Crypto_91003] 📄 PDF
Std_ReturnType Crypto_ProcessJob (uint32 objectId, Crypto_JobType* job);
Service Crypto_ProcessJob.
함수 Crypto_ProcessJob은 매개변수 job에 구성된 암호화 프리미티브를 objectId가 참조하는 Crypto Driver Object에서 실행합니다[SWS_Crypto_91003]. 이 호출은 reentrant이며 작업 구성에 따라 동기 또는 비동기식으로 작동합니다[SWS_Crypto_91003]. Crypto_JobType에 대한 포인터를 통해 프리미티브를 위한 구성 데이터와 결과 데이터를 위한 버퍼가 모두 전달됩니다[SWS_Crypto_91003].
실제 작업 실행 전에 드라이버는 키 식별자의 유효성을 검사합니다. job->cryptoKeyId 또는 해당되는 경우 job->targetCryptoKeyId이 허용 범위를 벗어나는 경우, 함수는 DET에 오류 CRYPTO_E_PARAM_HANDLE를 보고하고 E_NOT_OK을 반환합니다[SWS_Crypto_00217]. 이는 job->targetCryptoKeyId이 유효하지 않은 경우 서비스 CRYPTO_KEYDERIVE(job->jobPrimitiveInfo->primitiveInfo->service)에도 적용됩니다[SWS_Crypto_00202].
E_OK 및 E_NOT_OK 외에도 특정 오류 코드가 요청의 실패를 알립니다[SWS_Crypto_91003]:
- 드라이버 객체가 사용 중이거나 해당 대기열이 가득 찬 경우
CRYPTO_E_BUSY[SWS_Crypto_91003], CRYPTO_E_KEY_NOT_VALID,CRYPTO_E_KEY_SIZE_MISMATCH,CRYPTO_E_KEY_READ_FAIL,CRYPTO_E_KEY_WRITE_FAIL,CRYPTO_E_KEY_NOT_AVAILABLE또는CRYPTO_E_KEY_EMPTY와 같은 키 관련 오류[SWS_Crypto_91003],- 동기 작업 중단 시
CRYPTO_E_JOB_CANCELED[SWS_Crypto_91003] 및 - 난수 생성기의 엔트로피가 불충분한 경우
CRYPTO_E_ENTROPY_EXHAUSTED. 이때 함수는 런타임 오류CRYPTO_E_RE_ENTROPY_EXHAUSTED을 추가로 보고합니다[SWS_Crypto_00141], [SWS_Crypto_91003].
이 텍스트는 AUTOSAR R20-11 사양 데이터를 기반으로 AI에 의해 작성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Crypto_CancelJob [SWS_Crypto_00122] 📄 PDF
Std_ReturnType Crypto_CancelJob (uint32 objectId, Crypto_JobType* job);
This interface removes the provided job from the queue and cancels the processing of the job if possible.
사용
동기 함수 Crypto_CancelJob은 전달된 작업을 대기열에서 제거하고 가능한 경우 해당 처리 작업을 중단합니다[SWS_Crypto_00122]. 호출 시 Crypto Driver Object의 식별자(objectId) 및 작업 구성에 대한 포인터(job)가 전달됩니다[SWS_Crypto_00122].
반환값은 중단 시도의 결과를 나타냅니다:
E_OK: 요청이 성공했으며 작업이 제거되었습니다[SWS_Crypto_00122]. 드라이버에 오류가 없고 작업이 현재 처리 중이 아닌 경우에도 서비스는 추가 조치 없이E_OK를 반환합니다[SWS_Crypto_00214].E_NOT_OK: 작업을 제거할 수 없어 요청이 실패했습니다 [SWS_Crypto_00122].CRYPTO_E_JOB_CANCELED: 작업이 취소되었으나 계속 실행됩니다. 애플리케이션으로 결과가 반환되지 않습니다[SWS_Crypto_00122]. 이는 드라이버가 오류 없이 동작하지만 (예: 하드웨어 제한으로 인해) 작업을 중단할 수 없는 경우에 적용됩니다[SWS_Crypto_00183].
동시성 및 제약사항
이 인터페이스는 서로 다른 인스턴스에 대해 reentrant이지만, 동일한 Crypto Driver Object에 대해 동시에 호출되어서는 안 됩니다[SWS_Crypto_00122].
이 사용 지침은 자동으로 작성되었으며 AUTOSAR R20-11의 사양 데이터만을 기반으로 합니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Crypto_KeyElementSet [SWS_Crypto_91004] 📄 PDF
Std_ReturnType Crypto_KeyElementSet (uint32 cryptoKeyId, uint32 keyElementId, const uint8* keyPtr, uint32 keyLength);
Sets the given key element bytes to the key identified by crypto Key Id.
동기 함수 Crypto_KeyElementSet은 암호화 드라이버에서 cryptoKeyId을 통해 식별된 키에 대한 특정 키 요소의 원시 데이터를 설정하는 데 사용됩니다[SWS_Crypto_91004].
매개변수 및 반환값
keyElementId을 통해 대상 키 요소가 주소 지정되는 반면, keyPtr은 데이터 버퍼를 가리키고 keyLength는 해당 바이트 크기를 참조합니다[SWS_Crypto_91004]. 성공적으로 할당되면 인터페이스는 E_OK를 반환합니다[SWS_Crypto_91004].
오류 처리
처리 중 오류가 발생하면 함수는 특정 반환값을 제공합니다[SWS_Crypto_91004]:
CRYPTO_E_BUSY: 관련 Crypto-Driver-Objekt가 사용 중입니다.CRYPTO_E_KEY_WRITE_FAIL: 키 엘리먼트에 대한 쓰기 액세스가 거부되었습니다.CRYPTO_E_KEY_NOT_AVAILABLE: 요청된 키 요소 또는 키를 사용할 수 없습니다.CRYPTO_E_KEY_SIZE_MISMATCH: 전달된 데이터 길이가 키 요소의 크기와 일치하지 않습니다.E_NOT_OK: 기타 이유로 요청이 실패했습니다.
동시성
이 함수는 비-재진입(Non Reentrant)으로 지정되어 있습니다[SWS_Crypto_91004]. 해석: 드라이버 내의 데이터 불일치를 방지하기 위해 병렬 호출을 서로 동기화할 책임은 호출자에게 있을 것으로 보입니다. 질문 Q-d7ef7a774052a212 (열림)
이 사용 지침은 사양 SWS_Crypto_91004(R20-11)를 기반으로 자동 작성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Crypto_KeySetValid [SWS_Crypto_91014] 📄 PDF
Std_ReturnType Crypto_KeySetValid (uint32 cryptoKeyId);
Sets the key state of the key identified by crypto Key Id to valid.
동기 함수 Crypto_KeySetValid은 식별자 cryptoKeyId로 지정된 키의 상태를 유효함(valid)으로 설정하는 역할을 합니다([SWS_Crypto_91014]). 이 인터페이스는 헤더 파일 Crypto.h을 통해 사용할 수 있으며 서비스 ID 0x05를 갖습니다([SWS_Crypto_91014]).
사용 시 다음과 같은 매개변수 및 반환값이 정의되어 있습니다([SWS_Crypto_91014]):
- 입력 매개변수:
cryptoKeyId(타입uint32)을 통해 상태를 유효함으로 설정할 키의 식별자가 전달됩니다([SWS_Crypto_91014]). 추가적인 입력 또는 출력 매개변수는 존재하지 않습니다([SWS_Crypto_91014]). - 반환값:
Std_ReturnType타입의 상태 코드가 요청 결과에 대한 정보를 제공합니다([SWS_Crypto_91014]):E_OK: 요청이 성공했습니다([SWS_Crypto_91014]).E_NOT_OK: 요청이 실패했습니다([SWS_Crypto_91014]).CRYPTO_E_BUSY: 담당 Crypto 드라이버 객체가 사용 중이어서 실행에 실패했습니다([SWS_Crypto_91014]).
동시성과 관련하여 이 함수는 재진입 불가능(“Non Reentrant”)으로 명시되어 있습니다([SWS_Crypto_91014]). 해석: 충돌을 방지하기 위해 호출자는 태스크 간의 병렬 호출을 외부에서 조정해야 할 것으로 보이며, CRYPTO_E_BUSY 수신 시 나중에 호출을 재시도하도록 조치해야 합니다. 질문 Q-32d775a9e61e5731 (열림)
본 텍스트는 AI에 의해 작성되었으며 AUTOSAR R20-11 사양 버전을 기반으로 합니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Crypto_KeySetInvalid [SWS_Crypto_91020] 📄 PDF
Std_ReturnType Crypto_KeySetInvalid (uint32 cryptoKeyId);
Sets invalid for the status of the key identifi ed by crypto Key Id.
사용법 및 의미론
동기 함수 Crypto_KeySetInvalid은 cryptoKeyId로 식별된 키의 상태를 무효함으로 설정합니다 [SWS_Crypto_91020]. 이 함수는 헤더 파일 Crypto.h에 정의되어 있으며 서비스 ID 0x15를 통해 호출됩니다 [SWS_Crypto_91020]. 유일한 전달 매개변수로는 대상 키의 고유 식별자를 포함하는 입력값 cryptoKeyId(타입 uint32)이 사용되며, 입출력 및 출력 매개변수는 없습니다 [SWS_Crypto_91020].
오류 처리 및 반환값
함수 실행 결과는 Std_ReturnType 타입의 반환값을 통해 전달됩니다 [SWS_Crypto_91020]:
E_OK: 요청이 성공적이었으며 키 상태가 무효함으로 설정되었습니다 [SWS_Crypto_91020].E_NOT_OK: 요청 수행에 실패했습니다 [SWS_Crypto_91020].CRYPTO_E_BUSY: 담당 암호화 드라이버 객체(Crypto Driver Object)가 현재 사용 중이어서 요청이 실패했습니다 [SWS_Crypto_91020].
동시성 및 제약사항
이 인터페이스는 재진입 불가능(Non Reentrant)으로 명시되어 있습니다 [SWS_Crypto_91020]. 따라서 동시 또는 인터럽트성 호출은 허용되지 않습니다. 함수가 동기적으로 실행되므로 상태 변경이 완료되거나 오류가 확인된 후에야 호출자에게 반환됩니다 [SWS_Crypto_91020].
본 사용 지침은 명세를 기반으로 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Crypto_KeyElementGet [SWS_Crypto_91006] 📄 PDF
Std_ReturnType Crypto_KeyElementGet (uint32 cryptoKeyId, uint32 keyElementId, uint8* resultPtr, uint32* resultLengthPtr);
This interface shall be used to get a key element of the key identified by the crypto
동기식 및 reentrant 함수 Crypto_KeyElementGet은 keyElementId을 통해 식별된 키 요소를 키 cryptoKeyId에서 읽어 메모리 영역 resultPtr에 저장하는 역할을 합니다[SWS_Crypto_91006]. 이 인터페이스는 헤더 Crypto.h를 통해 제공되며 서비스 ID 0x06을 가집니다[SWS_Crypto_91006]. 호출 시 호출자는 입출력(In-Out) 매개변수 resultLengthPtr을 통해 버퍼 크기를 전달하거나, 부분 액세스가 구성된 경우 원하는 읽기 크기를 전달합니다. 실행 완료 후 드라이버는 실제로 복사된 데이터 양을 그곳에 저장합니다[SWS_Crypto_91006].
성공 시 함수는 E_OK을 반환합니다[SWS_Crypto_91006]. 작업이 실패하면 특정 오류 코드를 통해 이를 알립니다: 암호화 드라이버 객체가 사용 중인 경우 CRYPTO_E_BUSY, 키 요소를 사용할 수 없는 경우 CRYPTO_E_KEY_NOT_AVAILABLE, 읽기 액세스가 거부된 경우 CRYPTO_E_KEY_READ_FAIL, 소스 요소가 초기화되지 않은 경우 CRYPTO_E_KEY_EMPTY, 그리고 일반 오류 E_NOT_OK입니다[SWS_Crypto_91006].
인터페이스가 reentrant로 지정되어 있음에도 불구하고, 사양에서는 키 요소를 플래시 메모리에 직접 매핑할 때 동기 실행 중에 상당한 지연 시간이 발생할 수 있음을 지적합니다[SWS_Crypto_91006]. 해석: 이러한 잠재적인 지연으로 인해 이 호출은 시간에 민감한 인터럽트 서비스 루틴 내부가 아니라 주로 태스크 컨텍스트에서 사용하는 것이 적절할 것으로 보입니다. 질문 Q-ff4e2843b9aad46d (열림)
이 사용 지침은 자동으로 생성되었으며 AUTOSAR Classic R20-11의 사양 상태를 기반으로 합니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Crypto_KeyGetStatus [SWS_Crypto_91019] 📄 PDF
Std_ReturnType Crypto_KeyGetStatus (uint32 cryptoKeyId, Crypto_KeyStatusType* keyStatusPtr);
Returns the key state of the key identified by crypto Key Id.
동기 함수 Crypto_KeyGetStatus은 암호화 드라이버 내에서 특정 키의 현재 상태를 쿼리하는 데 사용됩니다[SWS_Crypto_91019]. 이 함수는 헤더 Crypto.h를 통해 제공되며 서비스 ID 0x14을 갖습니다[SWS_Crypto_91019].
사용법 및 매개변수
호출은 동기식으로 이루어지며 두 개의 매개변수를 필요로 합니다[SWS_Crypto_91019]:
cryptoKeyId: 상태를 확인할 키의 식별자입니다.keyStatusPtr: 상태가 반환될Crypto_KeyStatusType타입의 메모리 영역에 대한 포인터입니다.
반환값으로 인터페이스는 Std_ReturnType을 반환합니다. 성공적으로 수행되면 E_OK이 보고되고, 오류 시에는 E_NOT_OK가 반환됩니다[SWS_Crypto_91019].
동시성 및 제약사항
이 함수는 비-재진입(Non Reentrant)으로 선언되어 있습니다[SWS_Crypto_91019]. 따라서 호출자는 상위 레벨 동기화 메커니즘을 통해 동시 호출이 발생하지 않도록 해야 합니다. 특정 DET 오류 메시지는 나열되어 있지 않으며, 유효하지 않은 포인터나 유효하지 않은 ID와 같은 잘못된 호출은 E_NOT_OK의 직접 반환으로 이어질 것으로 추정됩니다[SWS_Crypto_91019]. 질문 Q-5703fab02905e91a (열림)
이 텍스트는 AI에 의해 작성되었으며 AUTOSAR R20-11 사양을 기반으로 합니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Crypto_KeyElementCopy [SWS_Crypto_00148] 📄 PDF
Std_ReturnType Crypto_KeyElementCopy (uint32 cryptoKeyId, uint32 keyElementId, uint32 targetCryptoKeyId, uint32 targetKeyElementId);
Service Crypto_KeyElementCopy.
동기 함수 Crypto_KeyElementCopy은 동일한 암호화 드라이버 내에서 하나의 키 요소를 다른 키 요소로 복사하는 역할을 합니다[SWS_Crypto_00148]. 소스 키(cryptoKeyId) 및 소스 키 요소(keyElementId)의 식별자와 대상 키(targetCryptoKeyId) 및 대상 키 요소(targetKeyElementId)의 식별자가 전달됩니다[SWS_Crypto_00148].
시간 동작과 관련하여, 플래시 메모리에 직접 매핑된 키 요소의 경우 동기식 실행으로 인해 함수 호출 시 더 큰 지연이 발생할 수 있음에 유의해야 합니다[SWS_Crypto_00148]. 따라서 특히 시간에 민감한 컨텍스트에서는 런타임 동작을 고려해야 합니다.
이 함수는 reentrant로 설계되었으나, 동일한 cryptoKeyId에 대해서는 명시적으로 그렇지 않습니다[SWS_Crypto_00148]. 따라서 동일한 소스 키를 사용한 동시 호출은 호출자에 의해 동기화되거나 배제되어야 합니다.
성공 시 함수는 E_OK을 반환합니다[SWS_Crypto_00148]. 오류가 발생한 경우 반환값은 특정 원인을 나타냅니다[SWS_Crypto_00148]:
CRYPTO_E_BUSY: 암호화 드라이버 객체가 사용 중입니다[SWS_Crypto_00148].CRYPTO_E_KEY_NOT_AVAILABLE: 적어도 하나의 키에서 요청된 키 요소를 사용할 수 없습니다[SWS_Crypto_00148].CRYPTO_E_KEY_READ_FAIL또는CRYPTO_E_KEY_WRITE_FAIL: 소스 요소 읽기 또는 대상 요소 쓰기가 허용되지 않습니다[SWS_Crypto_00148].CRYPTO_E_KEY_SIZE_MISMATCH: 키 요소의 크기가 서로 호환되지 않습니다[SWS_Crypto_00148].CRYPTO_E_KEY_EMPTY: 소스 키 요소가 초기화되지 않았습니다[SWS_Crypto_00148].E_NOT_OK: 요청이 일반적으로 실패했습니다 [SWS_Crypto_00148].
이 사용 지침은 AUTOSAR Classic R20-11 사양을 바탕으로 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Crypto_KeyElementCopyPartial [SWS_Crypto_91015] 📄 PDF
Std_ReturnType Crypto_KeyElementCopyPartial (uint32 cryptoKeyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetCryptoKeyId, uint32 targetKeyElementId);
Service Crypto_KeyElementCopyPartial.
동기 함수 Crypto_KeyElementCopyPartial은 동일한 암호화 드라이버 내에서 소스 키 요소의 데이터를 대상 키 요소로 부분 복사하는 데 사용됩니다 [SWS_Crypto_91015]. 매개변수 keyElementSourceOffset 및 keyElementCopyLength을 통해 소스 요소(cryptoKeyId, keyElementId)에서 복사할 부분이 정의되며, keyElementTargetOffset은 대상 요소(targetCryptoKeyId, targetKeyElementId)에서의 시작 위치를 결정합니다. 검사에 오류가 없으면 드라이버는 복사 작업을 동기적으로 수행하고 E_OK를 반환합니다 [SWS_Crypto_00209].
수행 전 드라이버는 버퍼 및 드라이버 상태를 유효성 검사합니다:
- 암호화 드라이버가 초기화되지 않았고 개발 오류 감지가 활성화된 경우, 함수는 DET에
CRYPTO_E_UNINIT을 보고하고E_NOT_OK을 반환합니다 [SWS_Crypto_00205]. - 소스 키 요소의 전체 길이가
keyElementSourceOffset + keyElementCopyLength보다 작으면 호출은CRYPTO_E_KEY_SIZE_MISMATCH과 함께 실패합니다 [SWS_Crypto_00207]. - 대상 키 요소의 최대 버퍼 공간이
keyElementTargetOffset + keyElementCopyLength보다 작으면 마찬가지로CRYPTO_E_KEY_SIZE_MISMATCH이 보고됩니다 [SWS_Crypto_00208]. - 기타 명시된 오류값에는
CRYPTO_E_BUSY(드라이버 객체 사용 중),CRYPTO_E_KEY_EMPTY(초기화되지 않은 소스 요소),CRYPTO_E_KEY_NOT_AVAILABLE및 읽기 또는 쓰기 액세스 오류(CRYPTO_E_KEY_READ_FAIL,CRYPTO_E_KEY_WRITE_FAIL) 등이 있습니다 [SWS_Crypto_91015].
이 함수는 재진입 가능하지만, 동일한 키 ID cryptoKeyId에 대해 동시에 호출되어서는 안 됩니다 [SWS_Crypto_91015]. 키 요소가 플래시 메모리에 직접 저장되어 있는 경우 동기 실행으로 인해 눈에 띄는 시간 지연이 발생할 수 있습니다 [SWS_Crypto_91015].
이 사용 지침은 AUTOSAR 명세 R20-11을 기반으로 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I2)
함수 Crypto_KeyCopy [SWS_Crypto_00155] 📄 PDF
Std_ReturnType Crypto_KeyCopy (uint32 cryptoKeyId, uint32 targetCryptoKeyId);
Copies a key with all its elements to another key in the same crypto driver. Note: If the actual key element is directly mapped to flash memory, there could be a bigger delay when calling this function (synchronous operation)
사용
동기 함수 Crypto_KeyCopy은 동일한 Crypto 드라이버 내에서 키와 해당 키의 모든 키 요소를 대상 키로 복사합니다 [SWS_Crypto_00155]. 할당은 소스 키를 위한 입력 매개변수 cryptoKeyId 및 대상 키를 위한 targetCryptoKeyId을 통해 수행됩니다 [SWS_Crypto_00155]. 성공적인 복사 작업은 E_OK로 확인됩니다 [SWS_Crypto_00155].
동시성 및 런타임 동작
이 인터페이스는 재진입 가능하도록 설계되었으나, 동일한 cryptoKeyId에 대해 동시에 실행되어서는 안 됩니다 [SWS_Crypto_00155]. 동기적으로 실행되므로 플래시 메모리에 직접 저장된 키 요소의 경우 호출 중 눈에 띄는 시간 지연이 발생할 수 있습니다 [SWS_Crypto_00155].
오류 처리
오류 발생 시 이 함수는 Std_ReturnType 타입의 특정 반환값을 제공합니다 [SWS_Crypto_00155]:
CRYPTO_E_BUSY: 연관된 Crypto Driver Object가 사용 중입니다 [SWS_Crypto_00155].CRYPTO_E_KEY_NOT_AVAILABLE: 요청된 키 중 적어도 하나를 사용할 수 없습니다 [SWS_Crypto_00155].CRYPTO_E_KEY_READ_FAIL: 소스 키 요소를 읽을 수 없습니다 [SWS_Crypto_00155].CRYPTO_E_KEY_WRITE_FAIL: 대상 키 요소를 쓸 수 없습니다 [SWS_Crypto_00155].CRYPTO_E_KEY_SIZE_MISMATCH: 키 요소의 크기가 서로 호환되지 않습니다 [SWS_Crypto_00155].CRYPTO_E_KEY_EMPTY: 소스 키의 키 요소가 초기화되지 않았습니다 [SWS_Crypto_00155].E_NOT_OK: 요청 수행에 실패했습니다 [SWS_Crypto_00155].
본 사용 지침은 AUTOSAR CP R20-11 사양을 바탕으로 AI에 의해 생성되었습니다.
함수 Crypto_KeyElementIdsGet [SWS_Crypto_00160] 📄 PDF
Std_ReturnType Crypto_KeyElementIdsGet (uint32 cryptoKeyId, uint32* keyElementIdsPtr, uint32* keyElementIdsLengthPtr);
Used to retrieve information which key elements are available in a given key.
동기 함수 Crypto_KeyElementIdsGet은 지정된 키에서 어떤 키 요소를 사용할 수 있는지에 대한 정보를 쿼리하는 데 사용됩니다[SWS_Crypto_00160]. 입력 매개변수 cryptoKeyId를 통해 사용 가능한 요소 ID를 내보낼 키의 식별자가 전달됩니다[SWS_Crypto_00160]. 확인된 식별자는 포인터 keyElementIdsPtr가 참조하는 배열에 저장됩니다[SWS_Crypto_00160].
버퍼 크기 관리는 입출력 매개변수 keyElementIdsLengthPtr을 통해 이루어집니다. 호출 시 이 매개변수는 제공된 버퍼 keyElementIdsPtr의 크기를 포함해야 합니다[SWS_Crypto_00160]. 작업이 완료된 후 그곳에 실제 존재하는 키 요소의 수가 저장됩니다[SWS_Crypto_00160].
반환값으로 이 서비스는 성공적인 쿼리 시 E_OK을 반환하고, 요청이 실패한 경우 E_NOT_OK을 반환합니다[SWS_Crypto_00160]. 호출 시점에 담당 암호화 드라이버 객체가 사용 중이면 오류 코드 CRYPTO_E_BUSY이 반환됩니다[SWS_Crypto_00160].
동시성과 관련하여 이 함수는 reentrant이지만, 동일한 cryptoKeyId에 대해 동시에 호출되어서는 안 됩니다[SWS_Crypto_00160]. 선언은 헤더 Crypto.h를 통해 사용할 수 있습니다[SWS_Crypto_00160].
이 텍스트는 AUTOSAR 사양을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Crypto_RandomSeed [SWS_Crypto_91013] 📄 PDF
Std_ReturnType Crypto_RandomSeed (uint32 cryptoKeyId, const uint8* seedPtr, uint32 seedLength);
This function generates the internal seed state using the pro vided entropy source. Furthermore, this function can be used to update the seed state with new entropy
동기 함수 Crypto_RandomSeed(서비스 ID 0x0d)은 [SWS_Crypto_91013]에 따라 제공된 엔트로피 소스를 사용하여 키의 내부 시드 상태를 생성하고 업데이트하는 역할을 합니다. 함수 선언은 헤더 파일 Crypto.h에 포함되어 있습니다.
사용 및 호출 매개변수
초기 생성 외에도 [SWS_Crypto_91013]에 따르면 이 함수를 사용하여 새로운 엔트로피로 시드 상태를 업데이트할 수도 있습니다. 이때 동기 호출에는 세 개의 입력 매개변수가 필요합니다:
cryptoKeyId: 새 시드를 생성할 키의 식별자를 전달합니다.seedPtr: 시드 공급을 위한 데이터가 있는 메모리 영역에 대한 포인터를 유지합니다.seedLength: 전달된 시드 데이터의 길이를 바이트 단위로 정의합니다.
반환값 및 오류 처리
반환값으로 Crypto_RandomSeed은 [SWS_Crypto_91013]에 따라 Std_ReturnType 타입의 상태를 보고합니다:
E_OK: 요청이 성공적으로 실행되었습니다.E_NOT_OK: 요청이 실패했습니다.CRYPTO_E_KEY_NOT_VALID:cryptoKeyId을 통해 식별된 키의 키 상태가 "invalid" 상태이므로 실행이 실패합니다.
동시성 및 제약사항
[SWS_Crypto_91013]에 따르면 이 함수는 reentrant로 지정되어 있지만, 동일한 cryptoKeyId에 대해서는 명시적으로 그렇지 않습니다. 따라서 동일한 키에 대한 병렬 호출은 호출자 측에서 방지되어야 합니다.
이 텍스트는 AI에 의해 생성되었으며 페이로드의 사양 데이터만을 기반으로 합니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Crypto_KeyGenerate [SWS_Crypto_91007] 📄 PDF
Std_ReturnType Crypto_KeyGenerate (uint32 cryptoKeyId);
Generates new key material store it in the key identified by crypto Key Id.
사용
헤더 파일 Crypto.h을 통해 제공되는 함수 Crypto_KeyGenerate은 새로운 키 자료를 생성하고 식별자 cryptoKeyId를 통해 주소 지정된 키를 업데이트합니다[SWS_Crypto_91007]. 이 함수는 완전히 동기식으로 작동하며 서비스 ID 0x07로 정의되어 있습니다[SWS_Crypto_91007]. 키 식별자 외에 다른 매개변수는 존재하지 않습니다[SWS_Crypto_91007].
동시성 및 제약사항
동시성과 관련하여 Crypto_KeyGenerate은 reentrant로 지정되어 있지만, 동일한 cryptoKeyId에 대해서는 적용되지 않는다는 명시적 제한이 있습니다[SWS_Crypto_91007]. 동일한 키에 대해 여러 요청이 이루어지는 경우 드라이버 충돌을 방지하기 위해 호출자 측에서 이를 동기화해야 합니다.
반환값 및 오류 처리
기본 타입 Std_ReturnType의 반환값을 통해 호출자는 작업의 성공 또는 특정 오류 원인에 대한 자세한 피드백을 받습니다[SWS_Crypto_91007]:
E_OK: 키 생성이 성공적으로 실행되었습니다[SWS_Crypto_91007].CRYPTO_E_BUSY: 담당 Crypto Driver Object가 현재 사용 중이므로 요청이 실패했습니다[SWS_Crypto_91007].CRYPTO_E_KEY_EMPTY: 필요한 소스 키 요소가 초기화되지 않아 생성이 실패했습니다[SWS_Crypto_91007].CRYPTO_E_KEY_NOT_VALID:cryptoKeyId이 참조하는 키의 키 상태가 무효로 표시되어 작업이 실패했습니다[SWS_Crypto_91007].E_NOT_OK: 기타 이유로 키 생성 요청이 실패했습니다[SWS_Crypto_91007].
이 사용 지침은 AUTOSAR Classic R20-11 사양을 바탕으로 자동 생성되었습니다.
함수 Crypto_KeyDerive [SWS_Crypto_91008] 📄 PDF
Std_ReturnType Crypto_KeyDerive (uint32 cryptoKeyId, uint32 targetCryptoKeyId);
Derives a new key by using the key elements in the given key identified by the crypto Key Id. The given key contains the key elements for the password, salt. The derived key is stored in the key element with the id 1 of the key identified by target Crypto Key Id. The number of iterations is given in the key element CRYPTO_ KE_ KEYDERIVATION_ ITERATIONS.
동기 함수 Crypto_KeyDerive은 소스 키(cryptoKeyId)의 키 요소로부터 새로운 암호화 키를 유도하여 이를 대상 키(targetCryptoKeyId)의 ID가 1인 키 요소에 저장합니다[SWS_Crypto_91008]. 소스 키에는 암호 및 솔트에 필요한 키 요소가 포함되어 있어야 하며, 반복 횟수는 키 요소 CRYPTO_KE_KEYDERIVATION_ITERATIONS를 통해 지정됩니다[SWS_Crypto_91008].
호출 및 동시성
이 인터페이스는 reentrant이지만, 동일한 cryptoKeyId에 대해 동시에 호출되어서는 안 됩니다[SWS_Crypto_91008]. 따라서 호출자는 병렬 유도 작업이 서로 다른 소스 키에서 작동하도록 보장해야 합니다.
반환값 및 오류 처리
함수는 타입 Std_ReturnType의 정의된 반환값을 통해 결과를 알립니다[SWS_Crypto_91008]:
E_OK: 키 유도가 성공적으로 수행되었습니다.E_NOT_OK: 유도가 실패했습니다. 매개변수targetCryptoKeyId이 유효 범위를 벗어나고 개발 오류 감지가 활성화된 경우, 함수는 DET에CRYPTO_E_PARAM_HANDLE도 보고합니다[SWS_Crypto_00180].CRYPTO_E_BUSY: 담당 Crypto Driver Object가 사용 중입니다 [SWS_Crypto_91008].CRYPTO_E_KEY_EMPTY: 필요한 소스 키 요소가 초기화되지 않았습니다[SWS_Crypto_91008].CRYPTO_E_KEY_NOT_VALID:cryptoKeyId이 참조하는 키의 상태가 무효입니다[SWS_Crypto_91008].
이 사용 지침은 명세를 기반으로 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Crypto_KeyExchangeCalcPubVal [SWS_Crypto_91009] 📄 PDF
Std_ReturnType Crypto_KeyExchangeCalcPubVal (uint32 cryptoKeyId, uint8* publicValuePtr, uint32* publicValueLengthPtr);
Calculates the public value for the key exchange a nd stores the public key in the memory location pointed by the public value pointer.
사용
동기 함수 Crypto_KeyExchangeCalcPubVal은 키 교환 프로토콜을 위한 공개 값을 계산하고 이를 publicValuePtr의 저장 위치에 저장합니다([SWS_Crypto_91009]). 호출자는 cryptoKeyId을 통해 프로토콜에 사용될 키의 식별자를 전달합니다. 입출력 매개변수 publicValueLengthPtr를 통해 호출 시 제공된 메모리의 버퍼 크기를 전달해야 하며, 실행 완료 후 그곳에 계산된 공개 값의 실제 길이가 저장됩니다([SWS_Crypto_91009]).
오류 처리 및 반환값
성공적인 실행 시 함수는 E_OK을 반환합니다. 오류가 발생하면 E_NOT_OK 또는 특정 오류 코드가 반환됩니다([SWS_Crypto_91009]):
CRYPTO_E_BUSY: Crypto Driver Object가 사용 중이므로 요청이 실패합니다.CRYPTO_E_KEY_EMPTY: 소스 키 요소가 초기화되지 않았기 때문에 요청이 실패합니다.CRYPTO_E_KEY_NOT_VALID:cryptoKeyId을 통해 참조된 키의 상태가 무효이므로 요청이 실패합니다.
동시성 및 시스템 통합
[SWS_Crypto_91009]에 따르면 이 함수는 reentrant이지만 동일한 cryptoKeyId에 대해서는 그렇지 않습니다. 암호화 드라이버가 Crypto_KeyExchangeCalcPubVal와 같은 내부 목적으로 난수 생성기(RNG) 서비스를 필요로 하는 경우, 첫 번째 Crypto Driver Object(객체 번호 0)가 이 목적을 위해 구성되어 있어야 합니다([SWS_Crypto_00224]).
이 텍스트는 AI에 의해 생성되었습니다. 모든 내용은 AUTOSAR Classic R20-11 사양을 기반으로 합니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Crypto_KeyExchangeCalcSecret [SWS_Crypto_91010] 📄 PDF
Std_ReturnType Crypto_KeyExchangeCalcSecret (uint32 cryptoKeyId, const uint8* partnerPublicValuePtr, uint32 partnerPublicValueLength);
Calculates the shared secret key for the key exchange with the key material of the key identified by the crypto Key Id and the partner public key. The shared secret key is stored as a key element in the same key.
동기 함수 Crypto_KeyExchangeCalcSecret은 키 교환 프로토콜을 위한 공유 비밀 키(Shared Secret Key)를 계산하는 역할을 합니다[SWS_Crypto_91010]. 이 함수는 cryptoKeyId를 통해 지정된 키의 키 자료를 partnerPublicValuePtr을 통해 전달된 상대방의 공개 값(바이트 수는 partnerPublicValueLength를 통해 지정됨)과 함께 처리합니다[SWS_Crypto_91010]. 계산된 공유 비밀은 동일한 키 내의 키 요소로 직접 저장됩니다[SWS_Crypto_91010].
반환값으로 함수는 Std_ReturnType을 통해 상태를 보고합니다[SWS_Crypto_91010]:
E_OK: 비밀의 계산 및 저장이 성공적으로 완료되었습니다[SWS_Crypto_91010].E_NOT_OK: 요청이 실패했습니다[SWS_Crypto_91010].CRYPTO_E_BUSY: 담당 Crypto Driver Object가 사용 중이므로 실행이 실패했습니다[SWS_Crypto_91010].CRYPTO_E_KEY_EMPTY: 소스 키 요소가 초기화되지 않았습니다 [SWS_Crypto_91010].CRYPTO_E_KEY_NOT_VALID:cryptoKeyId이 참조하는 키의 상태가 무효입니다[SWS_Crypto_91010].
이 인터페이스는 reentrant로 구현되어 있지만, 동일한 cryptoKeyId에 대해 동시에 호출되어서는 안 됩니다[SWS_Crypto_91010]. 따라서 호출자는 동일한 키 ID를 가진 동시 호출을 방지하고, 오류 상태를 방지하기 위해 참조된 키 자료가 사전에 초기화되고 유효한 상태인지 확인해야 합니다[SWS_Crypto_91010].
이 사용 지침은 SWS_Crypto_91010 사양을 기반으로 자동 생성되었습니다.
함수 Crypto_MainFunction [SWS_Crypto_91012] 📄 PDF
void Crypto_MainFunction (void);
If asynchronous job processing is configured and there are job queues, the function is called cyclically to process queued jobs. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_CryptoDriver
함수 Crypto_MainFunction은 암호화 드라이버의 작업 대기열에 인큐된 암호화 작업을 주기적으로 처리하는 역할을 합니다[SWS_Crypto_91012]. 이 함수의 사용을 위한 전제 조건은 모듈에서 비동기 작업 처리가 구성되어 있고 해당 작업 대기열이 존재하는 것입니다[SWS_Crypto_91012].
호출 및 시맨틱
이 함수는 시그니처 void Crypto_MainFunction(void)을 가지며 서비스 ID 0x0c로 지정되어 있습니다[SWS_Crypto_91012]. 입력 매개변수를 받지 않으며 반환값도 제공하지 않습니다. 인터페이스는 헤더 SchM_Crypto.h을 통해 제공됩니다[SWS_Crypto_91012]. 이는 주기적 호출이 운영체제의 주기적 태스크 컨텍스트에서 BSW 스케줄러(Schedule Manager)에 의해 계획대로 트리거된다는 해석을 가능하게 합니다.
동시성 및 제약사항
호출은 비동기 작업 대기열의 구성에 엄격하게 종속됩니다[SWS_Crypto_91012]. 사양에서 Crypto_MainFunction에 대한 재진입성을 명시하지 않으므로 이 함수는 비-재진입으로 처리되어야 할 것으로 보이며, 따라서 여러 스레드 또는 태스크에서의 병렬 호출은 피해야 합니다. 질문 Q-038d384305c8c5c3 (열림)
오류 처리
사양에는 이 함수에 대한 특정 오류 코드나 DET 항목이 정의되어 있지 않습니다[SWS_Crypto_91012]. 함수가 반환값을 제공하지 않으므로 비동기 처리 중 발생하는 모든 오류는 상태 쿼리 또는 해당 작업의 피드백 채널을 통해 상위 계층으로 전달될 것으로 추정됩니다. 질문 (열림)
본 사용 지침은 AUTOSAR CP R20-11 사양을 바탕으로 AI에 의해 생성되었습니다.
타입 Crypto_ConfigType [SWS_Crypto_91016] 📄 PDF
Configuration data structure of Cry If module
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_Crypto- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_Crypto@rel:R20-11#ab86e1bf- Content hash
ab86e1bf- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_CryptoDriver.pdf#nameddest=SWS_Crypto_91000
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문