Deliverable 1

Description: Create an encrypted group in Yioop, add users and threads to the group to see how these changes reflect in the database in-order to understand how the existing privacy mechanism in Yioop works

Implementation steps:

  • Create an encrypted group on Yioop
  • Add users, threads and posts to the created group
  • Go through Yioop codebase and find tables responsible for group encryption
  • Query the corresponding tables and demonstrate the working of the existing encryption mechanism

Discoveries:

Relevant database tables modified when new group is added:

  • SOCIAL_GROUPS: Contains groups and group details like group ID. Contains Encryption column set to 0 or 1 to indicate if group is encrypted or not
  • GROUP_ITEM: Contains group details including title and description of threads in a group
  • TYPE_KEYS: (If encryption is enabled) Contains group keys used for encryption-decryption

Results:

1. Created group called 'Deliverable1_Test' and added users, threads and posts:

Create Group Feature

2. Database reflects the addition of 'Deliverable1_Test' in table 'SOCIAL_GROUPS'

Social_Groups table

3. A key is generated for the newly created group and stored in 'TYPE_KEYS' table of the external database

type_keys table

4. Database reflects creation of new threads for the created group (group_id=5). Also highlighted are encrypted title and description of group items

Group_Items table