package inbox_test import "seekia/internal/messaging/inbox" import "seekia/internal/identity" import "seekia/internal/encoding" import "bytes" import "testing" func TestPublicInboxDerivationFunctions(t *testing.T){ testIdentityHashString := "wgkxplfvju7yhpoadvxju4kmfdm" testIdentityHash, _, err := identity.ReadIdentityHashString(testIdentityHashString) if (err != nil){ t.Fatalf("Failed to read testIdentityHashString: " + err.Error()) } expectedPublicInboxString := "7sjss2s73pbqnhhe" expectedPublicInbox, err := inbox.ReadInboxString(expectedPublicInboxString) if (err != nil){ t.Fatalf("Failed to decode expectedPublicInbox: " + err.Error()) } publicInbox, err := inbox.GetPublicInboxFromIdentityHash(testIdentityHash) if (err != nil){ t.Fatalf("Failed to get public inbox from identity hash: " + err.Error()) } if (publicInbox != expectedPublicInbox){ publicInboxString := encoding.EncodeBytesToBase32String(publicInbox[:]) t.Fatalf("Failed to get public inbox from identity hash: Unexpected result: " + publicInboxString) } publicInboxSealerKey, err := inbox.GetPublicInboxSealerKeyFromIdentityHash(testIdentityHash) if (err != nil){ t.Fatalf("GetPublicInboxSealerKeyFromIdentityHash failed: " + err.Error()) } expectedPublicInboxSealerKey := "7d3fadbc59f692dead5ae794ddd0492cfef2990357f09301a7560966dd955d8b" expectedPublicInboxSealerKeyBytes, err := encoding.DecodeHexStringToBytes(expectedPublicInboxSealerKey) if (err != nil){ t.Fatalf("expectedPublicInboxSealerKey is not hex: " + err.Error()) } areEqual := bytes.Equal(publicInboxSealerKey[:], expectedPublicInboxSealerKeyBytes) if (areEqual == false){ resultHex := encoding.EncodeBytesToHexString(publicInboxSealerKey[:]) t.Fatalf("GetPublicInboxSealerKeyFromIdentityHash failed: Unexpected result: " + resultHex) } } func TestSecretInboxDerivationFunction(t *testing.T){ testSecretInboxSeed := "f574640613cb21cbb92e549e6a0412a152cca1a19ad3" testSecretInboxSeedBytes, err := encoding.DecodeHexStringToBytes(testSecretInboxSeed) if (err != nil){ t.Fatalf("testSecretInboxSeed is not hex: " + err.Error()) } if (len(testSecretInboxSeedBytes) != 22){ t.Fatalf("testSecretInboxSeed has an invalid length.") } testSecretInboxSeedArray := [22]byte(testSecretInboxSeedBytes) secretInbox, secretInboxSealerKey, err := inbox.GetSecretInboxAndSealerKeyFromSecretInboxSeed(testSecretInboxSeedArray) if (err != nil){ t.Fatalf("GetSecretInboxAndSealerKeyFromSecretInboxSeed failed: " + err.Error()) } expectedSecretInboxString := "q7it4ziecjxigop6" expectedSecretInbox, err := inbox.ReadInboxString(expectedSecretInboxString) if (err != nil){ t.Fatalf("Failed to decode expectedSecretInbox: " + err.Error()) } if (secretInbox != expectedSecretInbox){ t.Fatalf("GetSecretInboxAndSealerKeyFromSecretInboxSeed returning unexpected secretInbox.") } expectedSecretInboxSealerKey := "070a8c4a9c9d8a46951f02fafab3bbe94e958b3d5db21425ef842141c691d231" expectedSecretInboxSealerKeyBytes, err := encoding.DecodeHexStringToBytes(expectedSecretInboxSealerKey) if (err != nil){ t.Fatalf("expectedSecretInboxSealerKey is not hex: " + err.Error()) } areEqual := bytes.Equal(secretInboxSealerKey[:], expectedSecretInboxSealerKeyBytes) if (areEqual == false){ t.Fatalf("GetSecretInboxAndSealerKeyFromSecretInboxSeed returning unexpected secretInboxSealerKey") } }