Posts

Post not yet marked as solved
1 Replies
344 Views
Thread 3 name: com.google.firebase.crashlytics.MachExceptionServer Thread 3: 0 libsystem_kernel.dylib 0x1f977e4a0 mach_msg_trap + 8 1 libsystem_kernel.dylib 0x1f977eae4 mach_msg + 76 2 SPMLibraries 0x10f94cc74 FIRCLSMachExceptionServer + 104 3 libsystem_pthread.dylib 0x2334e99ac _pthread_start + 148 4 libsystem_pthread.dylib 0x2334e8e68 thread_start + 8 Thread 4 name: com.apple.NSURLConnectionLoader Thread 4: 0 libsystem_kernel.dylib 0x1f977e4a0 mach_msg_trap + 8 1 libsystem_kernel.dylib 0x1f977eae4 mach_msg + 76 2 CoreFoundation 0x1c1af6d30 __CFRunLoopServiceMachPort + 372 3 CoreFoundation 0x1c1afb1bc __CFRunLoopRun + 1180 4 CoreFoundation 0x1c1b0ebc8 CFRunLoopRunSpecific + 600 5 CFNetwork 0x1c258b1dc 0x1c2313000 + 2589148 6 Foundation 0x1c335141c NSThread__start + 808 7 libsystem_pthread.dylib 0x2334e99ac _pthread_start + 148 8 libsystem_pthread.dylib 0x2334e8e68 thread_start + 8 Thread 5 name: Realm notification listener Thread 5: 0 libsystem_kernel.dylib 0x1f977fe18 kevent + 8 1 Realm 0x10dee7988 realm::_impl::ExternalCommitHelper::listen() + 156 2 Realm 0x10dee7ad8 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, realm::_impl::ExternalCommitHelper::ExternalCommitHelper(realm::_impl::RealmCoordinator&)::$_0> >(void*) + 52 3 libsystem_pthread.dylib 0x2334e99ac _pthread_start + 148 4 libsystem_pthread.dylib 0x2334e8e68 thread_start + 8 Thread 6 name: Realm notification listener Thread 6: 0 libsystem_kernel.dylib 0x1f977fe18 kevent + 8 1 Realm 0x10dee7988 realm::_impl::ExternalCommitHelper::listen() + 156 2 Realm 0x10dee7ad8 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, realm::_impl::ExternalCommitHelper::ExternalCommitHelper(realm::_impl::RealmCoordinator&)::$_0> >(void*) + 52 3 libsystem_pthread.dylib 0x2334e99ac _pthread_start + 148 4 libsystem_pthread.dylib 0x2334e8e68 thread_start + 8 Thread 7 name: WebThread Thread 7: 0 libsystem_kernel.dylib 0x1f977e4a0 mach_msg_trap + 8 1 libsystem_kernel.dylib 0x1f977eae4 mach_msg + 76 2 CoreFoundation 0x1c1af6d30 __CFRunLoopServiceMachPort + 372 3 CoreFoundation 0x1c1afb1bc __CFRunLoopRun + 1180 4 CoreFoundation 0x1c1b0ebc8 CFRunLoopRunSpecific + 600 5 WebCore 0x1d1effd3c RunWebThread(void*) + 760 6 libsystem_pthread.dylib 0x2334e99ac _pthread_start + 148 7 libsystem_pthread.dylib 0x2334e8e68 thread_start + 8 Thread 8 name: AVAudioSession Notify Thread Thread 8: 0 libsystem_kernel.dylib 0x1f977e4a0 mach_msg_trap + 8 1 libsystem_kernel.dylib 0x1f977eae4 mach_msg + 76 2 CoreFoundation 0x1c1af6d30 __CFRunLoopServiceMachPort + 372 3 CoreFoundation 0x1c1afb1bc __CFRunLoopRun + 1180 4 CoreFoundation 0x1c1b0ebc8 CFRunLoopRunSpecific + 600 5 AudioSession 0x1cb123f04 CADeprecated::GenericRunLoopThread::Entry(void*) + 164 6 AudioSession 0x1cb12d8f0 CADeprecated::CAPThread::Entry(CADeprecated::CAPThread*) + 92 7 libsystem_pthread.dylib 0x2334e99ac _pthread_start + 148 8 libsystem_pthread.dylib 0x2334e8e68 thread_start + 8
Posted
by HieuLH9X.
Last updated
.
Post not yet marked as solved
8 Replies
598 Views
I'm create message with derRepresentation and send to serve to verify message by P256.Signing.PrivateKey However It's only support IOS above 14. And I want to support with below 14. How can I do ? func IOSAbove14() { let keyData = privateKeyHexaString.hexadecimal! print("keyData (keyData)") let privateKey = try! P256.Signing.PrivateKey(derRepresentation: keyData) print("privateKey \(privateKey.derRepresentation)") let signData = getStringHash("Hello").data(using: .utf8) print("signData \(signData)") let sig = try! privateKey.signature(for: "Hello".data(using: .utf8)!) print("sig \(sig)") print("sig \(sig.derRepresentation)") } I'm try but when verify false func IOSBelow14() -> String?{ // let privateKeyData = privateKeyHexaString.hexaData let privateKeyData = self.privateKeyHexaString.hexadecimal! print("privateKeyData \(privateKeyData)") let secKeyByPrivateKey = SecKeyCreateWithData(privateKeyData as! CFData, [ kSecAttrKeyTypeEC: kSecAttrKeyTypeECSECPrimeRandom, kSecAttrTokenID: kSecAttrTokenIDSecureEnclave, kSecAttrKeyClass: kSecAttrKeyClassPrivate, // kSecPrivateKeyAttrs as String: [ // kSecAttrIsPermanent as String: false // ], // kSecAttrKeySizeInBits: 256, // SecKeyKeyExchangeParameter.requestedSize.rawValue as String: 32 ] as CFDictionary, nil) guard let secKeyByPrivateKey: SecKey = secKeyByPrivateKey else { return nil } print("secKeyByPrivateKey (secKeyByPrivateKey)") let message = "Hello".data(using: .utf8)! var error: Unmanaged<CFError>? let verify = SecKeyIsAlgorithmSupported(secKeyByPrivateKey, .sign, SecKeyAlgorithm.ecdsaSignatureMessageX962SHA256) print("verify \(verify)") guard let signedData = SecKeyCreateSignature(secKeyByPrivateKey, SecKeyAlgorithm.ecdsaSignatureMessageX962SHA256, message as CFData, &error) as Data? else { return nil } return signedData.base64EncodedString() } Backend use X509 and PKCS8
Posted
by HieuLH9X.
Last updated
.
Post not yet marked as solved
1 Replies
463 Views
I using code below to create signature from privatekey generated to verify text "Hello" with Java ( using Keyfactory ) and ECDSA algothrim but I don't verify func getPrivateKey() -> SecKey { let privateKeyData = self.privateKeyHexaString.hexadecimal! print("privateKeyData \(privateKeyData)") let secKeyByPrivateKey = SecKeyCreateWithData(privateKeyData as! CFData, [ kSecAttrKeyTypeEC: kSecAttrKeyTypeECSECPrimeRandom, kSecAttrTokenID: kSecAttrTokenIDSecureEnclave, kSecAttrKeyClass: kSecAttrKeyClassPrivate ] as CFDictionary, nil) guard let secKeyByPrivateKey: SecKey = secKeyByPrivateKey else { return SecKey.self as! SecKey } return secKeyByPrivateKey } func createSignature() -> String{ let seckey = getPrivateKey() let data = "Hello".data(using: .utf8) let dataHash = getStringHash("Hello").data(using: .utf8)! guard let signedData = SecKeyCreateSignature(seckey, SecKeyAlgorithm.ecdsaSignatureMessageX962SHA256, data as! CFData, nil) as Data? else { return "" } print(signedData.base64EncodedString()) return signedData.base64EncodedString() } With IOS > 14 I can use P256.Signing but with IOS < 14 I can't verify
Posted
by HieuLH9X.
Last updated
.