Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
matrix-org
Olm
Commits
a0284c2b
Commit
a0284c2b
authored
Jun 17, 2020
by
Saúl Ibarra Corretgé
Committed by
Hubert Chathi
Jul 04, 2020
Browse files
Fix group demo to work with > 2 users
Add 4 by default, and make sure OT keys are not reused.
parent
8a958beb
Changes
2
Show whitespace changes
Inline
Side-by-side
javascript/demo/group_demo.html
View file @
a0284c2b
...
@@ -57,5 +57,56 @@
...
@@ -57,5 +57,56 @@
<div
class=
"user_progress"
></div>
<div
class=
"user_progress"
></div>
</div>
</div>
<div
id=
"user3"
class=
"user"
>
<h1>
User 3
</h1>
<textarea
class=
"user_plain_input"
></textarea>
<button
class=
"user_encrypt"
>
Encrypt
</button>
<h2>
Outgoing
</h2>
<h3>
One-to-one output
</h3>
<div
class=
"user_cipher_output"
></div>
<h3>
Group output
</h3>
<div
class=
"group_output"
></div>
<h2>
Incoming
</h2>
<h3>
One-to-one Received
</h3>
<div
class=
"user_cipher_input"
></div>
<h3>
Group received
</h3>
<div
class=
"group_input"
></div>
<h2>
Tasks
</h2>
<div
class=
"user_progress"
></div>
</div>
<div
id=
"user4"
class=
"user"
>
<h1>
User 4
</h1>
<textarea
class=
"user_plain_input"
></textarea>
<button
class=
"user_encrypt"
>
Encrypt
</button>
<h2>
Outgoing
</h2>
<h3>
One-to-one output
</h3>
<div
class=
"user_cipher_output"
></div>
<h3>
Group output
</h3>
<div
class=
"group_output"
></div>
<h2>
Incoming
</h2>
<h3>
One-to-one Received
</h3>
<div
class=
"user_cipher_input"
></div>
<h3>
Group received
</h3>
<div
class=
"group_input"
></div>
<h2>
Tasks
</h2>
<div
class=
"user_progress"
></div>
</div>
</body>
</body>
</html>
</html>
javascript/demo/group_demo.js
View file @
a0284c2b
...
@@ -167,20 +167,13 @@ DemoUser.prototype.getIdKeys = function() {
...
@@ -167,20 +167,13 @@ DemoUser.prototype.getIdKeys = function() {
return
JSON
.
parse
(
this
.
olmAccount
.
identity_keys
());
return
JSON
.
parse
(
this
.
olmAccount
.
identity_keys
());
};
};
DemoUser
.
prototype
.
generateKeys
=
function
(
callback
)
{
var
self
=
this
;
this
.
addTask
(
"
generate one time key
"
,
function
(
done
)
{
self
.
olmAccount
.
generate_one_time_keys
(
1
);
done
();
},
callback
);
};
DemoUser
.
prototype
.
getOneTimeKey
=
function
()
{
DemoUser
.
prototype
.
getOneTimeKey
=
function
()
{
var
self
=
this
;
var
self
=
this
;
var
keys
=
JSON
.
parse
(
self
.
olmAccount
.
one_time_keys
(
))
self
.
olmAccount
.
generate_
one_time_keys
(
1
);
.
curve25519
;
var
keys
=
JSON
.
parse
(
self
.
olmAccount
.
one_time_keys
())
.
curve25519
;
for
(
key_id
in
keys
)
{
for
(
key_id
in
keys
)
{
if
(
keys
.
hasOwnProperty
(
key_id
))
{
if
(
keys
.
hasOwnProperty
(
key_id
))
{
self
.
olmAccount
.
mark_keys_as_published
();
return
keys
[
key_id
];
return
keys
[
key_id
];
}
}
}
}
...
@@ -478,14 +471,31 @@ function initUserDiv(demoUser, div) {
...
@@ -478,14 +471,31 @@ function initUserDiv(demoUser, div) {
function
startDemo
()
{
function
startDemo
()
{
var
user1
=
new
DemoUser
();
var
user1
=
new
DemoUser
();
initUserDiv
(
user1
,
document
.
getElementById
(
"
user1
"
));
initUserDiv
(
user1
,
document
.
getElementById
(
"
user1
"
));
user1
.
generateKeys
();
var
user2
=
new
DemoUser
();
var
user2
=
new
DemoUser
();
initUserDiv
(
user2
,
document
.
getElementById
(
"
user2
"
));
initUserDiv
(
user2
,
document
.
getElementById
(
"
user2
"
));
user2
.
generateKeys
();
var
user3
=
new
DemoUser
();
initUserDiv
(
user3
,
document
.
getElementById
(
"
user3
"
));
var
user4
=
new
DemoUser
();
initUserDiv
(
user4
,
document
.
getElementById
(
"
user4
"
));
user1
.
addPeer
(
user2
.
remoteOps
);
user1
.
addPeer
(
user2
.
remoteOps
);
user1
.
addPeer
(
user3
.
remoteOps
);
user1
.
addPeer
(
user4
.
remoteOps
);
user2
.
addPeer
(
user1
.
remoteOps
);
user2
.
addPeer
(
user1
.
remoteOps
);
user2
.
addPeer
(
user3
.
remoteOps
);
user2
.
addPeer
(
user4
.
remoteOps
);
user3
.
addPeer
(
user1
.
remoteOps
);
user3
.
addPeer
(
user2
.
remoteOps
);
user3
.
addPeer
(
user4
.
remoteOps
);
user4
.
addPeer
(
user1
.
remoteOps
);
user4
.
addPeer
(
user2
.
remoteOps
);
user4
.
addPeer
(
user3
.
remoteOps
);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment