Swift Create файл с целостностью FileManager - PullRequest
1 голос
/ 10 июля 2020

Я сейчас пытаюсь сохранить некоторые файлы на своем iOS устройстве. Содержимое файла зашифровано, но мне было интересно, могу ли я добавить к файлу какую-то проверку целостности, желательно с помощью FileAttributeKey.

Я пробовал следующее, что не работает

extension FileAttributeKey {
    static let integrity = FileAttributeKey("NSFileIntegrity")
}

let docs = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let fileName = "test"
let filePath = docs.appendingPathComponent(fileName).path

defer {
    try! FileManager.default.removeItem(atPath: filePath)
}

let data = Data("Hello world".utf8)

// This line fails too
// FileManager.default.createFile(atPath: filePath, contents: data, attributes: [.integrity: "SHA256"])

FileManager.default.createFile(atPath: filePath, contents: data, attributes: [:])
do {
    try FileManager.default.setAttributes([.integrity: "SHA256"], ofItemAtPath: filePath)
} catch {
    print(error)
}
print(try FileManager.default.attributesOfItem(atPath: filePath))

Итак, вопросы:

  1. Есть ли способ создать и добавить пользовательский FileAttributeKey в файл.
  2. Есть ли ( лучше) способ добавить в файл проверки целостности?

1 Ответ

1 голос
/ 10 июля 2020

Если вы используете шифрование с аутентификацией , вы получаете бесплатную проверку целостности. Каждый раз, когда вы расшифровываете, для вас будет проверяться целостность, и в случае ошибок расшифровка не удастся. Просто используйте такой режим, как GCM или OCB, и все готово.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...