summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/webrtc/protocol/dtls-certificates.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/webrtc/protocol/dtls-certificates.html')
-rw-r--r--testing/web-platform/tests/webrtc/protocol/dtls-certificates.html42
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>