다음을 통해 공유


CertStore_InstallRootCACertificate 함수

헤더: #include <applibs/certstore.h>

PEM 형식의 공용 인증서로 구성된 루트 CA 인증서를 설치하고 인증서에 ID를 할당합니다. 그런 다음 ID를 사용하여 다른 함수의 인증서를 참조할 수 있습니다. 모든 유형의 인증서가 동일한 ID로 이미 설치된 경우 새 인증서로 바뀝니다.

int CertStore_InstallRootCACertificate(const char *identifier, const char *certBlob,
                                       size_t certBlobLength);

매개 변수

  • identifier 인증서의 ID입니다.

  • certBlob PEM 형식의 공용 인증서를 포함하는 Blob에 대한 포인터입니다.

  • certBlobLength null 종결자 문자를 포함하지 않는 인증서 Blob의 길이입니다.

오류

오류가 발생하고 를 오류 값으로 설정 errno 하면 -1을 반환합니다.

  • EACCES: CertStore 기능이 애플리케이션 매니페스트에 설정되지 않았기 때문에 작업이 허용되지 않습니다.

  • EAGAIN: OS 인증서 구성 요소가 아직 준비되지 않았습니다.

  • EFAULT: 또는 identifiercertBlob NULL입니다.

  • EINVAL: 매개 변수가 identifier NULL로 종료되지 않았거나 가 certBlob 잘못된 문자를 포함합니다.

  • ENOSPC: 인증서 스토리지에 이 인증서의 공간이 부족합니다.

  • ERANGE: 가 certBlobLength 0이거나 CERTSTORE_MAX_CERT_SIZE 보다 큽니다.

다른 errno 모든 오류도 지정할 수 있습니다. 이러한 오류는 결정적이지 않으며 시스템 업데이트를 통해 동일한 동작이 유지된다는 보장은 없습니다.

반환 값

성공의 경우 0을 반환하고 실패의 경우 -1을 반환합니다. 이 경우 errno 오류 값으로 설정됩니다.

발언

유효한 식별자는 1에서 CERTSTORE_MAX_IDENTIFIER_LENGTH 문자까지의 고유한 문자열이어야 합니다. 다음 문자는 identifer에서 유효합니다.

  • 'A'를 'Z'로
  • 'a'~ 'z'
  • '0'에서 '9'로
  • '.' 또는 '-' 또는 '_'

주의

인증서 ID는 시스템 전체이므로 새 인증서를 az sphere 추가하는 명령 또는 함수 호출은 이전 명령 또는 함수 호출에 의해 추가된 인증서를 덮어쓸 수 있으므로 네트워크 연결 오류가 발생할 수 있습니다. 명확한 인증서 업데이트 절차를 개발하고 인증서 ID를 신중하게 선택하는 것이 좋습니다.

Azure Sphere 에서 인증서 ID를 사용하는 방법에 대한 자세한 내용은 인증서 ID를 참조하세요.

애플리케이션 매니페스트 요구 사항

애플리케이션 매니페스트에는 CertStore 기능이 포함되어야 합니다.