feat: implement Ed25519 and X25519 crypto for Apple/iOS and Linux native platforms
Replace TODO stubs with pure Kotlin implementations of Ed25519 (RFC 8032) and X25519 (RFC 7748) for native targets, completing Marmot MLS support on iOS. Shared field arithmetic over GF(2^255-19) is extracted to nativeMain. Also fixes MarmotSubscriptionManagerTest assertions to account for the ownKeyPackageFilter added to buildFilters(). https://claude.ai/code/session_01LpR6qsF6nep1RnXA9KbXGs
This commit is contained in:
+6
-6
@@ -142,24 +142,24 @@ class MarmotSubscriptionManagerTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testBuildFiltersIncludesBothTypes() =
|
||||
fun testBuildFiltersIncludesAllTypes() =
|
||||
runTest {
|
||||
val manager = MarmotSubscriptionManager(userPubKey)
|
||||
|
||||
manager.subscribeGroup(groupId1)
|
||||
val allFilters = manager.buildFilters()
|
||||
|
||||
// Should have 1 group filter + 1 gift wrap filter
|
||||
assertEquals(2, allFilters.size)
|
||||
// Should have 1 group filter + 1 gift wrap filter + 1 own key package filter
|
||||
assertEquals(3, allFilters.size)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testBuildFiltersWithNoGroupsHasGiftWrapOnly() {
|
||||
fun testBuildFiltersWithNoGroupsHasGiftWrapAndKeyPackage() {
|
||||
val manager = MarmotSubscriptionManager(userPubKey)
|
||||
val allFilters = manager.buildFilters()
|
||||
|
||||
// Only the gift wrap filter
|
||||
assertEquals(1, allFilters.size)
|
||||
// Gift wrap filter + own key package filter
|
||||
assertEquals(2, allFilters.size)
|
||||
assertEquals(listOf(GiftWrapEvent.KIND), allFilters[0].kinds)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user