chrome.platformKeys

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

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

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).

  • 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ülen Match 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çin EcKeyImportParams. 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 85 ve sonraki sürümler 'nı inceleyin.
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()

Söz 'nı inceleyin.
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

  • ayrıntılar
  • geri çağırma

    işlev 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 izninin olduğu ve interactive true ise kullanıcı tarafından seçilen sertifikaların listesi.

İadeler

  • Promise<Eşleşir[]>

    Chrome 121 ve sonraki sürümler 'nı inceleyin.

    Vaatler yalnızca Manifest V3 ve sonraki sürümler için desteklenir. Diğer platformların geri çağırma yapması gerekir.

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()

Söz 'nı inceleyin.
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

İadeler

  • Promise&lt;VerificationResult&gt;

    Chrome 121 ve sonraki sürümler 'nı inceleyin.

    Vaatler yalnızca Manifest V3 ve sonraki sürümler için desteklenir. Diğer platformların geri çağırma yapması gerekir.