48 Commits

Author SHA1 Message Date
Alan Friedman
323c7a903d Use asymmetric signing keys instead of HMAC
Participants now generate RSASSA-PKCS1-v1_5 public/private key pairs
and sign messages with their private key. Recipients verify signatures
with the sender’s public key.
2016-01-26 15:05:17 -05:00
Alan Friedman
d90b1fa814 Fix typo 2016-01-25 15:52:52 -05:00
Alan Friedman
0dad45ed91 Use HMAC symmetric key to sign/verify and add webkit shim
For webkit support, I removed the public/private signing keys and
replaced them with a symmetric HMAC signing key. It achieves the same
thing and besides adding webkit support, is also a bit cleaner.

Webkit handles key export is a non-standard way, so with this shim we
have to export and import public keys in “spki” format. Webkit also
requires slightly different options to be passed in for some operations.
2016-01-25 15:50:33 -05:00
Alan Friedman
663fee0797 Use input instead of textarea for room URL 2016-01-25 15:44:50 -05:00
Alan Friedman
557a22a01e Fix for crypto webkit prefix 2016-01-23 21:24:50 -05:00
Alan Friedman
164c33f893 Simplify invite message 2016-01-23 20:52:20 -05:00
Alan Friedman
d46b8f24b5 Use asymmetric encryption to replace passphrase exchange
All parties now create public/private key pairs for
encryption/decryption and signing/verification. Public keys are passed
around and stored in server memory while the room is alive. Session
keys, which are used to encrypt cleartext messages, are newly generated
for each message and are encrypted using each participant’s public key.
Messages are signed using the sender’s private signing key.
2016-01-23 20:49:29 -05:00
Alan Friedman
64b12776b8 Fix for Safari support using webkit prefix 2016-01-20 17:17:31 -05:00
Alan Friedman
2a8e4842c3 Undo a change 2016-01-20 17:08:41 -05:00
Alan Friedman
a35083494d Remove clipboardJS and cryptoJS 2016-01-20 16:49:52 -05:00
Alan Friedman
39e4d3d56c Use crypto web API and prevent usage in unsupported browsers 2016-01-20 16:48:47 -05:00
Dan Seripap
6e1986b375 Added OS link, changing key wording to passphrase 2016-01-19 16:49:08 -05:00
Dan Seripap
d4a5193769 Use uuid lib for crypto and fallback support to replace math.random for #1 2016-01-19 16:42:19 -05:00
Alan Friedman
fd84a4ef8d Don't show user as joined until they enter a key 2016-01-16 11:08:32 -05:00
Alan Friedman
83df79de29 Add switch toggle for sound notifications 2016-01-16 11:07:43 -05:00
Alan Friedman
a06570aebf Fixes for autosizing textareas 2016-01-15 22:29:58 -05:00
Alan Friedman
b42f459cee Use textarea for copyable text and autosize it 2016-01-15 22:05:53 -05:00
Alan Friedman
2b5cc84a32 Don't focus input on window focus 2016-01-15 20:17:21 -05:00
Alan Friedman
2578d50807 Add FastClick 2016-01-15 17:14:21 -05:00
Alan Friedman
70be01cea3 Fix input focus bugs on mobile 2016-01-15 17:14:11 -05:00
Alan Friedman
a5aa18b9ba Change to darkwire.io and dark theme 2016-01-15 17:00:18 -05:00
Alan Friedman
14a646c4e1 Close mobile nav on click link 2016-01-13 14:12:09 -05:00
Alan Friedman
5add27f995 Autofocus on key input 2016-01-13 14:11:57 -05:00
Alan Friedman
d79c5ada53 Better password generator 2016-01-13 13:50:48 -05:00
Dan Seripap
ade0610a1b Added beep 2016-01-13 11:00:25 -05:00
Dan Seripap
217d967e08 Added browserify, es2015 to publicjs 2016-01-13 09:28:10 -05:00
Alan Friedman
d4010ff2c5 Set send icon inactive after sending message 2016-01-12 23:03:56 -05:00
Alan Friedman
fc8dae8217 Add Modernizr to show send icon on touch devices only 2016-01-12 22:59:42 -05:00
Alan Friedman
dc7ca8b7e7 Sanitize input to prevent XSS 2016-01-12 22:38:31 -05:00
Alan Friedman
11814aae88 Improve editing key and change footer button styles 2016-01-12 20:59:29 -05:00
Alan Friedman
c4630fff8a Prevent saving empty key 2016-01-12 20:16:09 -05:00
Alan Friedman
5e2a9e2ac0 Simplify key stuff 2016-01-12 20:09:27 -05:00
Alan Friedman
9b146220a8 Add current users list modal 2016-01-12 16:45:35 -05:00
Alan Friedman
c63944aad2 Format URLs 2016-01-11 19:48:22 -05:00
Alan Friedman
e6a9e01089 Remove "X participants" message 2016-01-11 19:48:08 -05:00
Alan Friedman
b1389371a8 Tweak participants count style and position 2016-01-11 13:43:40 -05:00
Alan Friedman
5957e256c7 Fix gen key bug 2016-01-11 13:35:36 -05:00
Alan Friedman
45325e80cf Use shorter keys 2016-01-11 13:26:26 -05:00
Alan Friedman
62d316a5d9 Highlight input when encryption is off 2016-01-11 13:06:18 -05:00
Alan Friedman
85af185f97 Auto-hide notifications 2016-01-11 13:06:09 -05:00
Alan Friedman
ca18da8504 Merge branch 'master' into encrypt-default
Conflicts:
	src/js/main.js
2016-01-11 12:53:58 -05:00
Alan Friedman
4d36f0d83e Enable encryption by default and show warning when it's disabled 2016-01-11 12:51:47 -05:00
Dan Seripap
7f0993182d Better gulp 2016-01-10 16:30:05 -05:00
Alan Friedman
14fc581a6f Add header and settings and about modals 2016-01-09 13:53:41 -05:00
Alan Friedman
8c76a75924 Resolve merge conflicts 2016-01-08 20:49:17 -05:00
Alan Friedman
ac395fdfd2 Handle copy error for unsupported browsers 2016-01-08 20:47:10 -05:00
Dan Seripap
35dc549e3d Remove key 2016-01-08 20:44:00 -05:00
Dan Seripap
f09f42226d Uglify js 2016-01-08 20:33:41 -05:00