Açıklama
Platform tarafından yönetilen istemci sertifikalarına erişmek için chrome.platformKeys
API'yi kullanın. Kullanıcı veya politika izin verirse bir uzantı, özel kimlik doğrulama protokolünde böyle bir sertifikayı kullanabilir. Ör. Bu ayar, üçüncü taraf VPN'lerde platform tarafından yönetilen sertifikaların kullanılmasına izin verir (chrome.vpnProvider sayfasına bakın).
İzinler
platformKeys
Kullanılabilirlik
Türler
ClientCertificateRequest
Özellikler
-
certificateAuthorities
ArrayBuffer[]
Sunucunun izin verdiği ayırt edici sertifika yetkililerinin adlarının listesi. Her giriş, DER kodlu bir X.509 DistinguishedName olmalıdır.
-
certificateTypes
Bu alan, sunucu tercihlerine göre sıralanmış olarak istenen sertifika türlerinin listesidir. Yalnızca bu listede yer alan bir türün sertifikaları alınır. Ancak
certificateTypes
boş listeyse her türden sertifika döndürülür.
ClientCertificateType
Enum
"rsaSign"
"ecdsaSign"
Match
Özellikler
-
sertifika
DiziArabelleği
X.509 sertifikasının DER kodlaması.
-
keyAlgorithm
nesne
Sertifikalı anahtarın KeyAlgorithm değeri. Bu sütunda, sertifika anahtarında bulunan algoritma parametreleri (ör. anahtar uzunluğu) bulunur. İşaretleme işlevi tarafından kullanılan karma işlevi gibi diğer parametreler dahil edilmez.
SelectDetails
Özellikler
-
clientCerts
ArrayBuffer[] isteğe bağlı
Değer verilirse
selectClientCertificates
bu listede çalışır. Aksi takdirde, platformun bu uzantıların kullanabildiği tüm sertifikaların listesini platformun sertifika depolarından alır. Uzantının izni olmadığı veya istekle eşleşmeyen girişler kaldırılır. -
interactive
boolean
True (doğru) değerine ayarlanırsa kullanıcıya manuel olarak bir sertifika seçmesi ve böylece uzantıya sertifikalara ve anahtarlara erişmesine izin vermesi için filtrelenmiş liste sunulur. Yalnızca seçilen sertifikalar döndürülür. Yanlış değerine ayarlanırsa liste, uzantıya erişim izni verilen tüm sertifikalara indirilir (otomatik veya manuel).
-
istek
Yalnızca bu istekle eşleşen sertifikalar döndürülür.
VerificationDetails
Özellikler
-
ana makine adı
dize
Sertifikanın doğrulanacağı sunucunun ana makine adı, ör.
serverCertificateChain
öğesini sunan sunucu. -
serverCertificateChain
ArrayBuffer[]
Her zincir girişi, bir X.509 sertifikasının DER kodlaması olmalıdır, ilk giriş sunucu sertifikası olmalı ve her giriş, kendisinden önce gelen girişi onaylamalıdır.
VerificationResult
Özellikler
-
debug_errors
dize[]
Güven doğrulaması başarısız olursa bu dizi, temel ağ katmanı tarafından bildirilen hataları içerir. Aksi takdirde, bu dizi boş olur.
Not: Bu liste yalnızca hata ayıklama amaçlıdır ve ilgili tüm hataları içermeyebilir. Döndürülen hatalar, bu API'nin gelecekteki düzeltmelerinde değişebilir ve ileriye veya geriye dönük uyumluluğa sahip olacağı garanti edilmez.
-
güvenilir
boolean
Güven doğrulamasının sonucu: Verilen doğrulama ayrıntılarına güveniliyorsa doğru, herhangi bir nedenle reddedilen güven varsa yanlıştır.
Yöntemler
getKeyPair()
chrome.platformKeys.getKeyPair(
certificate: ArrayBuffer,
parameters: object,
callback: function,
)
platformKeys.subtleCrypto
ile kullanım için certificate
anahtar çiftini callback
adlı kullanıcıya iletir.
Parametreler
-
sertifika
DiziArabelleği
selectClientCertificates
tarafından döndürülenMatch
sertifikası. -
parametreler
nesne
Anahtarın kendisi tarafından sabitlenen parametrelere ek olarak imza/karma algoritma parametrelerini belirler. WebCrypto'nun importKey işlevinde, bu parametrelerle aynı parametreler kabul edilir (ör. RSASSA-PKCS1-v1_5 anahtarı için
RsaHashedImportParams
ve EC anahtarı içinEcKeyImportParams
. Buna ek olarak, RSASSA-PKCS1-v1_5 anahtarları için karma oluşturma algoritması adı parametresi şu değerlerden biriyle belirtilebilir: "none", "SHA-1", "SHA-256", "SHA-384" veya "SHA-512" (ör.{"hash": { "name": "none" } }
Bu durumda, imza işlevi PKCS#1 v1.5 dolgusunu uygular, ancak verilen verilere karma oluşturma işlemi uygulamaz.Şu anda bu yöntem yalnızca "RSASSA-PKCS1-v1_5" ve "ECDSA" kullanır.
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(publicKey: object, privateKey?: object) => void
-
publicKey
nesne
-
privateKey
nesne isteğe bağlı
Bu uzantının erişimi yoksa
null
olabilir.
-
getKeyPairBySpki()
chrome.platformKeys.getKeyPairBySpki(
publicKeySpkiDer: ArrayBuffer,
parameters: object,
callback: function,
)
platformKeys.subtleCrypto
ile kullanılmak üzere publicKeySpkiDer
tarafından tanımlanan anahtar çiftini callback
kullanıcısına aktarır.
Parametreler
-
publicKeySpkiDer
DiziArabelleği
DER kodlamalı X.509 SubjectPublicKeyInfo (ör. format="spki" ile WebCrypto'nun ExportKey işlevini çağırarak oluşturun.
-
parametreler
nesne
Anahtarın kendisi tarafından düzeltilenlere ek olarak imza ve karma oluşturma algoritması parametreleri sağlar. WebCrypto'nun importKey işlevinde, bu parametrelerle aynı parametreler kabul edilir (ör. RSASSA-PKCS1-v1_5 anahtarı için
RsaHashedImportParams
. RSASSA-PKCS1-v1_5 anahtarları için ayrıca bir "karma" iletmemiz gerekir{ "hash": { "name": string } }
parametresinden yararlanın. "Karma" parametresi, işaretten önce özet işleminde kullanılacak olan karma oluşturma algoritmasının adını temsil eder. "none" değeri iletilebilir ifadesini içerir. Bu durumda, imzalama işlevi PKCS#1 v1.5 dolgusunu uygular ve verilen verilere karma oluşturma işlemi uygulamaz.Şu anda bu yöntem "ECDSA"yı desteklemektedir adlı algoritma P-256 ve "RSASSA-PKCS1-v1_5" "none", "SHA-1", "SHA-256", "SHA-384" ve "SHA-512" karma oluşturma algoritmalarından birini içeren karma oluşturma algoritmasını kullanır.
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(publicKey: object, privateKey?: object) => void
-
publicKey
nesne
-
privateKey
nesne isteğe bağlı
Bu uzantının erişimi yoksa
null
olabilir.
-
selectClientCertificates()
chrome.platformKeys.selectClientCertificates(
details: SelectDetails,
callback?: function,
)
Bu yöntem, platformda bilinen, request
ile eşleşen ve uzantının sertifika ile özel anahtarına erişim iznine sahip olduğu istemci sertifikalarının listesinden filtre uygular. interactive
Doğru değerine ayarlanırsa kullanıcıya eşleşen sertifikalar arasından seçim yapabileceği ve uzantıya sertifika için erişim izni verebileceği bir iletişim kutusu gösterilir. Seçili/filtrelenen istemci sertifikaları callback
hedefine aktarılacak.
Parametreler
İadeler
-
Promise<Eşleşir[]>
Chrome 121 ve sonraki sürümler 'nı inceleyin.Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.
subtleCrypto()
chrome.platformKeys.subtleCrypto()
Bu uzantıda kullanılabilen istemci sertifikalarının anahtarlarında şifreleme işlemlerine izin veren WebCrypto'nun SubtleCrypto uygulaması.
İadeler
-
object | tanımsız
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
)
Platformun güven ayarlarına göre details.hostname
için details.serverCertificateChain
uygulamasına güvenilip güvenilemeyeceğini kontrol eder. Not: Güven doğrulamasının davranışı tam olarak belirtilmemiştir ve gelecekte değişebilir. API uygulaması sertifika geçerlilik süresini doğrular, sertifika yolunu doğrular ve bilinen bir CA'nın güvenini kontrol eder. Uygulamanın, EKU ServerAuth'a uyması ve konu alternatif adlarını desteklemesi gerekir.
Parametreler
-
ayrıntılar
-
geri çağırma
işlev isteğe bağlı
callback
parametresi şu şekilde görünür:(result: VerificationResult) => void
-
sonuç
-
İadeler
-
Promise<VerificationResult>
Chrome 121 ve sonraki sürümler 'nı inceleyin.Manifest V3 ve sonraki sürümlerde vaatler desteklenir ancak geriye dönük uyumluluk Aynı işlev çağrısında ikisini birden kullanamazsınız. İlgili içeriği oluşturmak için kullanılan taahhüt, geri çağırmaya iletilen aynı türle çözümlenir.