diff --git a/frost-uniffi-sdk/src/participant.rs b/frost-uniffi-sdk/src/participant.rs index ae033d3..c9cc44d 100644 --- a/frost-uniffi-sdk/src/participant.rs +++ b/frost-uniffi-sdk/src/participant.rs @@ -17,7 +17,7 @@ use uniffi; use crate::{FrostKeyPackage, ParticipantIdentifier}; #[cfg(not(feature = "redpallas"))] -use crate::{coordinator::FrostSigningPackage, FrostKeyPackage}; +use crate::coordinator::FrostSigningPackage; #[derive(uniffi::Record, Clone)] pub struct FrostSigningNonces { diff --git a/frost_go_ffi/frost_go_ffi.h b/frost_go_ffi/frost_go_ffi.h index 55cbed8..96ef670 100644 --- a/frost_go_ffi/frost_go_ffi.h +++ b/frost_go_ffi/frost_go_ffi.h @@ -88,21 +88,10 @@ void uniffi_frost_uniffi_sdk_fn_free_dkground2secretpackage( RustCallStatus* out_status ); -void uniffi_frost_uniffi_sdk_fn_free_frostrandomizedparams( - void* ptr, - RustCallStatus* out_status -); - RustBuffer uniffi_frost_uniffi_sdk_fn_func_aggregate( RustBuffer signing_package, RustBuffer signature_shares, RustBuffer pubkey_package, - RustBuffer randomizer, - RustCallStatus* out_status -); - -RustBuffer uniffi_frost_uniffi_sdk_fn_func_from_hex_string( - RustBuffer hex_string, RustCallStatus* out_status ); @@ -152,22 +141,10 @@ RustBuffer uniffi_frost_uniffi_sdk_fn_func_part_3( RustCallStatus* out_status ); -void* uniffi_frost_uniffi_sdk_fn_func_randomized_params_from_public_key_and_signing_package( - RustBuffer public_key, - RustBuffer signing_package, - RustCallStatus* out_status -); - -RustBuffer uniffi_frost_uniffi_sdk_fn_func_randomizer_from_params( - void* randomized_params, - RustCallStatus* out_status -); - RustBuffer uniffi_frost_uniffi_sdk_fn_func_sign( RustBuffer signing_package, RustBuffer nonces, RustBuffer key_package, - RustBuffer randomizer, RustCallStatus* out_status ); @@ -192,14 +169,6 @@ RustBuffer uniffi_frost_uniffi_sdk_fn_func_verify_and_get_key_package_from( RustCallStatus* out_status ); -void uniffi_frost_uniffi_sdk_fn_func_verify_randomized_signature( - RustBuffer randomizer, - RustBuffer message, - RustBuffer signature, - RustBuffer pubkey, - RustCallStatus* out_status -); - void uniffi_frost_uniffi_sdk_fn_func_verify_signature( RustBuffer message, RustBuffer signature, @@ -510,10 +479,6 @@ uint16_t uniffi_frost_uniffi_sdk_checksum_func_aggregate( RustCallStatus* out_status ); -uint16_t uniffi_frost_uniffi_sdk_checksum_func_from_hex_string( - RustCallStatus* out_status -); - uint16_t uniffi_frost_uniffi_sdk_checksum_func_generate_nonces_and_commitments( RustCallStatus* out_status ); @@ -546,14 +511,6 @@ uint16_t uniffi_frost_uniffi_sdk_checksum_func_part_3( RustCallStatus* out_status ); -uint16_t uniffi_frost_uniffi_sdk_checksum_func_randomized_params_from_public_key_and_signing_package( - RustCallStatus* out_status -); - -uint16_t uniffi_frost_uniffi_sdk_checksum_func_randomizer_from_params( - RustCallStatus* out_status -); - uint16_t uniffi_frost_uniffi_sdk_checksum_func_sign( RustCallStatus* out_status ); @@ -574,10 +531,6 @@ uint16_t uniffi_frost_uniffi_sdk_checksum_func_verify_and_get_key_package_from( RustCallStatus* out_status ); -uint16_t uniffi_frost_uniffi_sdk_checksum_func_verify_randomized_signature( - RustCallStatus* out_status -); - uint16_t uniffi_frost_uniffi_sdk_checksum_func_verify_signature( RustCallStatus* out_status ); diff --git a/frost_go_ffi/frost_go_ffi_test.go b/frost_go_ffi/frost_go_ffi_test.go index d4cd26b..b8232d6 100644 --- a/frost_go_ffi/frost_go_ffi_test.go +++ b/frost_go_ffi/frost_go_ffi_test.go @@ -52,8 +52,10 @@ func TestTrustedDealerFromConfigWithSecret(t *testing.T) { var commitments []FrostSigningCommitments for participant, secretShare := range shares { + keyPackage, err := VerifyAndGetKeyPackageFrom(secretShare) // generates a nonce and a commitment to be used (round 1) - firstRoundCommitment, err := GenerateNoncesAndCommitments(secretShare) + firstRoundCommitment, err := GenerateNoncesAndCommitments(keyPackage) + if err != nil { t.Fatalf("Failed to generate nonces and commitments: %v", err) } diff --git a/frost_go_ffi/frost_uniffi_sdk.go b/frost_go_ffi/frost_uniffi_sdk.go index 09e21fe..935b785 100644 --- a/frost_go_ffi/frost_uniffi_sdk.go +++ b/frost_go_ffi/frost_uniffi_sdk.go @@ -348,20 +348,11 @@ func uniffiCheckChecksums() { checksum := rustCall(func(uniffiStatus *C.RustCallStatus) C.uint16_t { return C.uniffi_frost_uniffi_sdk_checksum_func_aggregate(uniffiStatus) }) - if checksum != 3424 { + if checksum != 46119 { // If this happens try cleaning and rebuilding your project panic("frost_uniffi_sdk: uniffi_frost_uniffi_sdk_checksum_func_aggregate: UniFFI API checksum mismatch") } } - { - checksum := rustCall(func(uniffiStatus *C.RustCallStatus) C.uint16_t { - return C.uniffi_frost_uniffi_sdk_checksum_func_from_hex_string(uniffiStatus) - }) - if checksum != 29801 { - // If this happens try cleaning and rebuilding your project - panic("frost_uniffi_sdk: uniffi_frost_uniffi_sdk_checksum_func_from_hex_string: UniFFI API checksum mismatch") - } - } { checksum := rustCall(func(uniffiStatus *C.RustCallStatus) C.uint16_t { return C.uniffi_frost_uniffi_sdk_checksum_func_generate_nonces_and_commitments(uniffiStatus) @@ -434,29 +425,11 @@ func uniffiCheckChecksums() { panic("frost_uniffi_sdk: uniffi_frost_uniffi_sdk_checksum_func_part_3: UniFFI API checksum mismatch") } } - { - checksum := rustCall(func(uniffiStatus *C.RustCallStatus) C.uint16_t { - return C.uniffi_frost_uniffi_sdk_checksum_func_randomized_params_from_public_key_and_signing_package(uniffiStatus) - }) - if checksum != 58556 { - // If this happens try cleaning and rebuilding your project - panic("frost_uniffi_sdk: uniffi_frost_uniffi_sdk_checksum_func_randomized_params_from_public_key_and_signing_package: UniFFI API checksum mismatch") - } - } - { - checksum := rustCall(func(uniffiStatus *C.RustCallStatus) C.uint16_t { - return C.uniffi_frost_uniffi_sdk_checksum_func_randomizer_from_params(uniffiStatus) - }) - if checksum != 50217 { - // If this happens try cleaning and rebuilding your project - panic("frost_uniffi_sdk: uniffi_frost_uniffi_sdk_checksum_func_randomizer_from_params: UniFFI API checksum mismatch") - } - } { checksum := rustCall(func(uniffiStatus *C.RustCallStatus) C.uint16_t { return C.uniffi_frost_uniffi_sdk_checksum_func_sign(uniffiStatus) }) - if checksum != 723 { + if checksum != 48101 { // If this happens try cleaning and rebuilding your project panic("frost_uniffi_sdk: uniffi_frost_uniffi_sdk_checksum_func_sign: UniFFI API checksum mismatch") } @@ -497,15 +470,6 @@ func uniffiCheckChecksums() { panic("frost_uniffi_sdk: uniffi_frost_uniffi_sdk_checksum_func_verify_and_get_key_package_from: UniFFI API checksum mismatch") } } - { - checksum := rustCall(func(uniffiStatus *C.RustCallStatus) C.uint16_t { - return C.uniffi_frost_uniffi_sdk_checksum_func_verify_randomized_signature(uniffiStatus) - }) - if checksum != 24114 { - // If this happens try cleaning and rebuilding your project - panic("frost_uniffi_sdk: uniffi_frost_uniffi_sdk_checksum_func_verify_randomized_signature: UniFFI API checksum mismatch") - } - } { checksum := rustCall(func(uniffiStatus *C.RustCallStatus) C.uint16_t { return C.uniffi_frost_uniffi_sdk_checksum_func_verify_signature(uniffiStatus) @@ -882,54 +846,6 @@ func (_ FfiDestroyerDkgRound2SecretPackage) Destroy(value *DkgRound2SecretPackag value.Destroy() } -type FrostRandomizedParams struct { - ffiObject FfiObject -} - -func (object *FrostRandomizedParams) Destroy() { - runtime.SetFinalizer(object, nil) - object.ffiObject.destroy() -} - -type FfiConverterFrostRandomizedParams struct{} - -var FfiConverterFrostRandomizedParamsINSTANCE = FfiConverterFrostRandomizedParams{} - -func (c FfiConverterFrostRandomizedParams) Lift(pointer unsafe.Pointer) *FrostRandomizedParams { - result := &FrostRandomizedParams{ - newFfiObject( - pointer, - func(pointer unsafe.Pointer, status *C.RustCallStatus) { - C.uniffi_frost_uniffi_sdk_fn_free_frostrandomizedparams(pointer, status) - }), - } - runtime.SetFinalizer(result, (*FrostRandomizedParams).Destroy) - return result -} - -func (c FfiConverterFrostRandomizedParams) Read(reader io.Reader) *FrostRandomizedParams { - return c.Lift(unsafe.Pointer(uintptr(readUint64(reader)))) -} - -func (c FfiConverterFrostRandomizedParams) Lower(value *FrostRandomizedParams) unsafe.Pointer { - // TODO: this is bad - all synchronization from ObjectRuntime.go is discarded here, - // because the pointer will be decremented immediately after this function returns, - // and someone will be left holding onto a non-locked pointer. - pointer := value.ffiObject.incrementPointer("*FrostRandomizedParams") - defer value.ffiObject.decrementPointer() - return pointer -} - -func (c FfiConverterFrostRandomizedParams) Write(writer io.Writer, value *FrostRandomizedParams) { - writeUint64(writer, uint64(uintptr(c.Lower(value)))) -} - -type FfiDestroyerFrostRandomizedParams struct{} - -func (_ FfiDestroyerFrostRandomizedParams) Destroy(value *FrostRandomizedParams) { - value.Destroy() -} - type Configuration struct { MinSigners uint16 MaxSigners uint16 @@ -1214,42 +1130,6 @@ func (_ FfiDestroyerTypeFrostPublicKeyPackage) Destroy(value FrostPublicKeyPacka value.Destroy() } -type FrostRandomizer struct { - Data []byte -} - -func (r *FrostRandomizer) Destroy() { - FfiDestroyerBytes{}.Destroy(r.Data) -} - -type FfiConverterTypeFrostRandomizer struct{} - -var FfiConverterTypeFrostRandomizerINSTANCE = FfiConverterTypeFrostRandomizer{} - -func (c FfiConverterTypeFrostRandomizer) Lift(rb RustBufferI) FrostRandomizer { - return LiftFromRustBuffer[FrostRandomizer](c, rb) -} - -func (c FfiConverterTypeFrostRandomizer) Read(reader io.Reader) FrostRandomizer { - return FrostRandomizer{ - FfiConverterBytesINSTANCE.Read(reader), - } -} - -func (c FfiConverterTypeFrostRandomizer) Lower(value FrostRandomizer) RustBuffer { - return LowerIntoRustBuffer[FrostRandomizer](c, value) -} - -func (c FfiConverterTypeFrostRandomizer) Write(writer io.Writer, value FrostRandomizer) { - FfiConverterBytesINSTANCE.Write(writer, value.Data) -} - -type FfiDestroyerTypeFrostRandomizer struct{} - -func (_ FfiDestroyerTypeFrostRandomizer) Destroy(value FrostRandomizer) { - value.Destroy() -} - type FrostSecretKeyShare struct { Identifier ParticipantIdentifier Data []byte @@ -1778,7 +1658,6 @@ var ErrCoordinationErrorSigningPackageSerializationError = fmt.Errorf("Coordinat var ErrCoordinationErrorSignatureShareDeserializationError = fmt.Errorf("CoordinationErrorSignatureShareDeserializationError") var ErrCoordinationErrorPublicKeyPackageDeserializationError = fmt.Errorf("CoordinationErrorPublicKeyPackageDeserializationError") var ErrCoordinationErrorSignatureShareAggregationFailed = fmt.Errorf("CoordinationErrorSignatureShareAggregationFailed") -var ErrCoordinationErrorInvalidRandomizer = fmt.Errorf("CoordinationErrorInvalidRandomizer") // Variant structs type CoordinationErrorFailedToCreateSigningPackage struct { @@ -1910,23 +1789,6 @@ func (self CoordinationErrorSignatureShareAggregationFailed) Is(target error) bo return target == ErrCoordinationErrorSignatureShareAggregationFailed } -type CoordinationErrorInvalidRandomizer struct { -} - -func NewCoordinationErrorInvalidRandomizer() *CoordinationError { - return &CoordinationError{ - err: &CoordinationErrorInvalidRandomizer{}, - } -} - -func (err CoordinationErrorInvalidRandomizer) Error() string { - return fmt.Sprint("InvalidRandomizer") -} - -func (self CoordinationErrorInvalidRandomizer) Is(target error) bool { - return target == ErrCoordinationErrorInvalidRandomizer -} - type FfiConverterTypeCoordinationError struct{} var FfiConverterTypeCoordinationErrorINSTANCE = FfiConverterTypeCoordinationError{} @@ -1959,8 +1821,6 @@ func (c FfiConverterTypeCoordinationError) Read(reader io.Reader) error { return &CoordinationError{&CoordinationErrorSignatureShareAggregationFailed{ Message: FfiConverterStringINSTANCE.Read(reader), }} - case 8: - return &CoordinationError{&CoordinationErrorInvalidRandomizer{}} default: panic(fmt.Sprintf("Unknown error code %d in FfiConverterTypeCoordinationError.Read()", errorID)) } @@ -1983,8 +1843,6 @@ func (c FfiConverterTypeCoordinationError) Write(writer io.Writer, value *Coordi case *CoordinationErrorSignatureShareAggregationFailed: writeInt32(writer, 7) FfiConverterStringINSTANCE.Write(writer, variantValue.Message) - case *CoordinationErrorInvalidRandomizer: - writeInt32(writer, 8) default: _ = variantValue panic(fmt.Sprintf("invalid error value `%v` in FfiConverterTypeCoordinationError.Write", value)) @@ -3174,7 +3032,6 @@ var ErrRound2ErrorNonceSerializationError = fmt.Errorf("Round2ErrorNonceSerializ var ErrRound2ErrorCommitmentSerializationError = fmt.Errorf("Round2ErrorCommitmentSerializationError") var ErrRound2ErrorSigningPackageDeserializationError = fmt.Errorf("Round2ErrorSigningPackageDeserializationError") var ErrRound2ErrorSigningFailed = fmt.Errorf("Round2ErrorSigningFailed") -var ErrRound2ErrorInvalidRandomizer = fmt.Errorf("Round2ErrorInvalidRandomizer") // Variant structs type Round2ErrorInvalidKeyPackage struct { @@ -3272,23 +3129,6 @@ func (self Round2ErrorSigningFailed) Is(target error) bool { return target == ErrRound2ErrorSigningFailed } -type Round2ErrorInvalidRandomizer struct { -} - -func NewRound2ErrorInvalidRandomizer() *Round2Error { - return &Round2Error{ - err: &Round2ErrorInvalidRandomizer{}, - } -} - -func (err Round2ErrorInvalidRandomizer) Error() string { - return fmt.Sprint("InvalidRandomizer") -} - -func (self Round2ErrorInvalidRandomizer) Is(target error) bool { - return target == ErrRound2ErrorInvalidRandomizer -} - type FfiConverterTypeRound2Error struct{} var FfiConverterTypeRound2ErrorINSTANCE = FfiConverterTypeRound2Error{} @@ -3317,8 +3157,6 @@ func (c FfiConverterTypeRound2Error) Read(reader io.Reader) error { return &Round2Error{&Round2ErrorSigningFailed{ Message: FfiConverterStringINSTANCE.Read(reader), }} - case 6: - return &Round2Error{&Round2ErrorInvalidRandomizer{}} default: panic(fmt.Sprintf("Unknown error code %d in FfiConverterTypeRound2Error.Read()", errorID)) } @@ -3337,8 +3175,6 @@ func (c FfiConverterTypeRound2Error) Write(writer io.Writer, value *Round2Error) case *Round2ErrorSigningFailed: writeInt32(writer, 5) FfiConverterStringINSTANCE.Write(writer, variantValue.Message) - case *Round2ErrorInvalidRandomizer: - writeInt32(writer, 6) default: _ = variantValue panic(fmt.Sprintf("invalid error value `%v` in FfiConverterTypeRound2Error.Write", value)) @@ -3687,9 +3523,9 @@ func (_ FfiDestroyerMapTypeParticipantIdentifierTypeFrostSecretKeyShare) Destroy } } -func Aggregate(signingPackage FrostSigningPackage, signatureShares []FrostSignatureShare, pubkeyPackage FrostPublicKeyPackage, randomizer FrostRandomizer) (FrostSignature, error) { +func Aggregate(signingPackage FrostSigningPackage, signatureShares []FrostSignatureShare, pubkeyPackage FrostPublicKeyPackage) (FrostSignature, error) { _uniffiRV, _uniffiErr := rustCallWithError(FfiConverterTypeCoordinationError{}, func(_uniffiStatus *C.RustCallStatus) RustBufferI { - return C.uniffi_frost_uniffi_sdk_fn_func_aggregate(FfiConverterTypeFrostSigningPackageINSTANCE.Lower(signingPackage), FfiConverterSequenceTypeFrostSignatureShareINSTANCE.Lower(signatureShares), FfiConverterTypeFrostPublicKeyPackageINSTANCE.Lower(pubkeyPackage), FfiConverterTypeFrostRandomizerINSTANCE.Lower(randomizer), _uniffiStatus) + return C.uniffi_frost_uniffi_sdk_fn_func_aggregate(FfiConverterTypeFrostSigningPackageINSTANCE.Lower(signingPackage), FfiConverterSequenceTypeFrostSignatureShareINSTANCE.Lower(signatureShares), FfiConverterTypeFrostPublicKeyPackageINSTANCE.Lower(pubkeyPackage), _uniffiStatus) }) if _uniffiErr != nil { var _uniffiDefaultValue FrostSignature @@ -3699,18 +3535,6 @@ func Aggregate(signingPackage FrostSigningPackage, signatureShares []FrostSignat } } -func FromHexString(hexString string) (FrostRandomizer, error) { - _uniffiRV, _uniffiErr := rustCallWithError(FfiConverterTypeFrostError{}, func(_uniffiStatus *C.RustCallStatus) RustBufferI { - return C.uniffi_frost_uniffi_sdk_fn_func_from_hex_string(FfiConverterStringINSTANCE.Lower(hexString), _uniffiStatus) - }) - if _uniffiErr != nil { - var _uniffiDefaultValue FrostRandomizer - return _uniffiDefaultValue, _uniffiErr - } else { - return FfiConverterTypeFrostRandomizerINSTANCE.Lift(_uniffiRV), _uniffiErr - } -} - func GenerateNoncesAndCommitments(keyPackage FrostKeyPackage) (FirstRoundCommitment, error) { _uniffiRV, _uniffiErr := rustCallWithError(FfiConverterTypeRound1Error{}, func(_uniffiStatus *C.RustCallStatus) RustBufferI { return C.uniffi_frost_uniffi_sdk_fn_func_generate_nonces_and_commitments(FfiConverterTypeFrostKeyPackageINSTANCE.Lower(keyPackage), _uniffiStatus) @@ -3801,33 +3625,9 @@ func Part3(secretPackage *DkgRound2SecretPackage, round1Packages map[Participant } } -func RandomizedParamsFromPublicKeyAndSigningPackage(publicKey FrostPublicKeyPackage, signingPackage FrostSigningPackage) (*FrostRandomizedParams, error) { - _uniffiRV, _uniffiErr := rustCallWithError(FfiConverterTypeFrostError{}, func(_uniffiStatus *C.RustCallStatus) unsafe.Pointer { - return C.uniffi_frost_uniffi_sdk_fn_func_randomized_params_from_public_key_and_signing_package(FfiConverterTypeFrostPublicKeyPackageINSTANCE.Lower(publicKey), FfiConverterTypeFrostSigningPackageINSTANCE.Lower(signingPackage), _uniffiStatus) - }) - if _uniffiErr != nil { - var _uniffiDefaultValue *FrostRandomizedParams - return _uniffiDefaultValue, _uniffiErr - } else { - return FfiConverterFrostRandomizedParamsINSTANCE.Lift(_uniffiRV), _uniffiErr - } -} - -func RandomizerFromParams(randomizedParams *FrostRandomizedParams) (FrostRandomizer, error) { - _uniffiRV, _uniffiErr := rustCallWithError(FfiConverterTypeFrostError{}, func(_uniffiStatus *C.RustCallStatus) RustBufferI { - return C.uniffi_frost_uniffi_sdk_fn_func_randomizer_from_params(FfiConverterFrostRandomizedParamsINSTANCE.Lower(randomizedParams), _uniffiStatus) - }) - if _uniffiErr != nil { - var _uniffiDefaultValue FrostRandomizer - return _uniffiDefaultValue, _uniffiErr - } else { - return FfiConverterTypeFrostRandomizerINSTANCE.Lift(_uniffiRV), _uniffiErr - } -} - -func Sign(signingPackage FrostSigningPackage, nonces FrostSigningNonces, keyPackage FrostKeyPackage, randomizer FrostRandomizer) (FrostSignatureShare, error) { +func Sign(signingPackage FrostSigningPackage, nonces FrostSigningNonces, keyPackage FrostKeyPackage) (FrostSignatureShare, error) { _uniffiRV, _uniffiErr := rustCallWithError(FfiConverterTypeRound2Error{}, func(_uniffiStatus *C.RustCallStatus) RustBufferI { - return C.uniffi_frost_uniffi_sdk_fn_func_sign(FfiConverterTypeFrostSigningPackageINSTANCE.Lower(signingPackage), FfiConverterTypeFrostSigningNoncesINSTANCE.Lower(nonces), FfiConverterTypeFrostKeyPackageINSTANCE.Lower(keyPackage), FfiConverterTypeFrostRandomizerINSTANCE.Lower(randomizer), _uniffiStatus) + return C.uniffi_frost_uniffi_sdk_fn_func_sign(FfiConverterTypeFrostSigningPackageINSTANCE.Lower(signingPackage), FfiConverterTypeFrostSigningNoncesINSTANCE.Lower(nonces), FfiConverterTypeFrostKeyPackageINSTANCE.Lower(keyPackage), _uniffiStatus) }) if _uniffiErr != nil { var _uniffiDefaultValue FrostSignatureShare @@ -3881,14 +3681,6 @@ func VerifyAndGetKeyPackageFrom(secretShare FrostSecretKeyShare) (FrostKeyPackag } } -func VerifyRandomizedSignature(randomizer FrostRandomizer, message Message, signature FrostSignature, pubkey FrostPublicKeyPackage) error { - _, _uniffiErr := rustCallWithError(FfiConverterTypeFrostSignatureVerificationError{}, func(_uniffiStatus *C.RustCallStatus) bool { - C.uniffi_frost_uniffi_sdk_fn_func_verify_randomized_signature(FfiConverterTypeFrostRandomizerINSTANCE.Lower(randomizer), FfiConverterTypeMessageINSTANCE.Lower(message), FfiConverterTypeFrostSignatureINSTANCE.Lower(signature), FfiConverterTypeFrostPublicKeyPackageINSTANCE.Lower(pubkey), _uniffiStatus) - return false - }) - return _uniffiErr -} - func VerifySignature(message Message, signature FrostSignature, pubkey FrostPublicKeyPackage) error { _, _uniffiErr := rustCallWithError(FfiConverterTypeFrostSignatureVerificationError{}, func(_uniffiStatus *C.RustCallStatus) bool { C.uniffi_frost_uniffi_sdk_fn_func_verify_signature(FfiConverterTypeMessageINSTANCE.Lower(message), FfiConverterTypeFrostSignatureINSTANCE.Lower(signature), FfiConverterTypeFrostPublicKeyPackageINSTANCE.Lower(pubkey), _uniffiStatus)