chrome.platformKeys

refresh date: 2026-09-25 robots: noindex

Açıklama

Platform tarafından yönetilen istemci sertifikalarına erişmek için chrome.platformKeys API'sini kullanın. Kullanıcı veya politika izin verirse uzantı, özel kimlik doğrulama protokolünde bu tür bir sertifika kullanabilir. Örneğin, bu sayede üçüncü taraf VPN'lerde platform tarafından yönetilen sertifikalar kullanılabilir (chrome.vpnProvider sayfasına bakın).

İzinler

platformKeys

Kullanılabilirlik

Chrome 45 ve sonraki sürümler Yalnızca ChromeOS

Türler

ClientCertificateRequest

Özellikler

  • certificateAuthorities

    ArrayBuffer[]

    Sunucu tarafından izin verilen sertifika yetkililerinin ayırt edici adlarının listesi. Her giriş, DER ile kodlanmış bir X.509 DistinguishedName olmalıdır.

  • certificateTypes

    Bu alan, istenen sertifika türlerinin sunucunun tercihine göre sıralandığı bir listedir. Yalnızca bu listede yer alan türdeki sertifikalar alınır. Ancak certificateTypes boş bir listeyse her türden sertifika döndürülür.

ClientCertificateType

Enum

"rsaSign"

"ecdsaSign"

Match

Özellikler

  • sertifika

    ArrayBuffer

    X.509 sertifikasının DER kodlaması.

  • keyAlgorithm

    nesne

    Sertifikalı anahtarın KeyAlgorithm değeri. Bu, sertifikanın anahtarına özgü algoritma parametrelerini (ör. anahtar uzunluğu) içerir. İmza işlevi tarafından kullanılan karma işlevi gibi diğer parametreler dahil edilmez.

SelectDetails

Özellikler

  • clientCerts

    ArrayBuffer[] isteğe bağlı

    Belirtilirse selectClientCertificates bu listede çalışır. Aksi takdirde, platformun sertifika depolarından bu uzantıların kullanabileceği tüm sertifikaların listesini alır. Uzantının izni olmayan veya istekle eşleşmeyen girişler kaldırılır.

  • etkileşimli

    boole

    Doğru olarak ayarlanırsa filtrelenmiş liste, kullanıcıya manuel olarak bir sertifika seçmesi için sunulur. Böylece uzantıya sertifikalara ve anahtarlara erişim izni verilir. Yalnızca seçilen sertifikalar döndürülür. Yanlış ise liste, uzantıya erişim izni verilen (otomatik veya manuel olarak) tüm sertifikalara indirgenir.

  • Yalnızca bu istekle eşleşen sertifikalar döndürülür.

VerificationDetails

Özellikler

  • ana makine adı

    dize

    Sertifikası doğrulanacak sunucunun ana makine adı (ör. serverCertificateChain sunan sunucu).

  • serverCertificateChain

    ArrayBuffer[]

    Her zincir girişi, bir X.509 sertifikasının DER kodlaması olmalıdır. İlk giriş, sunucu sertifikası olmalı ve her giriş, kendisinden önceki girişi onaylamalıdır.

VerificationResult

Özellikler

  • debug_errors

    string[]

    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 tüm alakalı hataları içermeyebilir. Döndürülen hatalar, bu API'nin gelecekteki düzeltmelerinde değişebilir ve ileriye veya geriye dönük uyumlu olacağı garanti edilmez.

  • güvenilir

    boole

    Güven doğrulamasının sonucu: Belirtilen doğrulama ayrıntıları için güven oluşturulabiliyorsa "true", güven herhangi bir nedenle reddedilirse "false" değerini döndürür.

Yöntemler

getKeyPair()

chrome.platformKeys.getKeyPair(
  certificate: ArrayBuffer,
  parameters: object,
  callback: function,
)
: void

platformKeys.subtleCrypto ile kullanılacak certificate anahtar çiftini callback hizmetine iletir.

Parametreler

  • sertifika

    ArrayBuffer

    selectClientCertificates tarafından döndürülen Match sertifikası.

  • parametreler

    nesne

    Anahtarın kendisi tarafından sabitlenen parametrelere ek olarak imza/karma algoritması parametrelerini belirler. WebCrypto'nun importKey işleviyle aynı parametreler kabul edilir. Örneğin, RSASSA-PKCS1-v1_5 anahtarı için RsaHashedImportParams ve EC anahtarı için EcKeyImportParams. Ayrıca 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" } }). İmzalama işlevi daha sonra PKCS#1 v1.5 dolgusunu uygular ancak verilen verileri karma oluşturma işlemine tabi tutmaz.

    Şu anda bu yöntem yalnızca "RSASSA-PKCS1-v1_5" ve "ECDSA" algoritmalarını desteklemektedir.

  • callback

    işlev

    callback parametresi şu şekilde görünür:

    (publicKey: object, privateKey?: object) => void

    • publicKey

      nesne

    • privateKey

      isteğe bağlı nesne

      Bu uzantının erişimi yoksa null olabilir.

getKeyPairBySpki()

Chrome 85 ve sonraki sürümler
chrome.platformKeys.getKeyPairBySpki(
  publicKeySpkiDer: ArrayBuffer,
  parameters: object,
  callback: function,
)
: void

publicKeySpkiDer tarafından tanımlanan anahtar çiftini platformKeys.subtleCrypto ile kullanılmak üzere callback hizmetine iletir.

Parametreler

  • publicKeySpkiDer

    ArrayBuffer

    Örneğin, WebCrypto'nun exportKey işlevini format="spki" ile çağırarak elde edilen, DER ile kodlanmış bir X.509 SubjectPublicKeyInfo.

  • parametreler

    nesne

    Anahtarın kendisi tarafından düzeltilenlere ek olarak imza ve karma algoritması parametreleri sağlar. WebCrypto'nun importKey işleviyle aynı parametreler kabul edilir (ör. RSASSA-PKCS1-v1_5 anahtarı için RsaHashedImportParams). RSASSA-PKCS1-v1_5 anahtarları için bir "hash" parametresi { "hash": { "name": string } } de iletmemiz gerekir. "hash" parametresi, imza öncesinde özet işleminde kullanılacak karma algoritmasının adını temsil eder. Karma adı olarak "none" (hiçbiri) değerini iletebilirsiniz. Bu durumda, imzalama işlevi PKCS#1 v1.5 dolgusunu uygular ancak verilen verileri karma oluşturmaz.

    Şu anda bu yöntem, adlandırılmış eğri P-256 ile "ECDSA" algoritmasını ve "none", "SHA-1", "SHA-256", "SHA-384" ve "SHA-512" karma algoritmalarından biriyle "RSASSA-PKCS1-v1_5" algoritmasını desteklemektedir.

  • callback

    işlev

    callback parametresi şu şekilde görünür:

    (publicKey: object, privateKey?: object) => void

    • publicKey

      nesne

    • privateKey

      isteğe bağlı nesne

      Bu uzantının erişimi yoksa null olabilir.

selectClientCertificates()

Taahhüt
chrome.platformKeys.selectClientCertificates(
  details: SelectDetails,
  callback?: function,
)
: Promise<Match[]>

Bu yöntem, istemci sertifikaları listesinden platform tarafından bilinen, request ile eşleşen ve uzantının sertifikaya ve özel anahtarına erişim izni olan sertifikaları filtreler. interactive doğru değerine ayarlanırsa kullanıcıya, eşleşen sertifikalar arasından seçim yapabileceği ve uzantıya sertifika erişimi verebileceği bir iletişim kutusu gösterilir. Seçilen/filtrelenen istemci sertifikaları callback uygulamasına iletilir.

Parametreler

  • ayrıntılar
  • callback

    function isteğe bağlı

    callback parametresi şu şekilde görünür:

    (matches: Match[]) => void

    • eşleşiyor

      İstekle eşleşen, uzantının izin verdiği ve interactive doğruysa kullanıcı tarafından seçilen sertifikaların listesi.

İadeler

  • Promise<Match[]>

    Chrome 121 ve sonraki sürümler

    Promise'ler yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformların geri çağırma işlevlerini kullanması gerekir.

subtleCrypto()

chrome.platformKeys.subtleCrypto(): object | undefined

WebCrypto'nun SubtleCrypto uygulamasının bir uygulaması. Bu uzantının kullanabileceği istemci sertifikalarının anahtarları üzerinde kripto işlemlerine olanak tanır.

İadeler

  • object | undefined

verifyTLSServerCertificate()

Taahhüt
chrome.platformKeys.verifyTLSServerCertificate(
  details: VerificationDetails,
  callback?: function,
)
: Promise<VerificationResult>

Platformun güven ayarlarına göre details.serverCertificateChain için details.hostname sertifikasına güvenilip güvenilemeyeceğini kontrol eder. Not: Güven doğrulamasının gerçek davranışı tam olarak belirtilmemiştir ve gelecekte değişebilir. API uygulaması, sertifikanın geçerlilik bitiş tarihini doğrular, sertifika yolunu doğrular ve bilinen bir CA tarafından güveni kontrol eder. Uygulamanın, EKU serverAuth'a uyması ve konu alternatif adlarını desteklemesi gerekir.

Parametreler

İadeler

  • Chrome 121 ve sonraki sürümler

    Promise'ler yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformların geri çağırma işlevlerini kullanması gerekir.