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 izni 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'a 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 kodlu bir X.509 DistinguishedName olmalıdır.

  • certificateTypes

    Bu alan, istenen sertifika türlerinin sunucunun tercih sırasına göre sıralanmış listesidir. Yalnızca bu listede yer alan türdeki sertifikalar alınır. Ancak certificateTypes boş liste ise herhangi bir türdeki sertifikalar 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'u. 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ı

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

  • etkileşimli

    boole

    Doğruysa filtrelenmiş liste kullanıcıya sunulur. Kullanıcı, sertifikayı manuel olarak seçer ve böylece uzantıya sertifikalara ve anahtarlara erişim izni verilir. Yalnızca seçilen sertifikalar döndürülür. Yanlışsa liste, uzantının erişim izni aldığı (otomatik olarak veya manuel olarak) tüm sertifikelerle sınırlandırılır.

  • 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 sertifikasını 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ğrulama başarısız olursa bu dizi, temel ağ katmanı tarafından bildirilen hataları içerir. Aksi takdirde bu dizi boştur.

    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 uyumlu olması garanti edilmez.

  • güvenilir

    boole

    Güven doğrulamasının sonucu: Belirli doğrulama ayrıntıları için güven oluşturulabiliyorsa doğru, herhangi bir nedenle güven reddedilirse yanlış.

Yöntemler

getKeyPair()

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

platformKeys.subtleCrypto ile kullanılmak üzere certificate anahtar çiftini callback'e 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, 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şturmaz.

    Bu yöntem şu anda 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

      object isteğe bağlı

      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 ile tanımlanan anahtar çiftini, platformKeys.subtleCrypto ile kullanılmak üzere callback'ye iletir.

Parametreler

  • publicKeySpkiDer

    ArrayBuffer

    Örneğin, WebCrypto'nun exportKey işlevi format="spki" ile çağrılarak elde edilen, DER kodlu bir X.509 SubjectPublicKeyInfo.

  • parametreler

    nesne

    Anahtarın kendisi tarafından sabitlenenlere ek olarak imza ve karma algoritması parametreleri sağlar. WebCrypto'nun importKey işleviyle aynı parametreler kabul edilir. Örneğin, RSASSA-PKCS1-v1_5 anahtarı için RsaHashedImportParams. RSASSA-PKCS1-v1_5 anahtarları için { "hash": { "name": string } } "karma" parametresini de iletmemiz gerekir. "Karma" parametresi, imza öncesinde özet işleminde kullanılacak karma algoritmasının adını temsil eder. Karma adı olarak "none" iletilebilir. Bu durumda, imza işlevi PKCS#1 v1.5 dolgusu uygular ancak verilen veriye karma oluşturmaz.

    Bu yöntem şu anda, adlandırılmış eğri P-256 ile "ECDSA" algoritmasını ve karma oluşturma algoritmalarından biri olan "none", "SHA-1", "SHA-256", "SHA-384" ve "SHA-512" ile "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

      object isteğe bağlı

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

selectClientCertificates()

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

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

Parametreler

  • ayrıntılar
  • callback

    işlev isteğe bağlı

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

    (matches: Match[]) => void

    • eşleşiyor

      İsteğe uygun, uzantının izni olan ve interactive doğruysa kullanıcı tarafından seçilen sertifikaların listesi.

İadeler

  • Promise<Match[]>

    Chrome 121 ve sonraki sürümler

    Promises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.

subtleCrypto()

chrome.platformKeys.subtleCrypto(): object | undefined

Bu uzantının kullanabildiği istemci sertifikalarının anahtarlarında kripto işlemleri yapılmasına olanak tanıyan WebCrypto'nun SubtleCrypto uygulaması.

İadeler

  • object | undefined

verifyTLSServerCertificate()

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

Platformun güven ayarlarına göre details.serverCertificateChain öğesinin details.hostname için güvenilir olup olmadığını 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 onaylar ve bilinen bir CA tarafından güveni kontrol eder. Uygulama, EKU serverAuth'a uymalı ve konu alternatif adlarını desteklemelidir.

Parametreler

İadeler

  • Chrome 121 ve sonraki sürümler

    Promises yalnızca Manifest V3 ve sonraki sürümlerde desteklenir. Diğer platformlarda geri çağırmalar kullanılmalıdır.