97 lines
3.3 KiB
Go
97 lines
3.3 KiB
Go
|
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")
|
||
|
}
|
||
|
}
|
||
|
|