Encrypted messaging app
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
1.9 KiB

  1. package Seeder
  2. import (
  3. "encoding/base64"
  4. "time"
  5. "git.tovijaeschke.xyz/tovi/Envelope/Backend/Database"
  6. "git.tovijaeschke.xyz/tovi/Envelope/Backend/Models"
  7. )
  8. func seedFriend(userRequestTo, userRequestFrom Models.User) error {
  9. var (
  10. friendRequest Models.FriendRequest
  11. decodedID []byte
  12. id []byte
  13. decodedSymKey []byte
  14. symKey []byte
  15. err error
  16. )
  17. decodedID, err = base64.StdEncoding.DecodeString(userRequestFrom.FriendID)
  18. if err != nil {
  19. return err
  20. }
  21. id, err = decryptWithPrivateKey(decodedID, decodedPrivateKey)
  22. if err != nil {
  23. return err
  24. }
  25. decodedSymKey, err = base64.StdEncoding.DecodeString(userRequestFrom.FriendSymmetricKey)
  26. if err != nil {
  27. return err
  28. }
  29. symKey, err = decryptWithPrivateKey(decodedSymKey, decodedPrivateKey)
  30. friendRequest = Models.FriendRequest{
  31. UserID: userRequestTo.ID,
  32. AcceptedAt: time.Now(),
  33. FriendID: base64.StdEncoding.EncodeToString(
  34. encryptWithPublicKey(id, decodedPublicKey),
  35. ),
  36. SymmetricKey: base64.StdEncoding.EncodeToString(
  37. encryptWithPublicKey(symKey, decodedPublicKey),
  38. ),
  39. }
  40. return Database.CreateFriendRequest(&friendRequest)
  41. }
  42. func SeedFriends() {
  43. var (
  44. primaryUser Models.User
  45. secondaryUser Models.User
  46. i int
  47. err error
  48. )
  49. primaryUser, err = Database.GetUserByUsername("testUser")
  50. if err != nil {
  51. panic(err)
  52. }
  53. secondaryUser, err = Database.GetUserByUsername("testUser2")
  54. if err != nil {
  55. panic(err)
  56. }
  57. err = seedFriend(primaryUser, secondaryUser)
  58. if err != nil {
  59. panic(err)
  60. }
  61. err = seedFriend(secondaryUser, primaryUser)
  62. if err != nil {
  63. panic(err)
  64. }
  65. for i = 0; i <= 3; i++ {
  66. secondaryUser, err = Database.GetUserByUsername(userNames[i])
  67. if err != nil {
  68. panic(err)
  69. }
  70. err = seedFriend(primaryUser, secondaryUser)
  71. if err != nil {
  72. panic(err)
  73. }
  74. err = seedFriend(secondaryUser, primaryUser)
  75. if err != nil {
  76. panic(err)
  77. }
  78. }
  79. }