Loop/Architecture/Fingerprint Validation: Difference between revisions

no edit summary
(Created page with "Loop/Architecture/Rooms#Joining a Room POST /rooms/QzBbvGmIZWU HTTP/1.1 Accept: application/json Accept-Encoding: gzip, deflate Content-Type: application/json; charse...")
 
No edit summary
Line 81: Line 81:
       ]
       ]
  }
  }
== Proof-of-Concept Shim ==
  <script>
  window._originalRTCPeerConnection = window.mozRTCPeerConnection;
  window.mozRTCPeerConnection = function() {
    var setDescriptionShim = function(sdp, success, failure, pc, localRemote) {
      var fingerprint = /a=fingerprint:([^\r\n]*)/.exec(sdp.sdp)[1];
      console.log(localRemote + " fingerprint = " + fingerprint);
      pc["_originalSet" + localRemote + "Description"](sdp, success, failure);
    }
    var pc = new window._originalRTCPeerConnection();
    pc._originalSetLocalDescription = pc.setLocalDescription;
    pc._originalSetRemoteDescription = pc.setRemoteDescription;
    pc.setLocalDescription = function(sdp, success, failure) {
      setDescriptionShim(sdp, success, failure, pc, "Local");
    }
    pc.setRemoteDescription = function(sdp, success, failure) {
      setDescriptionShim(sdp, success, failure, pc, "Remote");
    }
    return pc;
  }
  navigator.mozGetUserMedia({video: true, fake:true}, function(stream) {
    var pc = new mozRTCPeerConnection();
    pc.addStream(stream);
    pc.createOffer(function(offer) {
      pc.setLocalDescription(offer, function() {
        console.log("Local description has been set");
      }, function (err) {
        console.log(err);
      });
    }, function (err) {
      console.log(err);
    });
    }, function (err) {
    console.log(err);
  });
  </script>
Confirmed users
632

edits