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. ŞifrelenirseprivateKeyBlob
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
,identifier
veyaprivateKeyBlob
parametresi NULL'dir.EINVAL:
identifier
parametresi NULL ile sonlandırılmamış,certBlob
veyaprivateKeyBlob
geçersiz veriler içeriyor.ENOSPC: Bu sertifika için sertifika depolama alanında yeterli alan yok.
ERANGE:
certBlobLength
veyaprivateKeyBlobLength
sıfır veya CERTSTORE_MAX_CERT_SIZE büyüktür ya daprivateKeyPassword
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.