Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
certificate1 = RTCCertificate.generateCertificate()
session1 = RTCDtlsTransport(transport1, [certificate1])
receiver1 = DummyRtpReceiver()
session1._register_rtp_receiver(
receiver1,
RTCRtpReceiveParameters(
codecs=[
RTCRtpCodecParameters(
mimeType="audio/PCMU", clockRate=8000, payloadType=0
)
],
encodings=[RTCRtpDecodingParameters(ssrc=1831097322, payloadType=0)],
),
)
certificate2 = RTCCertificate.generateCertificate()
session2 = RTCDtlsTransport(transport2, [certificate2])
receiver2 = DummyRtpReceiver()
session2._register_rtp_receiver(
receiver2,
RTCRtpReceiveParameters(
codecs=[
RTCRtpCodecParameters(
mimeType="audio/PCMU", clockRate=8000, payloadType=0
)
],
encodings=[RTCRtpDecodingParameters(ssrc=4028317929, payloadType=0)],
),
)
run(
asyncio.gather(
def test_lossy_channel(self):
"""
Transport with 25% loss eventually connects.
"""
transport1, transport2 = dummy_ice_transport_pair()
loss_pattern = [True, False, False, False]
transport1._connection.loss_pattern = loss_pattern
transport2._connection.loss_pattern = loss_pattern
certificate1 = RTCCertificate.generateCertificate()
session1 = RTCDtlsTransport(transport1, [certificate1])
certificate2 = RTCCertificate.generateCertificate()
session2 = RTCDtlsTransport(transport2, [certificate2])
run(
asyncio.gather(
session1.start(session2.getLocalParameters()),
session2.start(session1.getLocalParameters()),
)
)
run(session1.stop())
run(session2.stop())
def test_generate(self):
certificate = RTCCertificate.generateCertificate()
self.assertIsNotNone(certificate)
expires = certificate.expires
self.assertIsNotNone(expires)
self.assertTrue(isinstance(expires, datetime.datetime))
fingerprints = certificate.getFingerprints()
self.assertEqual(len(fingerprints), 1)
self.assertEqual(fingerprints[0].algorithm, "sha-256")
self.assertEqual(len(fingerprints[0].value), 95)
def test_abrupt_disconnect(self):
transport1, transport2 = dummy_ice_transport_pair()
certificate1 = RTCCertificate.generateCertificate()
session1 = RTCDtlsTransport(transport1, [certificate1])
certificate2 = RTCCertificate.generateCertificate()
session2 = RTCDtlsTransport(transport2, [certificate2])
run(
asyncio.gather(
session1.start(session2.getLocalParameters()),
session2.start(session1.getLocalParameters()),
)
)
# break connections -> tasks exits
run(transport1.stop())
run(transport2.stop())
# close DTLS
run(session1.stop())
run(session2.stop())
def test_srtp_unprotect_error(self):
transport1, transport2 = dummy_ice_transport_pair()
certificate1 = RTCCertificate.generateCertificate()
session1 = RTCDtlsTransport(transport1, [certificate1])
receiver1 = DummyRtpReceiver()
session1._register_rtp_receiver(
receiver1,
RTCRtpReceiveParameters(
codecs=[
RTCRtpCodecParameters(
mimeType="audio/PCMU", clockRate=8000, payloadType=0
)
],
encodings=[RTCRtpDecodingParameters(ssrc=1831097322, payloadType=0)],
),
)
certificate2 = RTCCertificate.generateCertificate()
session2 = RTCDtlsTransport(transport2, [certificate2])
def test_abrupt_disconnect(self):
transport1, transport2 = dummy_ice_transport_pair()
certificate1 = RTCCertificate.generateCertificate()
session1 = RTCDtlsTransport(transport1, [certificate1])
certificate2 = RTCCertificate.generateCertificate()
session2 = RTCDtlsTransport(transport2, [certificate2])
run(
asyncio.gather(
session1.start(session2.getLocalParameters()),
session2.start(session1.getLocalParameters()),
)
)
# break connections -> tasks exits
run(transport1.stop())
run(transport2.stop())
def test_bad_client_fingerprint(self):
transport1, transport2 = dummy_ice_transport_pair()
certificate1 = RTCCertificate.generateCertificate()
session1 = RTCDtlsTransport(transport1, [certificate1])
certificate2 = RTCCertificate.generateCertificate()
session2 = RTCDtlsTransport(transport2, [certificate2])
bogus_parameters = RTCDtlsParameters(
fingerprints=[
RTCDtlsFingerprint(algorithm="sha-256", value="bogus_fingerprint")
]
)
run(
asyncio.gather(
session1.start(bogus_parameters),
session2.start(session1.getLocalParameters()),
)
)
def test_rtp_malformed(self):
transport1, transport2 = dummy_ice_transport_pair()
certificate1 = RTCCertificate.generateCertificate()
session1 = RTCDtlsTransport(transport1, [certificate1])
# receive truncated RTP
run(session1._handle_rtp_data(RTP[0:8], 0))
# receive truncated RTCP
run(session1._handle_rtcp_data(RTCP[0:8]))
certificate1 = RTCCertificate.generateCertificate()
session1 = RTCDtlsTransport(transport1, [certificate1])
receiver1 = DummyRtpReceiver()
session1._register_rtp_receiver(
receiver1,
RTCRtpReceiveParameters(
codecs=[
RTCRtpCodecParameters(
mimeType="audio/PCMU", clockRate=8000, payloadType=0
)
],
encodings=[RTCRtpDecodingParameters(ssrc=1831097322, payloadType=0)],
),
)
certificate2 = RTCCertificate.generateCertificate()
session2 = RTCDtlsTransport(transport2, [certificate2])
receiver2 = DummyRtpReceiver()
session2._register_rtp_receiver(
receiver2,
RTCRtpReceiveParameters(
codecs=[
RTCRtpCodecParameters(
mimeType="audio/PCMU", clockRate=8000, payloadType=0
)
],
encodings=[RTCRtpDecodingParameters(ssrc=4028317929, payloadType=0)],
),
)
run(
asyncio.gather(