RTCPeerConnection: generateCertificate() 靜態方法
RTCPeerConnection 介面的 generateCertificate() 靜態函式會建立一個 X.509 證書和相應的私鑰,並返回一個 Promise,該 Promise 在生成新 RTCCertificate 物件後解析。
語法
RTCPeerConnection.generateCertificate(keygenAlgorithm)
引數
keygenAlgorithm-
一個 Web Crypto API 演算法識別符號字串或物件。有關該物件的格式的詳細資訊,請參閱
SubtleCrypto.generateKey()。
注意: generateCertificate() 是一個靜態方法,因此它始終在 RTCPeerConnection 介面本身上呼叫,而不是在其例項上呼叫。
返回值
一個 Promise,它解析為一個新的 RTCCertificate 物件,其中包含基於指定選項的新金鑰。
異常
NotSupportedErrorDOMException-
如果
keygenAlgorithm的規範化形式指定了瀏覽器不支援或不允許用於RTCPeerConnection的演算法或演算法設定,則會丟擲此錯誤。
可能會發生其他錯誤;例如,如果指定的 keygenAlgorithm 無法成功轉換為 RTCCertificateExpiration 字典,則在轉換過程中發生的錯誤將被丟擲。
描述
如果指定了字串,則它必須是一個相容 Web Crypto API 的演算法名稱字串。或者,您可以透過提供基於 Web Crypto API 的 Algorithm 類的子類之一的物件來提供演算法配置的特定詳細資訊。
標準配置
所有瀏覽器都必須支援以下兩種配置。瀏覽器可能具有與此不同的預設設定,但這些始終受支援。
RSASSA-PKCS1-v1_5
let stdRSACertificate = {
name: "RSASSA-PKCS1-v1_5",
modulusLength: 2048,
publicExponent: new Uint8Array([1, 0, 1]),
hash: "SHA-256",
};
ECDSA
let stdECDSACertificate = {
name: "ECDSA",
namedCurve: "P-256",
};
證書過期時間
預設情況下,新證書的 expires 設定為 2592000000 毫秒(即 30 天)。過期時間不能超過 31536000000 毫秒(即 365 天)。另外值得注意的是,瀏覽器可能會自行進一步限制證書的過期時間。
示例
指定演算法詳細資訊
此示例請求一個使用 SHA-256 雜湊和 2048 位模數的 RSASSA-PKCS1-v1_5 證書。
RTCPeerConnection.generateCertificate({
name: "RSASSA-PKCS1-v1_5",
hash: "SHA-256",
modulusLength: 2048,
publicExponent: new Uint8Array([1, 0, 1]),
}).then((cert) => {
const pc = new RTCPeerConnection({ certificates: [cert] });
});
按名稱指定演算法
下面的示例透過指定一個字串來請求一個 ECDSA 證書。
RTCPeerConnection.generateCertificate("ECDSA");
規範
| 規範 |
|---|
| WebRTC:瀏覽器中的即時通訊 # dom-rtcpeerconnection-generatecertificate |
瀏覽器相容性
載入中…