Share via


CertStore_InstallClientCertificate işlevi

Üst bilgi: #include <applibs/certstore.h>

Bir ortak sertifikadan ve belirtilen kimliğe sahip bir özel anahtardan oluşan bir istemci sertifikası yükler. Kimlik daha sonra diğer işlevlerdeki sertifikaya başvurmak için kullanılabilir. Herhangi bir sertifika türü aynı kimlikle zaten yüklüyse, yeni sertifikayla değiştirilir.

int CertStore_InstallClientCertificate(const char *identifier, const char *certBlob, size_t certBlobLength, const char *privateKeyBlob, size_t privateKeyBlobLength, const char *privateKeyPassword);

Parametre

  • identifier Sertifikanın kimliği.

  • certBlob GENEL sertifikayı PEM biçiminde içeren bir blob işaretçisi. Blob yalnızca ve -----END... etiketleri arasındaki -----BEGIN... içeriği içermelidir. Örneğin, bir sertifikanın etiketleri ve -----END CERTIFICATE-----şeklindedir-----BEGIN CERTIFICATE-----.

  • certBlobLength Null sonlandırıcı karakteri dahil değil, sertifika blobunun uzunluğu.

  • privateKeyBlob PEM biçiminde özel anahtarı içeren bir blob işaretçisi.

  • privateKeyBlobLength Null sonlandırıcı karakteri dahil değil, sertifika blobunun uzunluğu.

  • privateKeyPassword Özel anahtar parolasını içeren null ile sonlandırılan bir karakter dizisinin işaretçisi. Dizinin uzunluğu CERTSTORE_MAX_PRIVATE_KEY_PASSWORD_LENGTH bayttan küçük veya buna eşit olmalıdır. Şifrelenirse privateKeyBlob parola gereklidir.

Hata

Hatayla karşılaşılırsa ve hata değerine ayarlanırsa errno -1 döndürür.

  • EACCES: uygulama bildiriminde CertStore özelliği ayarlanmadığı için işleme izin verilmez.

  • EAGAIN: İşletim sistemi sertifika deposu bileşeni henüz hazır değil.

  • EFAULT: certBlob, identifierveya privateKeyBlob parametresi NULL'dir.

  • EINVAL: identifier parametresi NULL ile sonlandırılmamış, certBlob veya privateKeyBlob geçersiz veriler içeriyor.

  • ENOSPC: Bu sertifika için sertifika depolama alanında yeterli alan yok.

  • ERANGE: certBlobLength veya privateKeyBlobLength sıfır veya CERTSTORE_MAX_CERT_SIZE büyüktür ya da privateKeyPassword uzunluk CERTSTORE_MAX_PRIVATE_KEY_PASSWORD_LENGTH büyüktür.

Diğer errno hatalar da belirtilebilir; bu tür hatalar belirleyici değildir ve sistem güncelleştirmeleri aracılığıyla aynı davranışın korunacağının garantisi yoktur.

Dönüş değeri

Başarı için 0 veya hata için -1 döndürür; bu durumda errno hata değerine ayarlanır.

Açıklamalar

Geçerli tanımlayıcı, bir karakterden CERTSTORE_MAX_IDENTIFIER_LENGTH karakter uzunluğunda benzersiz bir dize olmalıdır. Aşağıdaki karakterler bir tanımlayıcıda geçerlidir:

  • 'A' - 'Z'
  • 'a' - 'z'
  • '0' - '9'
  • '.' veya '-' veya '_'

Dikkat

Sertifika kimlikleri sistem genelinde olduğundan, azsphere komutu veya yeni sertifika ekleyen bir işlev çağrısı, önceki bir komut veya işlev çağrısı tarafından eklenen bir sertifikanın üzerine yazabilir ve bu da ağ bağlantısı hatalarına neden olabilir. Net sertifika güncelleştirme yordamları geliştirmenizi ve sertifika kimliklerini dikkatle seçmenizi kesinlikle öneririz.

Azure Sphere'ın sertifika kimliklerini nasıl kullandığı hakkında daha fazla bilgi için bkz. Sertifika Kimlikleri.

Uygulama bildirimi gereksinimleri

Uygulama bildirimi CertStore özelliğini içermelidir.