From f870712abbb0c16a2c4f9c5836f8b5a272e7e3ff Mon Sep 17 00:00:00 2001 From: Yani Yu Date: Wed, 7 Sep 2022 12:58:35 +0800 Subject: [PATCH] fix: generateKeyPair result type error && throw error when signing failed --- ios/Classes/SECore.swift | 12 ++++++++---- ios/Classes/SwiftSecureEnclavePlugin.swift | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/ios/Classes/SECore.swift b/ios/Classes/SECore.swift index fe7e8c8..db71187 100644 --- a/ios/Classes/SECore.swift +++ b/ios/Classes/SECore.swift @@ -308,15 +308,19 @@ class SECore : SECoreProtocol { do{ secKey = try getSecKey(tag: tag, password: password)! - } catch{ + } catch { throw error } - + + var error: Unmanaged? guard let signData = SecKeyCreateSignature( secKey, SecKeyAlgorithm.ecdsaSignatureMessageX962SHA256, - message as CFData, nil) else { - return nil + message as CFData, &error) else { + if let e = error { + throw e.takeUnretainedValue() as Error + } + throw CustomError.runtimeError("Can't sign data") } //2 let signedData = signData as Data diff --git a/ios/Classes/SwiftSecureEnclavePlugin.swift b/ios/Classes/SwiftSecureEnclavePlugin.swift index 3db4546..0e611a0 100644 --- a/ios/Classes/SwiftSecureEnclavePlugin.swift +++ b/ios/Classes/SwiftSecureEnclavePlugin.swift @@ -20,7 +20,7 @@ public class SwiftSecureEnclavePlugin: NSObject, FlutterPlugin { let accessControlParam = AccessControlFactory(value: param!["accessControl"] as! Dictionary).build() _ = try seCore.generateKeyPair(accessControlParam: accessControlParam) - result(resultSuccess(data:"")) + result(resultSuccess(data:true)) } catch { result(resultError(error:error)) }