Файл шифрования 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)

Возможно ли это сейчас?

0 ответов

Другие вопросы по тегам