[package] name = "product-os-security" version = "0.0.28" # version - The version of the package. authors = ["Jeremy de Oliveira-Kumar "] # authors - The authors of the package. edition = "2021" # edition - The Rust edition. 2021 rust-version = "1.69" # rust-version - The minimal supported Rust version. min 1.69 description = "Product OS : Security provides a suite of helper tools to easily perform cryptograhpic operations including generating hashes, encrypting and decryting content." # description - A description of the package. # documentation = "" # documentation - URL of the package documentation. readme = "readme.md" # readme - Path to the package’s README file. Use https://www.makeareadme.com/ # homepage = "" # homepage - URL of the package homepage. # repository = "" # repository - URL of the package source repository. license = "AGPL-3.0-only" # license - The package license. # license-file = "license.txt" # license-file - Path to the text of the license. Use https://choosealicense.com/ keywords = ["product-os"] # keywords - Keywords for the package. categories = [] # categories - Categories of the package. https://crates.io/category_slugs # workspace = "" # workspace - Path to the workspace for the package. build = false # build - Path to the package build script. default "build.rs" or specify # links = "" # links - Name of the native library the package links with. exclude = [] # exclude - Files to exclude when publishing. include = [] # include - Files to include when publishing. # publish = [] # publish - Can be used to prevent publishing the package. false to prevent publish, list of registries otherwise # default-run = "" # default-run - The default binary to run by cargo run. autobins = true # autobins - Disables binary auto discovery. autoexamples = true # autoexamples - Disables example auto discovery. autotests = true # autotests - Disables test auto discovery. autobenches = true # autobenches - Disables bench auto discovery. resolver = "2" # resolver - Sets the dependency resolver to use. Use 2 with 2021, 1 prior # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] no-std-compat = { version = "0.4.1", features = ["alloc"], optional = false } blake2 = { version = "0.10.4", features = [], default-features = false, optional = true } argon2 = { version = "0.4.0", features = [], default-features = false, optional = true } orion = { version = "0.17.6", features = [], default-features = false, optional = true } ring = { version = "0.16.20", features = [], default-features = false, optional = true } x25519-dalek = { version = "2.0.0", default-features = false, optional = true } hkdf = { version = "0.12.3", features = [], default-features = false, optional = true } jwt-compact = { version = "0.8.0", features = [], default-features = false, optional = true } sha2 = { version = "0.10.2", features = [], default-features = false, optional = true } urlencoding = { version = "2.1.0", features = [], default-features = false, optional = true } serde = { version = "1.0.192", features = [], default-features = false, optional = true } serde_json = { version = "1.0.108", features = [], default-features = false, optional = true } # JSON data representation hex = { version = "0.4.3", features = [], default-features = false, optional = true } base64 = { version = "0.21.5", features = [], default-features = false, optional = true } uuid = { version = "1.1.2", features = [], default-features = false, optional = true } # Date and Time Handling chrono = { version = "0.4.19", features = [], default-features = false, optional = true } # Time based OTP totp-lite = { version = "2.0.0", features = [], default-features = false, optional = true } # TLS support const-oid = { version = "0.9.3", features = ["db"], default-features = false, optional = true } der = { version = "0.7.6", features = ["alloc", "derive", "flagset", "oid"], default-features = false, optional = true } spki = { version = "0.7.2", features = ["alloc"], default-features = false, optional = true } arbitrary = { version = "1.3.2", features = ["derive"], default-features = false, optional = true } signature = { version = "2.1.0", features = ["rand_core"], default-features = false, optional = true } rsa = { version = "0.9.3", features = ["sha2"], default-features = false, optional = true } rustls = { version = "0.21.8", features = [], default-features = false, optional = true } # TLS library for Rust rcgen = { version = "0.11.3", features = [], default-features = false, optional = true } # Generate self-signed certificate rustls-pemfile = { version = "1.0.4", features = [], default-features = false, optional = true } # Generate self-signed certificate openssl = { version = "0.10.42", features = [], default-features = false, optional = true } tracing = { version = "0.1.29", features = [], default-features = false, optional = false } product-os-random = { version = ">= 0.0.1", features = [], default-features = false, optional = true } product-os-async-executor = { version = ">= 0.0.1", features = [], default-features = false, optional = true } product-os-urlencoding = { version = ">= 0.0.1", features = [], default-features = false, optional = true } [patch.crates-io] product-os-random = { path = "../product-os-random", features = [], default-features = false, optional = true } product-os-async-executor = { path = "../product-os-async-executor", features = [], default-features = false, optional = true } product-os-urlencoding = { path = "../product-os-urlencoding", features = [], default-features = false, optional = true } [features] default = ["no-std-compat/std", "product-os-random/default", "product-os-async-executor/default", "chrono/clock", "jwt_auth_verify"] all = ["default", "generator", "hash", "password_hash", "mac", "auth_verify", "jwt_auth_verify", "jwt_encrypt_decrypt", "diffie_hellman_key_store", "diffie_hellman_client_server_key_store", "symmetric_encrypt_decrypt", "public_private_encrypt_decrypt", "public_private_sign_verify", "time_otp", "string_safe", "certificates", "vendored-openssl", "byte_vector", "file"] generator = ["product-os-random/constrained"] mac = ["blake2"] password_hash = ["argon2/alloc", "argon2/password-hash", "product-os-random/constrained", "product-os-random/custom"] hash = ["blake2", "generator"] hasher = ["blake2"] jwt_encrypt_decrypt = ["orion", "base64/alloc"] jwt_auth_verify = ["jwt-compact", "chrono/alloc", "serde", "generator", "product-os-async-executor/moment"] byte_vector = ["serde_json/alloc"] auth_verify = ["hash", "mac", "generator", "serde_json/alloc", "product-os-urlencoding", "hex/alloc"] diffie_hellman_key_store = ["x25519-dalek", "product-os-random/constrained", "product-os-random/custom", "uuid", "uuid/v4", "hkdf", "sha2"] symmetric_encrypt_decrypt = ["orion", "product-os-random/constrained"] time_otp = ["mac", "chrono/alloc", "product-os-async-executor/moment"] string_safe = ["product-os-urlencoding"] certificates_custom = ["chrono/alloc", "const-oid", "der", "spki", "signature", "rsa", "sha2", "rustls", "rustls-pemfile", "product-os-random/constrained", "product-os-random/custom"] # std jwt_encrypt_decrypt_std = ["orion/safe_api"] diffie_hellman_client_server_key_store = ["orion/safe_api", "no-std-compat/std", "uuid/serde", "uuid/v4"] public_private_encrypt_decrypt = ["no-std-compat/std", "product-os-random/default"] public_private_sign_verify = ["ring/std"] vendored-openssl = ["openssl/vendored"] certificates = ["rustls", "rcgen", "rustls-pemfile"] open_ssl = ["openssl"] file = [] [workspace]