I have the following and it's working. However, if I add a new String property, it suddenly returns the error above.
This new property is added as a variable, initialized and conformed to hashable accordingly.
@Model
final class Car {
var name: String
var price: Double
var remarks: String?
var releaseDate: Date
var brand: CarBrand
init(name: String, price: Double, remarks: String?, releaseDate: Date, brand: CarBrand) {
self.name = name
self.price = price
self.remarks = remarks
self.releaseDate = releaseDate
self.brand = brand
}
}
extension Car: Identifiable {}
extension Car: Hashable {
static func == (lhs: Car, rhs: Car) -> Bool {
lhs.name == rhs.name &&
lhs.price == rhs.price &&
lhs.remarks == rhs.remarks &&
lhs.releaseDate == rhs.releaseDate &&
lhs.brand == rhs.brand
}
func hash(into hasher: inout Hasher) {
hasher.combine(name)
hasher.combine(price)
hasher.combine(remarks)
hasher.combine(releaseDate)
hasher.combine(brand)
}
}
enum CarBrand: String, Codable, CaseIterable, Identifiable {
case brandA
case brandB
case brandC
var id: Self { self }
Post
Replies
Boosts
Views
Activity
Can Xcode Cloud upload builds someplace else other than TestFlight? For example, TestFairy, HockeyApp, Firebase App Distribution, Kobiton, Diawi, Install On Air, etc.
Hi.
I am trying to create a SecKey from my PKCS#8 key—the one generated for Sign in with Apple. But, I keep getting nil and the error "EC private key creation from data failed".
The following is the openssl command that I used to convert from p8 -> der:
openssl ec -in key.p8 -outform der -out key.der
I encoded the content of key.der to base64 using the following:
let utf8str = derContent.data(using: .utf8)
if let base64Encoded = utf8str?.base64EncodedData(options: [.endLineWithLineFeed]) {
print("keyBase64: \(String(data: base64Encoded, encoding: .utf8) ?? "NA")")
}
Code for creating a SecKey:
let keyBase64 = "..."
let keyData = Data(base64Encoded: keyBase64)!
var error: Unmanaged<CFError>?
let key = SecKeyCreateWithData(keyData as NSData, [
		 kSecAttrKeyType: kSecAttrKeyTypeECSECPrimeRandom,
		 kSecAttrKeyClass: kSecAttrKeyClassPrivate
] as NSDictionary, &error)
I am completely new to security, therefore I have limited knowledge on this topic. So far, the above code snippets are the ones I managed to research. But, I don't know what could be wrong with it.
Hoping someone could enlighten me on this security-related topic.
Thank you in advance!