Файл шифрования CryptoKit слишком велик для памяти
Есть ли способ зашифровать файл, который слишком велик для памяти с помощью CryptoKit яблок (AES.GCM)?
У меня есть URL-адрес большого файла. Этот файл может быть слишком большим для памяти, поэтому я хотел бы зашифровать и в конечном итоге расшифровать файл с помощью AES.GCM, используя поток, как в этом примере SHA:
var hasher = SHA256()
let path = Bundle.main.path(forResource: "video", ofType: "mp4")!
let stream = InputStream(fileAtPath: path)!stream.open()
let bufferSize = 512
let buffer = UnsafeMutablePointer<UInt8>
.allocate(capacity: bufferSize)
while stream.hasBytesAvailable {
let read = stream.read(buffer, maxLength: bufferSize)
let bufferPointer = UnsafeRawBufferPointer(start: buffer,
count: read)
hasher.update(bufferPointer: bufferPointer)
}
let digest = hasher.finalize()
print(digest)
Возможно ли это сейчас?