[package]
edition = "2024"
rust-version = "1.85"
name = "security-framework"
version = "3.7.0"
authors = [
"Steven Fackler <sfackler@gmail.com>",
"Kornel <kornel@geekhood.net>",
]
build = false
exclude = ["test/*"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Security.framework bindings for macOS and iOS"
homepage = "https://lib.rs/crates/security_framework"
documentation = "https://docs.rs/security_framework"
readme = "README.md"
keywords = [
"iOS",
"TLS",
"SSL",
"crypto",
"keychain",
]
categories = [
"os::macos-apis",
"cryptography",
"api-bindings",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/kornelski/rust-security-framework"
resolver = "2"
[package.metadata.docs.rs]
targets = [
"x86_64-apple-darwin",
"aarch64-apple-ios",
]
features = ["OSX_10_15"]
[badges.maintenance]
status = "looking-for-maintainer"
[features]
OSX_10_12 = []
OSX_10_13 = []
OSX_10_14 = []
OSX_10_15 = ["security-framework-sys/OSX_10_15"]
alpn = []
default = [
"OSX_10_14",
"alpn",
"session-tickets",
]
job-bless = []
macos-12 = ["security-framework-sys/macos-12"]
nightly = []
session-tickets = []
sync-keychain = ["OSX_10_13"]
[lib]
name = "security_framework"
path = "src/lib.rs"
[[example]]
name = "client"
path = "examples/client.rs"
[[example]]
name = "find_internet_password"
path = "examples/find_internet_password.rs"
[[example]]
name = "set_internet_password"
path = "examples/set_internet_password.rs"
[dependencies.bitflags]
version = "2.11"
[dependencies.core-foundation]
version = "0.10"
[dependencies.core-foundation-sys]
version = "0.8.6"
[dependencies.libc]
version = "0.2.139"
[dependencies.log]
version = "0.4.20"
optional = true
[dependencies.security-framework-sys]
version = "2.17"
default-features = false
[dev-dependencies.env_logger]
version = "0.11"
[dev-dependencies.hex]
version = "0.4.3"
[dev-dependencies.tempfile]
version = "3.12.0"
[dev-dependencies.time]
version = "0.3.23"
[dev-dependencies.x509-parser]
version = "0.18"
[lints.clippy]
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_sign_loss = "allow"
default_trait_access = "allow"
doc_markdown = "allow"
if_not_else = "allow"
inline_always = "allow"
items_after_statements = "allow"
iter_not_returning_iterator = "allow"
map_unwrap_or = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
needless_continue = "allow"
needless_pass_by_value = "allow"
redundant_closure_for_method_calls = "allow"
similar_names = "allow"
struct_field_names = "allow"
unnested_or_patterns = "allow"
wildcard_imports = "allow"
[lints.clippy.pedantic]
level = "warn"
priority = -100