diff --git a/Sources/libdkls/include/dkls.h b/Sources/libdkls/include/dkls.h index 2eb86df..92efc60 100644 --- a/Sources/libdkls/include/dkls.h +++ b/Sources/libdkls/include/dkls.h @@ -30,9 +30,9 @@ //MsgComm struct DKLSMsgComm* dkls_comm(int index,int parties,const char* session, - const char* (*read_msg_callback)(const char*,unsigned long long int,unsigned long long int,const char*), - bool (*send_msg_callback)(const char*,unsigned long long int,unsigned long long int,const char*,const char*), int* error_code); - void dkls_comm_free(struct DKLSMsgComm* comm); + const char* (*read_msg_callback)(const char*,unsigned long long int,unsigned long long int,const char*, const void*), + bool (*send_msg_callback)(const char*,unsigned long long int,unsigned long long int,const char*,const char*, const void*), const void* parent_instance_ref, int* error_code); + const void* dkls_comm_free(struct DKLSMsgComm* comm); //Random Generator struct ChaChaRng* random_generator(const char* state, int* error_code); diff --git a/Sources/libdkls/libdkls.xcframework/Info.plist b/Sources/libdkls/libdkls.xcframework/Info.plist index a0ee820..76ef450 100644 --- a/Sources/libdkls/libdkls.xcframework/Info.plist +++ b/Sources/libdkls/libdkls.xcframework/Info.plist @@ -8,7 +8,7 @@ BinaryPath libdkls.a LibraryIdentifier - macos-arm64_x86_64 + ios-arm64_x86_64-simulator LibraryPath libdkls.a SupportedArchitectures @@ -17,13 +17,15 @@ x86_64 SupportedPlatform - macos + ios + SupportedPlatformVariant + simulator BinaryPath libdkls.a LibraryIdentifier - ios-arm64_x86_64-simulator + macos-arm64_x86_64 LibraryPath libdkls.a SupportedArchitectures @@ -32,9 +34,7 @@ x86_64 SupportedPlatform - ios - SupportedPlatformVariant - simulator + macos CFBundlePackageType diff --git a/Sources/libdkls/libdkls.xcframework/ios-arm64_x86_64-simulator/libdkls.a b/Sources/libdkls/libdkls.xcframework/ios-arm64_x86_64-simulator/libdkls.a index cf07d16..f2dc9c1 100644 Binary files a/Sources/libdkls/libdkls.xcframework/ios-arm64_x86_64-simulator/libdkls.a and b/Sources/libdkls/libdkls.xcframework/ios-arm64_x86_64-simulator/libdkls.a differ diff --git a/Sources/libdkls/libdkls.xcframework/macos-arm64_x86_64/libdkls.a b/Sources/libdkls/libdkls.xcframework/macos-arm64_x86_64/libdkls.a index 33d2fef..1d8e60a 100644 Binary files a/Sources/libdkls/libdkls.xcframework/macos-arm64_x86_64/libdkls.a and b/Sources/libdkls/libdkls.xcframework/macos-arm64_x86_64/libdkls.a differ diff --git a/Sources/tss-client-swift/TSSClient.swift b/Sources/tss-client-swift/TSSClient.swift index 4ae11f2..855cadf 100644 --- a/Sources/tss-client-swift/TSSClient.swift +++ b/Sources/tss-client-swift/TSSClient.swift @@ -66,7 +66,7 @@ public class TSSClient { } } - let readMsg: (@convention(c) (UnsafePointer?, UInt64, UInt64, UnsafePointer?) -> UnsafePointer?)? = { sessionCString, index, party, msgTypeCString in + let readMsg: (@convention(c) (UnsafePointer?, UInt64, UInt64, UnsafePointer?, UnsafeRawPointer?) -> UnsafePointer?)? = { sessionCString, index, party, msgTypeCString, obj_ref in // index = recipient // party = sender if let sessionCString = sessionCString, let msgTypeCString = msgTypeCString { @@ -115,7 +115,7 @@ public class TSSClient { return ("" as NSString).utf8String } - let sendMsg: (@convention(c) (UnsafePointer?, UInt64, UInt64, UnsafePointer?, UnsafePointer?) -> Bool)? = { sessionCString, index, recipient, msgTypeCString, msgDataCString in + let sendMsg: (@convention(c) (UnsafePointer?, UInt64, UInt64, UnsafePointer?, UnsafePointer?, UnsafeRawPointer?) -> Bool)? = { sessionCString, index, recipient, msgTypeCString, msgDataCString, obj_ref in // index = sender if let sessionCString = sessionCString, let msgTypeCString = msgTypeCString, let msgDataCString = msgDataCString { let session = String(cString: sessionCString) diff --git a/Sources/tss-client-swift/dkls/DKLSComm.swift b/Sources/tss-client-swift/dkls/DKLSComm.swift index 9b25133..9b54b69 100644 --- a/Sources/tss-client-swift/dkls/DKLSComm.swift +++ b/Sources/tss-client-swift/dkls/DKLSComm.swift @@ -5,21 +5,25 @@ import Foundation internal final class DKLSComm { private(set) var pointer: OpaquePointer? - + // This is a placeholder to satisfy the interface, + // tracking this object is not necessary in swift as it maintains context + // on entry for the callback + private var obj_ref: UnsafeRawPointer? + // Note: - // readMsgCallback(session, index, remote, msg_type) -> msg_data - // sendMsgCallback(session, index, recipient, msg_type, msg_data) -> Bool + // readMsgCallback(session, index, remote, msg_type, obj_ref) -> msg_data + // sendMsgCallback(session, index, recipient, msg_type, msg_data, obj_ref) -> Bool public init(session: String, index: Int32, parties: Int32, - readMsgCallback: (@convention(c) (UnsafePointer?, UInt64, UInt64, UnsafePointer?) -> UnsafePointer?)?, - sendMsgCallback: (@convention(c) (UnsafePointer?, UInt64, UInt64, UnsafePointer?, UnsafePointer?) -> Bool)? + readMsgCallback: (@convention(c) (UnsafePointer?, UInt64, UInt64, UnsafePointer?, UnsafeRawPointer?) -> UnsafePointer?)?, + sendMsgCallback: (@convention(c) (UnsafePointer?, UInt64, UInt64, UnsafePointer?, UnsafePointer?, UnsafeRawPointer?) -> Bool)? ) throws { var errorCode: Int32 = -1 let sessionPointer = UnsafePointer((session as NSString).utf8String) let result = withUnsafeMutablePointer(to: &errorCode, { error in - dkls_comm(index, parties, sessionPointer, readMsgCallback, sendMsgCallback, error) + dkls_comm(index, parties, sessionPointer, readMsgCallback, sendMsgCallback, obj_ref, error) }) guard errorCode == 0 else { throw DKLSError("Error creating comm")