[package] name = "craft-odf" description = "OpenDocument packages: the ZIP container with its mimetype and manifest, password protection (AES-256-CBC, PBKDF2) and flat single-file documents, read and written." version.workspace = true edition.workspace = true license.workspace = true rust-version.workspace = true repository.workspace = true [lints] workspace = true [dependencies] craft-xml = { workspace = true } thiserror = { workspace = true } # `test-support`: `zip_guard::zip64_entry_count_sample` is public here. craft-zip = { workspace = true, features = ["test-support"] } flate2 = { version = "1", default-features = false, features = ["rust_backend"] } base64 = "0.23" # Password-protected packages (ODF 1.3 Part 2 section 3.4): AES-256-CBC, SHA-1/SHA-256, PBKDF2 # (HMAC-SHA-1). aes = "0.9" sha1 = "0.11" sha2 = "0.11" hmac = "0.13" getrandom = "0.3" zeroize = "1" [dev-dependencies] # The tests build archives, hostile ones included, by hand. zip = { version = "9", default-features = false, features = ["deflate-flate2"] } [target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies] # The browser's `crypto.getRandomValues` for the salts and vectors of encrypted saves. getrandom = { version = "0.3", features = ["wasm_js"] }