| Issue 581354 | Persistent storage of RTCCertificate with IndexedDB | ||||||
| Starred by 3 users | Project Member Reported by hbos@chromium.org, Jan 26 2016 | Back to list | |||||
Add ability to establish key continuity by persisting RTCCertificate in IndexedDB and reuse. See https://w3c.github.io/webrtc-pc/archives/20160125/webrtc.html#dictionary-rtcconfiguration-members
Comment 1
by
hbos@chromium.org,
Jan 26 2016
,
Jan 29 2016
,
Feb 17 2016
,
Apr 15 2016
,
Apr 15 2016
More info about RTCCertificate and IndexedDB: - WebRTC spec: https://w3c.github.io/webrtc-pc/archives/20160125/webrtc.html#attributes-6 - Cloneable objects in whatwg HTML spec: https://html.spec.whatwg.org/multipage/infrastructure.html#cloneable-objects - StructuredClone in whatwg HTML spec: https://html.spec.whatwg.org/multipage/infrastructure.html#structuredclone blink-dev discussion: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/EQw7UeD9bsw We may need to add support for cloneability of platform objects before we can add a Clone for RTCCertificate. Also, in order to implement a Clone, we must make rtc::RTCCertificate serializable in the webrtc repo (https://bugs.webrtc.org/5794).
,
Apr 27 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e007ec047dfbbf54e54a211d53b1ce9ed6d5815c commit e007ec047dfbbf54e54a211d53b1ce9ed6d5815c Author: hbos <hbos@chromium.org> Date: Wed Apr 27 16:24:16 2016 WebRtcBrowserTest tests with RSA and ECDSA certificates. - peerconnection.js/WebRtcTestBase: Ability to specify which certificate to use (or generate and use) when creating peer connections. - WebRtcBrowserTest: Two new tests that use non-default certificates, generating RSA and ECDSA. This gives integration test coverage to RSA and ECDSA, which is good before switching so that ECDSA becomes default (previously only default was tested). Also, peerconnection.js's preparePeerConnectionWithCertificate can be used in the future to ensure cloned certificates are usable for peer connections. (When persistance and cloning of RTCCertificate is supported.) BUG=chromium:581354 Review-Url: https://codereview.chromium.org/1917133002 Cr-Commit-Position: refs/heads/master@{#390096} [modify] https://crrev.com/e007ec047dfbbf54e54a211d53b1ce9ed6d5815c/chrome/browser/media/webrtc_browsertest.cc [modify] https://crrev.com/e007ec047dfbbf54e54a211d53b1ce9ed6d5815c/chrome/browser/media/webrtc_browsertest_base.cc [modify] https://crrev.com/e007ec047dfbbf54e54a211d53b1ce9ed6d5815c/chrome/browser/media/webrtc_browsertest_base.h [modify] https://crrev.com/e007ec047dfbbf54e54a211d53b1ce9ed6d5815c/chrome/test/data/webrtc/peerconnection.js
,
Apr 28 2016
The following revision refers to this bug: https://chromium.googlesource.com/external/webrtc.git/+/6b470a9413d2e65dd9078a63ed3f5f60e5ba5232 commit 6b470a9413d2e65dd9078a63ed3f5f60e5ba5232 Author: hbos <hbos@webrtc.org> Date: Thu Apr 28 12:14:21 2016 RTCCertificate serialization. This CL adds the ability to convert RTCCertificate objects to and from PEM string representations of it (its private key and certificate). The RTCCertificate being a wrapper of SSLIdentity, this is where the meat is. Changes: - SSLIdentity::PrivateKeyToPEMString() added. It together with the already existing SSLCertificate::ToPEMString() yields both private key and certificate PEM strings, both of which are required parameters to SSLIdentity::FromPEMStrings(). - Its only implementation, OpenSSLIdentity::PrivateKeyToPemString(). - SSLIdentity::PublicKeyToPEMString() added, used by tests. - sslidentity_unittest.cc updated: * FromPEMStringsRSA and FromPEMStringsEC updated. * CloneIdentityRSA and CloneIdentityECDSA added. - RTCCertificate::To/FromPem added, using new class RTCCertificatePem. - rtccertificate_unittest.cc: New test CloneWithPemSerialization. - Renamed rtc_unittests.cc to rtccertificate_unittest.cc to match convention. BUG=webrtc:5794, chromium:581354 Review-Url: https://codereview.webrtc.org/1898383003 Cr-Commit-Position: refs/heads/master@{#12546} [modify] https://crrev.com/6b470a9413d2e65dd9078a63ed3f5f60e5ba5232/webrtc/base/base_tests.gyp [modify] https://crrev.com/6b470a9413d2e65dd9078a63ed3f5f60e5ba5232/webrtc/base/fakesslidentity.h [modify] https://crrev.com/6b470a9413d2e65dd9078a63ed3f5f60e5ba5232/webrtc/base/opensslidentity.cc [modify] https://crrev.com/6b470a9413d2e65dd9078a63ed3f5f60e5ba5232/webrtc/base/opensslidentity.h [modify] https://crrev.com/6b470a9413d2e65dd9078a63ed3f5f60e5ba5232/webrtc/base/rtccertificate.cc [modify] https://crrev.com/6b470a9413d2e65dd9078a63ed3f5f60e5ba5232/webrtc/base/rtccertificate.h [rename] https://crrev.com/6b470a9413d2e65dd9078a63ed3f5f60e5ba5232/webrtc/base/rtccertificate_unittest.cc [modify] https://crrev.com/6b470a9413d2e65dd9078a63ed3f5f60e5ba5232/webrtc/base/sslidentity.cc [modify] https://crrev.com/6b470a9413d2e65dd9078a63ed3f5f60e5ba5232/webrtc/base/sslidentity.h [modify] https://crrev.com/6b470a9413d2e65dd9078a63ed3f5f60e5ba5232/webrtc/base/sslidentity_unittest.cc
,
May 4 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8df58e17b49bc21bc4fe681e0f213f092b6de754 commit 8df58e17b49bc21bc4fe681e0f213f092b6de754 Author: hbos <hbos@chromium.org> Date: Wed May 04 10:49:29 2016 RTCCertificate equals method for testing. Adds JavaScript layer RTCCertificate.equals(RTCCertificate) that is only exposed to tests (behind RuntimeEnabledFeature RTCCertificateTesting). Blink interface and content implementation updated, the actual comparison operation is defined in the WebRTC repo between rtc::RTCCertificate objects. The test function is not used, but will be used in a follow-up CL that enables saving and loading RTCCertificate objects in IndexedDB. The comparison will be used to make sure a clone is equal to the original certificate. BUG=chromium:581354 Review-Url: https://codereview.chromium.org/1932173002 Cr-Commit-Position: refs/heads/master@{#391476} [modify] https://crrev.com/8df58e17b49bc21bc4fe681e0f213f092b6de754/content/renderer/media/rtc_certificate.cc [modify] https://crrev.com/8df58e17b49bc21bc4fe681e0f213f092b6de754/content/renderer/media/rtc_certificate.h [modify] https://crrev.com/8df58e17b49bc21bc4fe681e0f213f092b6de754/third_party/WebKit/Source/modules/mediastream/RTCCertificate.h [add] https://crrev.com/8df58e17b49bc21bc4fe681e0f213f092b6de754/third_party/WebKit/Source/modules/mediastream/testing/InternalsRTCCertificate.cpp [add] https://crrev.com/8df58e17b49bc21bc4fe681e0f213f092b6de754/third_party/WebKit/Source/modules/mediastream/testing/InternalsRTCCertificate.h [add] https://crrev.com/8df58e17b49bc21bc4fe681e0f213f092b6de754/third_party/WebKit/Source/modules/mediastream/testing/InternalsRTCCertificate.idl [modify] https://crrev.com/8df58e17b49bc21bc4fe681e0f213f092b6de754/third_party/WebKit/Source/modules/modules.gypi [modify] https://crrev.com/8df58e17b49bc21bc4fe681e0f213f092b6de754/third_party/WebKit/public/platform/WebRTCCertificate.h
,
May 10 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/042933a05d5d0bde0aaea8882c7d74b79810c799 commit 042933a05d5d0bde0aaea8882c7d74b79810c799 Author: hbos <hbos@chromium.org> Date: Tue May 10 12:14:36 2016 WebRtcBrowserTest prep-CL for IndexedDB cloning of RTCCertificate. This is part of larger work that will allow persistent storage of RTCCertificate in IndexedDB. The big picture can be seen here: https://codereview.chromium.org/1949033002/ This CL implements part 3a+3b: 3. Unittests making sure RTCCertificate can be saved and loaded from IndexedDB a) chrome/test/data/webrtc/indexeddb.js added with functions for managing a database and saving and loading (cloning) certificates. b) WebRtcTestBase implementing C++ functions for calling the indexeddb.js API. Part 3c is *NOT* implemented: c) WebRtcBrowserTest tests added which clone certificates and sets up calls using the clones. This is because RTCCertificate cloning (pt.2) has not landed yet, so any attempt to clone it in a unittest would fail. Part 2 + 3c will be done in a follow-up. BUG= 581354 Review-Url: https://codereview.chromium.org/1962673002 Cr-Commit-Position: refs/heads/master@{#392582} [modify] https://crrev.com/042933a05d5d0bde0aaea8882c7d74b79810c799/chrome/browser/media/webrtc_browsertest.cc [modify] https://crrev.com/042933a05d5d0bde0aaea8882c7d74b79810c799/chrome/browser/media/webrtc_browsertest_base.cc [modify] https://crrev.com/042933a05d5d0bde0aaea8882c7d74b79810c799/chrome/browser/media/webrtc_browsertest_base.h [add] https://crrev.com/042933a05d5d0bde0aaea8882c7d74b79810c799/chrome/test/data/webrtc/indexeddb.js [modify] https://crrev.com/042933a05d5d0bde0aaea8882c7d74b79810c799/chrome/test/data/webrtc/peerconnection.js [modify] https://crrev.com/042933a05d5d0bde0aaea8882c7d74b79810c799/chrome/test/data/webrtc/webrtc_audio_quality_test.html [modify] https://crrev.com/042933a05d5d0bde0aaea8882c7d74b79810c799/chrome/test/data/webrtc/webrtc_jsep01_test.html [modify] https://crrev.com/042933a05d5d0bde0aaea8882c7d74b79810c799/chrome/test/data/webrtc/webrtc_video_quality_test.html
,
May 11 2016
This has also landed but the BUG= ID was typo'd: https://codereview.chromium.org/1957293002/
,
May 11 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f8730debe7de67ffc97aed74a5cd7f0cd799cb60 commit f8730debe7de67ffc97aed74a5cd7f0cd799cb60 Author: hbos <hbos@chromium.org> Date: Wed May 11 10:20:49 2016 RTCCertificate serialization - persistent storage in IndexedDB. This is part of larger work that will allow persistent storage of RTCCertificate in IndexedDB. The big picture can be seen here: https://codereview.chromium.org/1949033002/ This CL implements part 2 and 3c: 2. RTCCertificate serialization (structured clone algorithm) a) ScriptValueSerializerForModules and friends are updated with write and read functions for RTCCertificate (impl using 1.). 3. Unittests making sure RTCCertificate can be saved and loaded from IndexedDB c) WebRtcBrowserTest tests added which clone certificates and sets up calls using the clones. This is the final piece of the puzzle, pt 1 and 3a-b have already landed. Landing this turns the feature on. BUG= 581354 Review-Url: https://codereview.chromium.org/1959333002 Cr-Commit-Position: refs/heads/master@{#392893} [modify] https://crrev.com/f8730debe7de67ffc97aed74a5cd7f0cd799cb60/chrome/browser/media/webrtc_browsertest.cc [modify] https://crrev.com/f8730debe7de67ffc97aed74a5cd7f0cd799cb60/third_party/WebKit/Source/bindings/core/v8/SerializationTag.h [modify] https://crrev.com/f8730debe7de67ffc97aed74a5cd7f0cd799cb60/third_party/WebKit/Source/bindings/modules/v8/ScriptValueSerializerForModules.cpp [modify] https://crrev.com/f8730debe7de67ffc97aed74a5cd7f0cd799cb60/third_party/WebKit/Source/bindings/modules/v8/ScriptValueSerializerForModules.h
,
May 11 2016
With the above CL this has landed. Also, here is the Intent to Ship: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/duyso0oe6jM This feature is now launched. |
|||||||
| ► Sign in to add a comment | |||||||