Как получить доступ к основному ключу SymmetricKey в CryptoKit? - PullRequest
1 голос
/ 01 июля 2019

Я возиться с новой 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 .

...