diff options
Diffstat (limited to 'testing/web-platform/tests/webrtc/protocol/dtls-certificates.html')
-rw-r--r-- | testing/web-platform/tests/webrtc/protocol/dtls-certificates.html | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/testing/web-platform/tests/webrtc/protocol/dtls-certificates.html b/testing/web-platform/tests/webrtc/protocol/dtls-certificates.html new file mode 100644 index 0000000000..bc4794cbc1 --- /dev/null +++ b/testing/web-platform/tests/webrtc/protocol/dtls-certificates.html @@ -0,0 +1,42 @@ +<!doctype html> +<meta charset=utf-8> +<meta name="timeout" content="long"> +<title>RTCPeerConnection DTLS certifcate interop</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="../RTCPeerConnection-helper.js"></script> +<script> +// https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-generatecertificate +const certificateParameters = { + ecdsa: { + name: 'ECDSA', + namedCurve: 'P-256', + }, + rsa: { + name: 'RSASSA-PKCS1-v1_5', + modulusLength: 2048, + publicExponent: new Uint8Array([1, 0, 1]), + hash: 'SHA-256', + }, +}; + +Object.keys(certificateParameters).forEach(async localType => { + Object.keys(certificateParameters).forEach(async remoteType => { + promise_test(async t => { + const localParameters = certificateParameters[localType]; + const remoteParameters = certificateParameters[remoteType]; + const firstCertificate = await RTCPeerConnection.generateCertificate(localParameters); + const secondCertificate = await RTCPeerConnection.generateCertificate(remoteParameters); + const pc1 = new RTCPeerConnection({certificates: [firstCertificate]}); + t.add_cleanup(() => pc1.close()); + const pc2 = new RTCPeerConnection({certificates: [secondCertificate]}); + t.add_cleanup(() => pc2.close()); + pc1.createDataChannel('test'); + exchangeIceCandidates(pc1, pc2); + await exchangeOfferAnswer(pc1, pc2); + await waitForConnectionStateChange(pc1, ['connected']); + }, `RTCPeerConnection establishes using ${localType} and ${remoteType} certificates`); + }); +}); + +</script> |