Skip to content

Commit 8e995c2

Browse files
committed
fix: correctly format signatures for rss
1 parent fe75924 commit 8e995c2

File tree

1 file changed

+21
-16
lines changed

1 file changed

+21
-16
lines changed

Tests/tkeypkgTests/IntegrationTests.swift

+21-16
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import CommonSources
22
import FetchNodeDetails
33
import Foundation
4+
@testable import tkey_mpc_swift
45
import TorusUtils
56
import XCTest
6-
@testable import tkey_mpc_swift
77

88
final class integrationTests: XCTestCase {
99
func test_TssModule() async throws {
@@ -21,11 +21,14 @@ final class integrationTests: XCTestCase {
2121
let idToken = try generateIdToken(email: TORUS_TEST_EMAIL)
2222
let verifierParams = VerifierParams(verifier_id: TORUS_TEST_EMAIL)
2323
let retrievedShare = try await torusUtils.retrieveShares(endpoints: nodeDetail.torusNodeEndpoints, torusNodePubs: nodeDetail.torusNodePub, indexes: nodeDetail.torusIndexes, verifier: TORUS_TEST_VERIFIER, verifierParams: verifierParams, idToken: idToken)
24-
let signature = retrievedShare.sessionData?.sessionTokenData
25-
let signatures = signature!.compactMap { item in
26-
item?.signature
24+
25+
let signature_collection = retrievedShare.sessionData!.sessionTokenData.map { token in
26+
["data": Data(hex: token!.token).base64EncodedString(),
27+
"sig": token!.signature]
2728
}
2829

30+
let sigs: [String] = try signature_collection.map { String(decoding: try JSONSerialization.data(withJSONObject: $0), as: UTF8.self) }
31+
2932
let postbox_key = try! PrivateKey.generate()
3033
let storage_layer = try! StorageLayer(enable_logging: true, host_url: "https://metadata.tor.us", server_time_offset: 2)
3134
let service_provider = try! ServiceProvider(enable_logging: true, postbox_key: postbox_key.hex, useTss: true, verifier: TORUS_TEST_VERIFIER, verifierId: TORUS_TEST_EMAIL, nodeDetails: nodeDetail)
@@ -47,7 +50,7 @@ final class integrationTests: XCTestCase {
4750
let factorKey = try PrivateKey.generate()
4851
let factorPub = try factorKey.toPublic()
4952
try TssModule.backup_share_with_factor_key(threshold_key: threshold, shareIndex: shareIndex.hex, factorKey: factorKey.hex)
50-
53+
5154
try await TssModule.create_tagged_tss_share(threshold_key: threshold, tss_tag: tssTag, deviceTssShare: nil, factorPub: factorPub, deviceTssIndex: 2, nodeDetails: nodeDetail, torusUtils: torusUtils)
5255

5356
let (tss_index, tss_share) = try await TssModule.get_tss_share(threshold_key: threshold, tss_tag: tssTag, factorKey: factorKey.hex)
@@ -57,7 +60,7 @@ final class integrationTests: XCTestCase {
5760
let newFactorKey = try PrivateKey.generate()
5861
let newFactorPub = try newFactorKey.toPublic()
5962
// 2/2 -> 2/3 tss
60-
try await TssModule.generate_tss_share(threshold_key: threshold, tss_tag: tssTag, input_tss_share: tss_share, tss_input_index: Int32(tss_index)!, auth_signatures: signatures, new_factor_pub: newFactorPub, new_tss_index: 3, nodeDetails: nodeDetail, torusUtils: torusUtils)
63+
try await TssModule.generate_tss_share(threshold_key: threshold, tss_tag: tssTag, input_tss_share: tss_share, tss_input_index: Int32(tss_index)!, auth_signatures: sigs, new_factor_pub: newFactorPub, new_tss_index: 3, nodeDetails: nodeDetail, torusUtils: torusUtils)
6164
let (tss_index3, tss_share3) = try await TssModule.get_tss_share(threshold_key: threshold, tss_tag: tssTag, factorKey: newFactorKey.hex)
6265

6366
let (_, tss_share_updated) = try await TssModule.get_tss_share(threshold_key: threshold, tss_tag: tssTag, factorKey: factorKey.hex)
@@ -74,7 +77,7 @@ final class integrationTests: XCTestCase {
7477
manual_sync: false
7578
)
7679
_ = try! await threshold2.initialize()
77-
80+
7881
try await threshold2.input_factor_key(factorKey: factorKey.hex)
7982
_ = try! await threshold2.reconstruct()
8083

@@ -91,7 +94,7 @@ final class integrationTests: XCTestCase {
9194
XCTAssertEqual(tss_index3, tss_index2_3)
9295

9396
// 2/3 -> 2/2 tss
94-
try await TssModule.delete_tss_share(threshold_key: threshold, tss_tag: tssTag, input_tss_share: tss_share3, tss_input_index: Int32(tss_index3)!, auth_signatures: signatures, delete_factor_pub: newFactorPub, nodeDetails: nodeDetail, torusUtils: torusUtils)
97+
try await TssModule.delete_tss_share(threshold_key: threshold, tss_tag: tssTag, input_tss_share: tss_share3, tss_input_index: Int32(tss_index3)!, auth_signatures: sigs, delete_factor_pub: newFactorPub, nodeDetails: nodeDetail, torusUtils: torusUtils)
9598
// XCTAssertThrowsError( try await TssModule.get_tss_share(threshold_key: threshold, tss_tag: tssTag, factorKey: newFactorKey.hex) )
9699

97100
let (tss_index_updated2, tss_share_updated2) = try await TssModule.get_tss_share(threshold_key: threshold, tss_tag: tssTag, factorKey: factorKey.hex)
@@ -101,10 +104,10 @@ final class integrationTests: XCTestCase {
101104
XCTAssertNotEqual(tss_share_updated, tss_share_updated2)
102105

103106
// 2/2 -> 2/3 tss
104-
try await TssModule.add_factor_pub(threshold_key: threshold, tss_tag: tssTag, factor_key: factorKey.hex, auth_signatures: signatures, new_factor_pub: newFactorPub, new_tss_index: 3, nodeDetails: nodeDetail, torusUtils: torusUtils)
107+
try await TssModule.add_factor_pub(threshold_key: threshold, tss_tag: tssTag, factor_key: factorKey.hex, auth_signatures: sigs, new_factor_pub: newFactorPub, new_tss_index: 3, nodeDetails: nodeDetail, torusUtils: torusUtils)
105108

106109
// 2/3 -> 2/2 tss
107-
try await TssModule.delete_factor_pub(threshold_key: threshold, tss_tag: tssTag, factor_key: factorKey.hex, auth_signatures: signatures, delete_factor_pub: newFactorPub, nodeDetails: nodeDetail, torusUtils: torusUtils)
110+
try await TssModule.delete_factor_pub(threshold_key: threshold, tss_tag: tssTag, factor_key: factorKey.hex, auth_signatures: sigs, delete_factor_pub: newFactorPub, nodeDetails: nodeDetail, torusUtils: torusUtils)
108111
}
109112

110113
func test_TssModule_multi_tag() async throws {
@@ -125,12 +128,14 @@ final class integrationTests: XCTestCase {
125128
let idToken = try generateIdToken(email: TORUS_TEST_EMAIL)
126129
let verifierParams = VerifierParams(verifier_id: TORUS_TEST_EMAIL)
127130
let retrievedShare = try await torusUtils.retrieveShares(endpoints: nodeDetail.torusNodeSSSEndpoints, torusNodePubs: nodeDetail.torusNodePub, indexes: nodeDetail.torusIndexes, verifier: TORUS_TEST_VERIFIER, verifierParams: verifierParams, idToken: idToken)
128-
print(retrievedShare)
129-
let signature = retrievedShare.sessionData!.sessionTokenData
130-
let signatures = signature.compactMap { item in
131-
item?.signature
131+
132+
let signature_collection = retrievedShare.sessionData!.sessionTokenData.map { token in
133+
["data": Data(hex: token!.token).base64EncodedString(),
134+
"sig": token!.signature]
132135
}
133136

137+
let sigs: [String] = try signature_collection.map { String(decoding: try JSONSerialization.data(withJSONObject: $0), as: UTF8.self) }
138+
134139
let postbox_key = try! PrivateKey.generate()
135140
let storage_layer = try! StorageLayer(enable_logging: true, host_url: "https://metadata.tor.us", server_time_offset: 2)
136141
let service_provider = try! ServiceProvider(enable_logging: true, postbox_key: postbox_key.hex, useTss: true, verifier: TORUS_TEST_VERIFIER, verifierId: TORUS_TEST_EMAIL, nodeDetails: nodeDetail)
@@ -191,7 +196,7 @@ final class integrationTests: XCTestCase {
191196

192197
newFactorKeys.append(newFactorKey)
193198
newFactorPubs.append(newFactorPub)
194-
try await TssModule.add_factor_pub(threshold_key: threshold, tss_tag: tag, factor_key: factorKeys[index].hex, auth_signatures: signatures, new_factor_pub: newFactorPub, new_tss_index: 3, nodeDetails: nodeDetail, torusUtils: torusUtils)
199+
try await TssModule.add_factor_pub(threshold_key: threshold, tss_tag: tag, factor_key: factorKeys[index].hex, auth_signatures: sigs, new_factor_pub: newFactorPub, new_tss_index: 3, nodeDetails: nodeDetail, torusUtils: torusUtils)
195200

196201
try await threshold.sync_local_metadata_transistions()
197202

@@ -258,7 +263,7 @@ final class integrationTests: XCTestCase {
258263

259264
newFactorKeys2.append(newFactorKey2)
260265
newFactorPubs2.append(newFactorPub2)
261-
try await TssModule.delete_factor_pub(threshold_key: threshold, tss_tag: tag, factor_key: newFactorKeys[index].hex, auth_signatures: signatures, delete_factor_pub: newFactorPubs[index], nodeDetails: nodeDetail, torusUtils: torusUtils)
266+
try await TssModule.delete_factor_pub(threshold_key: threshold, tss_tag: tag, factor_key: newFactorKeys[index].hex, auth_signatures: sigs, delete_factor_pub: newFactorPubs[index], nodeDetails: nodeDetail, torusUtils: torusUtils)
262267
}
263268
try await threshold.sync_local_metadata_transistions()
264269
print(try threshold.get_all_tss_tags())

0 commit comments

Comments
 (0)