chrome.certificateProvider

คำอธิบาย

ใช้ API นี้เพื่อแสดงใบรับรองแก่แพลตฟอร์มที่ใช้ใบรับรองเหล่านี้สำหรับการตรวจสอบสิทธิ์ TLS ได้

สิทธิ์

certificateProvider

ความพร้อมใช้งาน

Chrome 46 ขึ้นไป ChromeOS เท่านั้น

แนวคิดและการใช้งาน

การใช้งานทั่วไปของ API นี้เพื่อแสดงใบรับรองไคลเอ็นต์ไปยัง ChromeOS มีขั้นตอนต่อไปนี้

  • ส่วนขยายจะลงทะเบียนสำหรับกิจกรรม onCertificatesUpdateRequested และ onSignatureRequested
  • ส่วนขยายจะเรียกใช้ setCertificates() เพื่อแสดงรายการใบรับรองเริ่มต้นหลังจากการเริ่มใช้งาน
  • ส่วนขยายจะตรวจสอบการเปลี่ยนแปลงในรายการใบรับรองที่ใช้ได้และการเรียกใช้ setCertificates() เพื่อแจ้งเบราว์เซอร์เกี่ยวกับการเปลี่ยนแปลงดังกล่าวทุกครั้ง
  • ในระหว่างการแฮนด์เชค TLS เบราว์เซอร์จะได้รับคำขอใบรับรองไคลเอ็นต์ เมื่อใช้เหตุการณ์ onCertificatesUpdateRequested เบราว์เซอร์จะขอให้ส่วนขยายรายงานใบรับรองทั้งหมดที่มีอยู่ในปัจจุบัน
  • ส่วนขยายจะรายงานกลับมาพร้อมใบรับรองที่พร้อมใช้งานในปัจจุบัน โดยใช้เมธอด setCertificates()
  • เบราว์เซอร์จะจับคู่ใบรับรองที่มีอยู่ทั้งหมดกับคำขอใบรับรองไคลเอ็นต์จากโฮสต์ระยะไกล รายการที่ตรงกันจะแสดงให้ผู้ใช้เห็นในกล่องโต้ตอบการเลือก
  • ผู้ใช้สามารถเลือกใบรับรองเพื่ออนุมัติการตรวจสอบสิทธิ์หรือล้มเลิกการตรวจสอบสิทธิ์
กล่องโต้ตอบการเลือกใบรับรอง
กล่องโต้ตอบการเลือกใบรับรอง
  • หากผู้ใช้ล้มเลิกการตรวจสอบสิทธิ์หรือไม่มีใบรับรองที่ตรงกับคำขอ ระบบจะล้มเลิกการตรวจสอบสิทธิ์ไคลเอ็นต์ TLS
  • มิฉะนั้น หากผู้ใช้อนุมัติการตรวจสอบสิทธิ์ด้วยใบรับรองที่ส่วนขยายมีให้ เบราว์เซอร์จะขอให้ส่วนขยายเซ็นชื่อในข้อมูลเพื่อแฮนด์เชค TLS ต่อไป ระบบส่งคำขอเป็นเหตุการณ์ onSignatureRequested
  • เหตุการณ์นี้มีข้อมูลอินพุตซึ่งประกาศว่าต้องใช้อัลกอริทึมใดในการสร้างลายเซ็น และอ้างถึงใบรับรองที่ส่วนขยายนี้รายงาน ส่วนขยายต้องสร้างลายเซ็นสำหรับข้อมูลที่ระบุโดยใช้คีย์ส่วนตัวที่เชื่อมโยงกับใบรับรองที่อ้างอิง การสร้างลายเซ็นอาจต้องเพิ่ม DigestInfo และ Padding ผลลัพธ์ก่อนการลงนามจริง
  • ส่วนขยายจะส่งลายเซ็นกลับไปยังเบราว์เซอร์โดยใช้เมธอด reportSignature() หากคำนวณลายเซ็นไม่ได้ ต้องเรียกใช้เมธอดโดยไม่มีลายเซ็น
  • หากมีลายเซ็นอยู่แล้ว เบราว์เซอร์จะดำเนินการแฮนด์เชค TLS จนเสร็จสิ้น

โดยลำดับขั้นตอนจริงอาจแตกต่างออกไป เช่น ระบบจะไม่ขอให้ผู้ใช้เลือกใบรับรองหากใช้นโยบายระดับองค์กรเพื่อเลือกใบรับรองโดยอัตโนมัติ (โปรดดูนโยบาย AutoSelectCertificateForUrls และนโยบาย Chrome สำหรับผู้ใช้)

ในส่วนขยาย อาจมีหน้าตาคล้ายกับข้อมูลโค้ดต่อไปนี้

function collectAvailableCertificates() {
  // Return all certificates that this Extension can currently provide.
  // For example:
  return [{
    certificateChain: [new Uint8Array(...)],
    supportedAlgorithms: ['RSASSA_PKCS1_v1_5_SHA256']
  }];
}

// The Extension calls this function every time the currently available list of
// certificates changes, and also once after the Extension's initialization.
function onAvailableCertificatesChanged() {
  chrome.certificateProvider.setCertificates({
    clientCertificates: collectAvailableCertificates()
  });
}

function handleCertificatesUpdateRequest(request) {
  // Report the currently available certificates as a response to the request
  // event. This is important for supporting the case when the Extension is
  // unable to detect the changes proactively.
  chrome.certificateProvider.setCertificates({
    certificatesRequestId: request.certificatesRequestId,
    clientCertificates: collectAvailableCertificates()
  });
}

// Returns a private key handle for the given DER-encoded certificate.
// |certificate| is an ArrayBuffer.
function getPrivateKeyHandle(certificate) {...}

// Digests and signs |input| with the given private key. |input| is an
// ArrayBuffer. |algorithm| is an Algorithm.
// Returns the signature as ArrayBuffer.
function signUnhashedData(privateKey, input, algorithm) {...}

function handleSignatureRequest(request) {
  // Look up the handle to the private key of |request.certificate|.
  const key = getPrivateKeyHandle(request.certificate);
  if (!key) {
    // Handle if the key isn't available.
    console.error('Key for requested certificate no available.');

    // Abort the request by reporting the error to the API.
    chrome.certificateProvider.reportSignature({
      signRequestId: request.signRequestId,
      error: 'GENERAL_ERROR'
    });
    return;
  }

  const signature = signUnhashedData(key, request.input, request.algorithm);
  chrome.certificateProvider.reportSignature({
    signRequestId: request.signRequestId,
    signature: signature
  });
}

chrome.certificateProvider.onCertificatesUpdateRequested.addListener(
    handleCertificatesUpdateRequest);
chrome.certificateProvider.onSignatureRequested.addListener(
    handleSignatureRequest);

ประเภท

Algorithm

Chrome เวอร์ชัน 86 ขึ้นไป

ประเภทของอัลกอริทึมลายเซ็นการเข้ารหัสที่รองรับ

ค่าแจกแจง

"RSASSA_PKCS1_v1_5_MD5_SHA1"
ระบุอัลกอริทึมลายเซ็น RSASSA PKCS#1 v1.5 ที่มีการแฮช MD5-SHA-1 ส่วนขยายต้องไม่เพิ่มคำนำหน้า DigestInfo ไว้ แต่ต้องเพิ่มระยะห่างจากขอบ PKCS#1 เท่านั้น เราเลิกใช้งานอัลกอริทึมนี้แล้วและ Chrome จะไม่ขออัลกอริทึมดังกล่าวตั้งแต่เวอร์ชัน 109 เป็นต้นไป

"RSASSA_PKCS1_v1_5_SHA1"
ระบุอัลกอริทึมลายเซ็น RSASSA PKCS#1 v1.5 ด้วยฟังก์ชันแฮช SHA-1

"RSASSA_PKCS1_v1_5_SHA256"
ระบุอัลกอริทึมลายเซ็น RSASSA PKCS#1 v1.5 ด้วยฟังก์ชันการแฮช SHA-256

"RSASSA_PKCS1_v1_5_SHA384"
ระบุอัลกอริทึมลายเซ็น RSASSA PKCS#1 v1.5 ด้วยฟังก์ชันการแฮช SHA-384

"RSASSA_PKCS1_v1_5_SHA512"
ระบุอัลกอริทึมลายเซ็น RSASSA PKCS#1 v1.5 ด้วยฟังก์ชันการแฮช SHA-512

"RSASSA_PSS_SHA256"
ระบุอัลกอริทึมลายเซ็น RSASSA PSS ที่มีฟังก์ชันการแฮช SHA-256, ฟังก์ชันการสร้างมาสก์ MGF1 และ Salt ที่มีขนาดเดียวกันกับแฮช

"RSASSA_PSS_SHA384"
ระบุอัลกอริทึมลายเซ็น RSASSA PSS ที่มีฟังก์ชันการแฮช SHA-384, ฟังก์ชันการสร้างมาสก์ MGF1 และ Salt ที่มีขนาดเดียวกันกับแฮช

"RSASSA_PSS_SHA512"
ระบุอัลกอริทึมลายเซ็น RSASSA PSS ที่มีฟังก์ชันการแฮช SHA-512, ฟังก์ชันการสร้างมาสก์ MGF1 และ Salt ที่มีขนาดเดียวกันกับแฮช

CertificateInfo

พร็อพเพอร์ตี้

  • ใบรับรอง

    อาร์เรย์บัฟเฟอร์

    ต้องเป็นการเข้ารหัส DER ของใบรับรอง X.509 ปัจจุบันรองรับเฉพาะใบรับรองของคีย์ RSA เท่านั้น

  • supportedHashes

    ต้องตั้งค่าเป็นแฮชทั้งหมดที่รองรับสำหรับใบรับรองนี้ ระบบจะขอลายเซ็นของไดเจสต์ที่คำนวณด้วยอัลกอริทึมแฮชเหล่านี้เท่านั้นในส่วนขยายนี้ ซึ่งควรเรียงตามลำดับจากการตั้งค่าแฮชที่ลดลง

CertificatesUpdateRequest

Chrome เวอร์ชัน 86 ขึ้นไป

พร็อพเพอร์ตี้

  • certificatesRequestId

    ตัวเลข

    ส่งคำขอตัวระบุไปยัง setCertificates

ClientCertificateInfo

Chrome เวอร์ชัน 86 ขึ้นไป

พร็อพเพอร์ตี้

  • certificateChain

    ArrayBuffer[]

    อาร์เรย์ต้องมีการเข้ารหัส DER ของใบรับรองไคลเอ็นต์ X.509 เป็นองค์ประกอบแรก

    โดยต้องมีใบรับรองเพียง 1 ใบเท่านั้น

  • supportedAlgorithms

    อัลกอริทึมทั้งหมดรองรับใบรับรองนี้ ส่วนขยายจะได้รับการขอลายเซ็นโดยใช้อัลกอริทึมแบบใดแบบหนึ่งเหล่านี้เท่านั้น

Error

Chrome เวอร์ชัน 86 ขึ้นไป

ประเภทของข้อผิดพลาดที่ส่วนขยายสามารถรายงานได้

ค่า

"GENERAL_ERROR"

Hash

เลิกใช้งานแล้ว แทนที่โดย Algorithm

ค่าแจกแจง

"MD5_SHA1"
ระบุอัลกอริทึมการแฮช MD5 และ SHA1

"SHA1"
ระบุอัลกอริทึมการแฮช SHA1

"SHA256"
ระบุอัลกอริทึมการแฮช SHA256

"SHA384"
ระบุอัลกอริทึมการแฮช SHA384

"SHA512"
ระบุอัลกอริทึมการแฮช SHA512

PinRequestErrorType

Chrome 57 ขึ้นไป

ประเภทของข้อผิดพลาดที่แสดงต่อผู้ใช้ผ่านฟังก์ชัน requestPin ได้

ค่าแจกแจง

"INVALID_PIN"
ระบุว่า PIN ไม่ถูกต้อง

"INVALID_PUK"
ระบุว่า PUK ไม่ถูกต้อง

"MAX_ATTEMPTS_EXCEEDED"
ระบุว่ามีการพยายามเกินจำนวนครั้งสูงสุดแล้ว

"UNKNOWN_ERROR"
ระบุว่าข้อผิดพลาดประเภทข้างต้นไม่สามารถแสดงได้

PinRequestType

Chrome 57 ขึ้นไป

ประเภทของโค้ดที่ขอโดยส่วนขยายที่มีฟังก์ชัน requestPin

ค่าแจกแจง

"PIN"
ระบุว่ารหัสที่ขอเป็น PIN

"PUK"
ระบุว่ารหัสที่ขอคือ PUK

PinResponseDetails

Chrome 57 ขึ้นไป

พร็อพเพอร์ตี้

  • userInput

    string ไม่บังคับ

    รหัสที่ผู้ใช้ให้ไว้ เว้นว่างไว้หากผู้ใช้ปิดกล่องโต้ตอบหรือเกิดข้อผิดพลาดอื่นๆ

ReportSignatureDetails

Chrome เวอร์ชัน 86 ขึ้นไป

พร็อพเพอร์ตี้

  • ข้อผิดพลาด

    "GENERAL_ERROR"
     ไม่บังคับ

    เกิดข้อผิดพลาดขณะสร้างลายเซ็น (หากมี)

  • signRequestId

    ตัวเลข

    ตัวระบุคําขอที่ได้รับผ่านเหตุการณ์ onSignatureRequested

  • ลายเซ็น

    ArrayBuffer ไม่บังคับ

    หากสร้างลายเซ็นเรียบร้อยแล้ว

RequestPinDetails

Chrome 57 ขึ้นไป

พร็อพเพอร์ตี้

  • attemptsLeft

    หมายเลข ไม่บังคับ

    จำนวนครั้งที่เหลือ ซึ่งมีไว้เพื่อให้ UI แสดงข้อมูลนี้แก่ผู้ใช้ได้ Chrome ไม่ได้คาดว่าจะบังคับใช้นโยบายนี้ แต่ส่วนขยายควรเรียกใช้ StopPinRequest ที่มี errorType = MAX_ATTEMPTS_EXCEEDED แทนเมื่อมีคำขอ PIN เกินจำนวนคำขอ PIN

  • errorType

    เทมเพลตข้อผิดพลาดที่แสดงต่อผู้ใช้ คุณควรตั้งค่านี้หากคำขอก่อนหน้าล้มเหลว เพื่อแจ้งให้ผู้ใช้ทราบเหตุผลที่ไม่ผ่านการตรวจสอบ

  • requestType

    PinRequestType ไม่บังคับ

    ประเภทของรหัสที่ขอ ค่าเริ่มต้นคือ PIN

  • signRequestId

    ตัวเลข

    รหัสที่ Chrome กำหนดใน SignRequest

SetCertificatesDetails

Chrome เวอร์ชัน 86 ขึ้นไป

พร็อพเพอร์ตี้

  • certificatesRequestId

    หมายเลข ไม่บังคับ

    เมื่อเรียกใช้เพื่อตอบสนองต่อ onCertificatesUpdateRequested ควรมีค่า certificatesRequestId ที่ได้รับ หรือไม่เช่นนั้นก็ไม่ควรตั้งค่า

  • clientCertificates

    รายการใบรับรองไคลเอ็นต์ที่พร้อมใช้งานในปัจจุบัน

  • ข้อผิดพลาด

    "GENERAL_ERROR"
     ไม่บังคับ

    ข้อผิดพลาดที่เกิดขึ้นขณะดึงข้อมูลใบรับรอง (หากมี) ข้อผิดพลาดนี้จะปรากฏต่อผู้ใช้ตามความเหมาะสม

SignatureRequest

Chrome เวอร์ชัน 86 ขึ้นไป

พร็อพเพอร์ตี้

  • อัลกอริทึม

    อัลกอริทึมลายเซ็นที่จะใช้

  • ใบรับรอง

    อาร์เรย์บัฟเฟอร์

    การเข้ารหัส DER ของใบรับรอง X.509 ส่วนขยายต้องรับรอง input โดยใช้คีย์ส่วนตัวที่เชื่อมโยง

  • อินพุต

    อาร์เรย์บัฟเฟอร์

    ข้อมูลที่ต้องลงนาม โปรดทราบว่าไม่มีการแฮชข้อมูล

  • signRequestId

    ตัวเลข

    ส่งคำขอตัวระบุไปยัง reportSignature

SignRequest

พร็อพเพอร์ตี้

  • ใบรับรอง

    อาร์เรย์บัฟเฟอร์

    การเข้ารหัส DER ของใบรับรอง X.509 ส่วนขยายต้องรับรอง digest โดยใช้คีย์ส่วนตัวที่เชื่อมโยง

  • ไดเจสต์

    อาร์เรย์บัฟเฟอร์

    อีเมลสรุปที่ต้องลงชื่อ

  • แฮช

    หมายถึงอัลกอริทึมแฮชที่ใช้สร้าง digest

  • signRequestId

    ตัวเลข

    Chrome 57 ขึ้นไป

    รหัสที่ไม่ซ้ำกันที่ส่วนขยายจะใช้ในกรณีที่ต้องเรียกใช้เมธอดที่จำเป็นต้องใช้ เช่น requestPin

StopPinRequestDetails

Chrome 57 ขึ้นไป

พร็อพเพอร์ตี้

  • errorType

    เทมเพลตข้อผิดพลาด หากมี ก็จะแสดงให้ผู้ใช้เห็น มีจุดประสงค์เพื่อระบุเหตุผลในการหยุดโฟลว์หากขั้นตอนดังกล่าวเกิดจากข้อผิดพลาด เช่น MAX_ATTEMPTS_EXCEEDED

  • signRequestId

    ตัวเลข

    รหัสที่ Chrome กำหนดใน SignRequest

เมธอด

reportSignature()

สัญญา Chrome 86 ขึ้นไป
chrome.certificateProvider.reportSignature(
  details: ReportSignatureDetails,
  callback?: function,
)

ควรเรียกเป็นการตอบกลับสำหรับ onSignatureRequested

ท้ายที่สุดส่วนขยายต้องเรียกใช้ฟังก์ชันนี้สำหรับทุกเหตุการณ์ onSignatureRequested การติดตั้งใช้งาน API จะหยุดรอการเรียกนี้หลังจากผ่านไประยะหนึ่ง และตอบกลับด้วยข้อผิดพลาดการหมดเวลาเมื่อมีการเรียกใช้ฟังก์ชันนี้

พารามิเตอร์

  • รายละเอียด
  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำมั่นสัญญา<โมฆะ>

    Chrome 96 ขึ้นไป

    รองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback

requestPin()

สัญญา Chrome 57 ขึ้นไป
chrome.certificateProvider.requestPin(
  details: RequestPinDetails,
  callback?: function,
)

ขอ PIN จากผู้ใช้ ระบบอนุญาตให้มีคำขอที่ดำเนินการอยู่ได้เพียงครั้งละ 1 รายการ คำขอที่ออกในขณะที่อีกขั้นตอนหนึ่งดำเนินการอยู่จะถูกปฏิเสธ ส่วนขยายเป็นหน้าที่ที่จะต้องลองอีกครั้งในภายหลังหากมีขั้นตอนอื่นอยู่ระหว่างดำเนินการ

พารามิเตอร์

  • รายละเอียด

    มีรายละเอียดเกี่ยวกับกล่องโต้ตอบที่ขอ

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (details?: PinResponseDetails) => void

การคืนสินค้า

  • Promise&lt;PinResponseDetails | ไม่ระบุ>

    Chrome 96 ขึ้นไป

    รองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback

setCertificates()

สัญญา Chrome 86 ขึ้นไป
chrome.certificateProvider.setCertificates(
  details: SetCertificatesDetails,
  callback?: function,
)

ตั้งค่ารายการใบรับรองที่จะใช้ในเบราว์เซอร์

ส่วนขยายควรเรียกใช้ฟังก์ชันนี้หลังจากการเริ่มต้นและทุกครั้งที่มีการเปลี่ยนแปลงในชุดใบรับรองที่พร้อมใช้งานในปัจจุบัน ส่วนขยายควรเรียกใช้ฟังก์ชันนี้ด้วยเพื่อตอบกลับ onCertificatesUpdateRequested ทุกครั้งที่ได้รับเหตุการณ์นี้

พารามิเตอร์

  • รายละเอียด

    ใบรับรองที่จะตั้งค่า ระบบจะไม่สนใจใบรับรองที่ไม่ถูกต้อง

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำมั่นสัญญา<โมฆะ>

    Chrome 96 ขึ้นไป

    รองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback

stopPinRequest()

สัญญา Chrome 57 ขึ้นไป
chrome.certificateProvider.stopPinRequest(
  details: StopPinRequestDetails,
  callback?: function,
)

หยุดคำขอ PIN ที่เริ่มโดยฟังก์ชัน requestPin

พารามิเตอร์

  • รายละเอียด

    มีรายละเอียดเกี่ยวกับเหตุผลที่หยุดขั้นตอนการส่งคำขอ

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำมั่นสัญญา<โมฆะ>

    Chrome 96 ขึ้นไป

    รองรับคำสัญญาในไฟล์ Manifest V3 ขึ้นไป แต่จะมี Callback สำหรับ ความเข้ากันได้แบบย้อนหลัง คุณไม่สามารถใช้ทั้ง 2 อย่างในการเรียกใช้ฟังก์ชันเดียวกันได้ จะมีการแก้ไขด้วยประเภทเดียวกันที่ส่งไปยัง Callback

กิจกรรม

onCertificatesRequested

Chrome 47 ขึ้นไป &amp;leq; MV2 เลิกใช้งานตั้งแต่ Chrome 86
chrome.certificateProvider.onCertificatesRequested.addListener(
  callback: function,
)

โปรดใช้ onCertificatesUpdateRequested แทน

เหตุการณ์นี้จะเริ่มทำงานทุกครั้งที่เบราว์เซอร์ขอรายการใบรับรองปัจจุบันที่ส่วนขยายนี้ให้ ส่วนขยายต้องเรียกใช้ reportCallback เพียงครั้งเดียวด้วยรายการใบรับรองปัจจุบัน

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (reportCallback: function) => void

    • reportCallback

      ฟังก์ชัน

      พารามิเตอร์ reportCallback มีลักษณะดังนี้

      (certificates: CertificateInfo[], callback: function) => void

      • ใบรับรอง
      • Callback

        ฟังก์ชัน

        พารามิเตอร์ callback มีลักษณะดังนี้

        (rejectedCertificates: ArrayBuffer[]) => void

        • rejectedCertificates

          ArrayBuffer[]

onCertificatesUpdateRequested

Chrome เวอร์ชัน 86 ขึ้นไป
chrome.certificateProvider.onCertificatesUpdateRequested.addListener(
  callback: function,
)

เหตุการณ์นี้จะเริ่มทำงานหากใบรับรองที่ตั้งค่าผ่าน setCertificates ไม่เพียงพอหรือเบราว์เซอร์ขอข้อมูลที่อัปเดต ส่วนขยายต้องเรียกใช้ setCertificates พร้อมรายการใบรับรองที่อัปเดตแล้วและ certificatesRequestId ที่ได้รับ

พารามิเตอร์

onSignatureRequested

Chrome เวอร์ชัน 86 ขึ้นไป
chrome.certificateProvider.onSignatureRequested.addListener(
  callback: function,
)

เหตุการณ์นี้จะเริ่มทำงานทุกครั้งที่เบราว์เซอร์ต้องเซ็นชื่อกำกับข้อความโดยใช้ใบรับรองที่ส่วนขยายนี้ให้ไว้ผ่าน setCertificates

ส่วนขยายต้องลงนามข้อมูลอินพุตจาก request โดยใช้อัลกอริทึมและคีย์ส่วนตัวที่เหมาะสม แล้วส่งกลับโดยเรียกใช้ reportSignature ด้วย signRequestId ที่ได้รับ

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (request: SignatureRequest) => void

onSignDigestRequested

&amp;leq; MV2 เลิกใช้งานตั้งแต่ Chrome 86
chrome.certificateProvider.onSignDigestRequested.addListener(
  callback: function,
)

โปรดใช้ onSignatureRequested แทน

เหตุการณ์นี้จะเริ่มทำงานทุกครั้งที่เบราว์เซอร์ต้องเซ็นชื่อกำกับข้อความโดยใช้ใบรับรองที่ส่วนขยายนี้ให้มาในการตอบกลับเหตุการณ์ onCertificatesRequested ส่วนขยายต้องลงนามข้อมูลใน request โดยใช้อัลกอริทึมและคีย์ส่วนตัวที่เหมาะสม แล้วส่งกลับโดยเรียกใช้ reportCallback ต้องเรียก reportCallback ครั้งเดียวเท่านั้น

พารามิเตอร์

  • Callback

    ฟังก์ชัน

    พารามิเตอร์ callback มีลักษณะดังนี้

    (request: SignRequest, reportCallback: function) => void

    • ส่งคำขอ
    • reportCallback

      ฟังก์ชัน

      Chrome 47 ขึ้นไป

      พารามิเตอร์ reportCallback มีลักษณะดังนี้

      (signature?: ArrayBuffer) => void

      • ลายเซ็น

        ArrayBuffer ไม่บังคับ