Skip to content

Commit

Permalink
docs update
Browse files Browse the repository at this point in the history
  • Loading branch information
OmarBasem committed Jun 30, 2021
1 parent b6eeb24 commit c06a71e
Show file tree
Hide file tree
Showing 183 changed files with 408 additions and 308 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ public JSONObject initialize(String userId, String password, ProgressEvent progr
* * An array of identity keys
* * An array of signed prekeys
* * An array of prekeys
* * An array of sender keys (EncryptingSenderKeys)
* * An array of sender keys (EncryptionSenderKeys)
* * localId
* @param password - String, user's plaintext password
* @param userId - String, user's unique id
Expand Down Expand Up @@ -361,6 +361,14 @@ public void reInitialize(JSONObject bundle, String password, String userId, Prog
}
}

/***
* This method is used to decrypt an array of prekeys. Can be useful to make the above reInitialize method finish faster
* by decrypting only a limited number of prekeys in the reInitialize method at login, then decrypt
* the rest of the prekeys in the background after login.
*
* @param preKeys - JSONArray
**
*/
public void decryptPreKeys(JSONArray preKeys) throws Exception {
String userId = PreferenceManager.getDefaultSharedPreferences(context).getString("userId", "");
HashMap<String, String> serviceMap = new HashMap();
Expand Down Expand Up @@ -400,6 +408,14 @@ public String createPasswordHash(String password, String salt) throws IOExceptio
return Base64.encodeBytes(passwordHashBytes);
}


/***
* This method is used to create a new password hash, for example when changing password.
*
* @param password - String, plaintext password
*
* @return JSONObject containing hash and salt
*/
public JSONObject createNewPasswordHash(String password) {
try {
// Generate password salt
Expand Down Expand Up @@ -556,15 +572,15 @@ public String decryptTextPairwise(String senderId, boolean isStickyKey, String c
/****************************** START OF STICKY SESSION METHODS ******************************/

/***
* This method is used to create a sticky session and get the EncryptingSenderKey of a user for a party.
* This method is used to create a sticky session and get the EncryptionSenderKey of a user for a party.
*
* @param userId
* @param stickId - String, the stickId of the sticky session
* @return JSONObject - contains the following:
* * id - int, the sender key id
* * key - encrypted sender key (chainKey || private signature key || public signature key)
*/
public JSONObject getEncryptingSenderKey(String userId, String stickId) {
public JSONObject createStickySession(String userId, String stickId) {
try {
SenderKeyStore senderKeyStore = new MySenderKeyStore(context);
SignalProtocolAddress signalProtocolAddress = new SignalProtocolAddress(userId, 0);
Expand All @@ -586,7 +602,7 @@ public JSONObject getEncryptingSenderKey(String userId, String stickId) {
}

/***
* This method is used to get a user's sender key (DecryptingSenderKey) of a sticky session (or a standard group session)
* This method is used to get a user's sender key (DecryptionSenderKey) of a sticky session (or a standard group session)
* in order to share it with other members of a party.
*
* @param senderId - userId (or oneTimeId)
Expand Down Expand Up @@ -965,6 +981,16 @@ public JSONArray generatePreKeys(int nextPreKeyId, int count) {
return null;
}

/***
* This method is used to reEncrypt the identity keys, signed prekeys and prekeys. Typically,
* would be needed when changing the password.
*
* @param password - String, plaintext password
* @param progressEvent - (optional) A ProgressEvent interface can be implemented to provide progress
* feedback to the user while the keys are being encrypted
*
* @return JSONObject containing an array of identity keys, an array of signed prekeys and an array of prekeys
*/
public JSONObject reEncryptKeys(String password, ProgressEvent progressEvent) {
try {
MyProtocolStore store = new MyProtocolStore(context);
Expand Down
14 changes: 7 additions & 7 deletions client-handlers/StickProtocolHandlers.js
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ export default class StickProtocolHandlers {

/**
* This function is used to upload sender keys of a sticky session to server. StickProtocol.getSenderKey() will return
* a DecryptingSenderKey for other members of a party, while StickProtocol.getEncryptingSenderKey() will return a
* user's own EncryptingSenderKey for a sticky session.
* a DecryptionSenderKey for other members of a party, while StickProtocol.getEncryptionSenderKey() will return a
* user's own EncryptionSenderKey for a sticky session.
*
*/
async uploadSenderKeys(stickId, users_id = null, group_id = null) {
Expand All @@ -115,11 +115,11 @@ export default class StickProtocolHandlers {
const key = await this.StickProtocol.getSenderKey(this.userId, memberId, stickId, true);
keys[memberId] = {identityKeyId, preKeyId, key, stickId, forUser: memberId}
} else {
let encryptingSenderKey = await this.StickProtocol.getEncryptingSenderKey(this.userId, stickId)
encryptingSenderKey['preKeyId'] = preKeyId
encryptingSenderKey['identityKeyId'] = identityKeyId
encryptingSenderKey['stickId'] = stickId
keys[memberId] = encryptingSenderKey
let encryptionSenderKey = await this.StickProtocol.getEncryptionSenderKey(this.userId, stickId)
encryptionSenderKey['preKeyId'] = preKeyId
encryptionSenderKey['identityKeyId'] = identityKeyId
encryptionSenderKey['stickId'] = stickId
keys[memberId] = encryptionSenderKey
}
}

Expand Down
2 changes: 1 addition & 1 deletion ios/StickProtocol/Pods/CocoaLumberjack/LICENSE

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion ios/StickProtocol/Pods/CryptoSwift/LICENSE

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion ios/StickProtocol/Pods/CryptoSwift/README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit c06a71e

Please sign in to comment.