尝试从 swift 的 SecKeyCreateWithData 函数生成 SecKey,如下所示。SecKeyCreateWithData 总是返回 nil 并带有以下错误日志。任何人都可以请帮忙。
注意:作为 CFData 的 cekKeyData 和作为 CFDictionary 的属性都不是 nil 并且其中有值。
日志 :
Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
代码
let keydatalen = 256
let algorithmID = ""
let partyUInfo = ""
let cekKeyData = DHSecretGenerator.createDeriveKey(
Z: sharedKey,
KeyLenght: keydatalen,
AlgorithmID: KDFConcateWithLenght(text: algorithmID, encoding: .ascii),
PartyUInfo: KDFConcateWithLenght(text: partyUInfo, encoding: .utf8),
PartyVInfo: KDFConcateWithLenght(text: reference, encoding: .ascii),
SuppPubInfo: numberToData(number: UInt32(keydatalen)),
SuppPrivInfo: Data())
let attributes: [String: Any] = [
kSecAttrKeyType as String: kSecAttrKeyTypeECSECPrimeRandom,
kSecAttrKeyClass as String: kSecAttrKeyClassSymmetric
]
var error: Unmanaged<CFError>?
var test: SecKey =
let privKey : SecKey = SecKeyCreateWithData(cekKeyData as CFData,
attributes as CFDictionary, &error)!
print(privKey)