Я возиться с новой CryptoKit платформой Apple на Xcode 11.0 beta 2. Я хочу создать SymmetricKey , а затем получить необработанные байты ключа. Я хотел бы использовать эти байты для создания того же ключа, а затем проверить, чтобы убедиться, что ключи равны. Из того, что я могу понять из документации, единственный способ получить доступ к необработанным байтам ключа - использовать метод withUnsafeBytes (_:) . У меня есть детская площадка со следующим кодом:
import Foundation
import CryptoKit
let key1 = SymmetricKey(size: .bits256)
key1.withUnsafeBytes { body in
let rawKeyBytes = body.load(as: Data.self)
let key2 = SymmetricKey(data: rawKeyBytes)
print("Are they equal? \(key1 == key2)")
}
Вывод этого Are they equal? false
, поэтому, к сожалению, ключи не совпадают. Предполагая, что я смогу сопоставить эти ключи, я также не уверен, как преобразовать rawKeyBytes
в строку, чтобы просмотреть ее в выводе моей Playground. В целом, я просто не очень знаком с UnsafeRawBufferPointer или ContiguousBytes .