clients::rdp connects over any caller-dialled TCP stream (direct, proxy or SSH tunnel), upgrades to TLS and logs on with NLA (CredSSP/NTLM), optionally falling back to TLS-only logon for servers without NLA such as xrdp (credentials are passed so they log straight in). The server certificate is pinned through a caller check on its SHA256 fingerprint before any credentials are sent. The desktop decodes into the VNC client's RGBA framebuffer; input (IronRDP's scancode/Unicode/mouse operations), Display Control resizes and the deactivation-reactivation sequence run on the session thread. IronRDP's releases need three vendored patches (vendor/README.md): picky and sspi with their RustCrypto release-candidate pins relaxed so they share russh's stable versions (their own suites, 402 tests, pass against them), and ironrdp-session with two unreleased upstream bitmap fixes (#1486 stride, #1524 RDP6 orientation) without which xrdp desktops render sheared. Verified live against xrdp (scottyhardy/docker-remote-desktop): logon, full desktop rendering, keyboard and mouse input.
354 lines
5.9 KiB
TOML
354 lines
5.9 KiB
TOML
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
|
|
#
|
|
# When uploading crates to the registry Cargo will automatically
|
|
# "normalize" Cargo.toml files for maximal compatibility
|
|
# with all versions of Cargo and also rewrite `path` dependencies
|
|
# to registry (e.g., crates.io) dependencies.
|
|
#
|
|
# If you are reading this file be aware that the original Cargo.toml
|
|
# will likely look very different (and much more reasonable).
|
|
# See Cargo.toml.orig for the original contents.
|
|
|
|
[package]
|
|
edition = "2024"
|
|
rust-version = "1.85"
|
|
name = "picky"
|
|
version = "7.0.0-rc.25"
|
|
authors = [
|
|
"Benoît CORTIER <bcortier@devolutions.net>",
|
|
"Jonathan Trepanier <jtrepanier@devolutions.net>",
|
|
"François Dubois <fdubois@devolutions.net>",
|
|
"Richard Markiewicz <rmarkiewicz@devolutions.net>",
|
|
"Ionut Mihalcea <ionut.mihalcea@arm.com>",
|
|
"Kim Altintop <kim@monadic.xyz>",
|
|
"Alexandr Yusuk <aleksandr.yusuk@apriorit.com>",
|
|
"Flavio Castelli <flavio@castelli.me>",
|
|
"Xynnn_ <xynnn@linux.alibaba.com>",
|
|
]
|
|
build = false
|
|
include = [
|
|
"src/**/*",
|
|
"README.md",
|
|
"CHANGELOG.md",
|
|
"LICENSE-*",
|
|
]
|
|
autolib = false
|
|
autobins = false
|
|
autoexamples = false
|
|
autotests = false
|
|
autobenches = false
|
|
description = "Portable X.509, PKI, JOSE and HTTP signature implementation."
|
|
readme = "README.md"
|
|
keywords = [
|
|
"x509",
|
|
"jwt",
|
|
"signature",
|
|
"jose",
|
|
"pki",
|
|
]
|
|
license = "MIT OR Apache-2.0"
|
|
repository = "https://github.com/Devolutions/picky-rs"
|
|
resolver = "2"
|
|
|
|
[package.metadata.docs.rs]
|
|
all-features = true
|
|
|
|
[features]
|
|
chrono_conversion = [
|
|
"dep:chrono",
|
|
"picky-asn1/chrono_conversion",
|
|
]
|
|
ctl = [
|
|
"picky-asn1-x509/ctl",
|
|
"pkcs7",
|
|
"chrono_conversion",
|
|
]
|
|
ctl_http_fetch = [
|
|
"dep:reqwest",
|
|
"dep:cab",
|
|
"ctl",
|
|
]
|
|
default = [
|
|
"x509",
|
|
"jose",
|
|
"http_signature",
|
|
"http_trait_impl",
|
|
"pkcs12",
|
|
]
|
|
http_signature = []
|
|
http_timestamp = ["dep:reqwest"]
|
|
http_trait_impl = ["dep:http"]
|
|
jose = [
|
|
"dep:serde_json",
|
|
"dep:aes-gcm",
|
|
"dep:ctr",
|
|
"dep:cbc",
|
|
"dep:aes-kw",
|
|
"dep:aes",
|
|
]
|
|
pkcs12 = [
|
|
"picky-asn1-x509/pkcs12",
|
|
"dep:des",
|
|
"dep:rc2",
|
|
"dep:cbc",
|
|
"dep:hmac",
|
|
"dep:aes",
|
|
"x509",
|
|
"dep:pbkdf2",
|
|
]
|
|
pkcs7 = [
|
|
"x509",
|
|
"picky-asn1-x509/pkcs7",
|
|
]
|
|
putty = [
|
|
"dep:argon2",
|
|
"dep:hmac",
|
|
"ssh",
|
|
"dep:blake2",
|
|
]
|
|
ssh = [
|
|
"dep:byteorder",
|
|
"dep:aes",
|
|
"dep:ctr",
|
|
"dep:cbc",
|
|
"dep:bcrypt-pbkdf",
|
|
"dep:lexical-sort",
|
|
"dep:hmac",
|
|
"dep:pbkdf2",
|
|
]
|
|
time_conversion = [
|
|
"dep:time",
|
|
"picky-asn1/time_conversion",
|
|
]
|
|
wincert = [
|
|
"x509",
|
|
"dep:byteorder",
|
|
]
|
|
x509 = []
|
|
|
|
[lib]
|
|
name = "picky"
|
|
path = "src/lib.rs"
|
|
|
|
[dependencies.aes]
|
|
version = "0.9"
|
|
optional = true
|
|
|
|
[dependencies.aes-gcm]
|
|
version = "^0.11.0-rc.4"
|
|
optional = true
|
|
|
|
[dependencies.aes-kw]
|
|
version = "0.3"
|
|
optional = true
|
|
|
|
[dependencies.argon2]
|
|
version = "^0.6.0-rc.8"
|
|
optional = true
|
|
|
|
[dependencies.base64]
|
|
version = "0.22"
|
|
|
|
[dependencies.bcrypt-pbkdf]
|
|
version = "0.11"
|
|
optional = true
|
|
|
|
[dependencies.blake2]
|
|
version = "^0.11.0-rc.6"
|
|
optional = true
|
|
|
|
[dependencies.byteorder]
|
|
version = "1.5"
|
|
optional = true
|
|
|
|
[dependencies.cab]
|
|
version = "0.6"
|
|
optional = true
|
|
|
|
[dependencies.cbc]
|
|
version = "0.2"
|
|
features = ["alloc"]
|
|
optional = true
|
|
|
|
[dependencies.chrono]
|
|
version = "0.4"
|
|
features = ["clock"]
|
|
optional = true
|
|
default-features = false
|
|
|
|
[dependencies.crypto-bigint]
|
|
version = "0.7"
|
|
|
|
[dependencies.crypto-common]
|
|
version = "0.2"
|
|
|
|
[dependencies.ctr]
|
|
version = "0.10"
|
|
optional = true
|
|
|
|
[dependencies.curve25519-dalek]
|
|
version = "^5.0.0-rc.1"
|
|
|
|
[dependencies.des]
|
|
version = "0.9"
|
|
optional = true
|
|
|
|
[dependencies.digest]
|
|
version = "0.11"
|
|
|
|
[dependencies.ecdsa]
|
|
version = "^0.17.0-rc.22"
|
|
|
|
[dependencies.ed25519-dalek]
|
|
version = "^3.0.0-rc.1"
|
|
features = [
|
|
"hazmat",
|
|
"rand_core",
|
|
]
|
|
|
|
[dependencies.hex]
|
|
version = "0.4"
|
|
|
|
[dependencies.hmac]
|
|
version = "0.13"
|
|
optional = true
|
|
|
|
[dependencies.http]
|
|
version = "1.4"
|
|
optional = true
|
|
|
|
[dependencies.inout]
|
|
version = "0.2.2"
|
|
|
|
[dependencies.lexical-sort]
|
|
version = "0.3"
|
|
optional = true
|
|
|
|
[dependencies.md5]
|
|
version = "0.11"
|
|
features = ["oid"]
|
|
package = "md-5"
|
|
|
|
[dependencies.p256]
|
|
version = "^0.14.0-rc.14"
|
|
features = ["ecdh"]
|
|
|
|
[dependencies.p384]
|
|
version = "^0.14.0-rc.14"
|
|
features = ["ecdh"]
|
|
|
|
[dependencies.p521]
|
|
version = "^0.14.0-rc.14"
|
|
features = ["ecdh"]
|
|
|
|
[dependencies.pbkdf2]
|
|
version = "0.13"
|
|
optional = true
|
|
|
|
[dependencies.picky-asn1]
|
|
version = "0.10"
|
|
features = ["zeroize"]
|
|
|
|
[dependencies.picky-asn1-der]
|
|
version = "0.5"
|
|
|
|
[dependencies.picky-asn1-x509]
|
|
version = "0.15"
|
|
features = [
|
|
"legacy",
|
|
"zeroize",
|
|
]
|
|
|
|
[dependencies.pkcs1]
|
|
version = "^0.8.0-rc.4"
|
|
|
|
[dependencies.primeorder]
|
|
version = "^0.14.0-rc.14"
|
|
|
|
[dependencies.rand]
|
|
version = "0.10"
|
|
|
|
[dependencies.rand_core]
|
|
version = "0.10"
|
|
|
|
[dependencies.rc2]
|
|
version = "0.9"
|
|
optional = true
|
|
|
|
[dependencies.reqwest]
|
|
version = "0.13"
|
|
features = ["blocking"]
|
|
optional = true
|
|
default-features = false
|
|
|
|
[dependencies.rsa]
|
|
version = "^0.10.0-rc.18"
|
|
features = ["std"]
|
|
|
|
[dependencies.rustcrypto-ff]
|
|
version = "^0.14.0-rc.1"
|
|
|
|
[dependencies.rustcrypto-ff_derive]
|
|
version = "^0.14.0-rc.0"
|
|
|
|
[dependencies.rustcrypto-group]
|
|
version = "^0.14.0-rc.1"
|
|
|
|
[dependencies.serde]
|
|
version = "1"
|
|
features = ["derive"]
|
|
|
|
[dependencies.serde_json]
|
|
version = "1"
|
|
optional = true
|
|
|
|
[dependencies.sha1]
|
|
version = "0.11"
|
|
features = ["oid"]
|
|
|
|
[dependencies.sha2]
|
|
version = "0.11"
|
|
features = ["oid"]
|
|
|
|
[dependencies.sha3]
|
|
version = "0.12"
|
|
features = ["oid"]
|
|
|
|
[dependencies.thiserror]
|
|
version = "2"
|
|
|
|
[dependencies.time]
|
|
version = "0.3"
|
|
optional = true
|
|
|
|
[dependencies.x25519-dalek]
|
|
version = "^3.0.0-rc.1"
|
|
features = ["static_secrets"]
|
|
|
|
[dependencies.zeroize]
|
|
version = "1.8"
|
|
|
|
[dev-dependencies.cfg-if]
|
|
version = "1.0"
|
|
|
|
[dev-dependencies.expect-test]
|
|
version = "1"
|
|
|
|
[dev-dependencies.picky-test-data]
|
|
version = "0.1"
|
|
|
|
[dev-dependencies.pretty_assertions]
|
|
version = "1.4"
|
|
|
|
[dev-dependencies.rand_chacha]
|
|
version = "0.10"
|
|
|
|
[dev-dependencies.ring]
|
|
version = "0.17"
|
|
|
|
[dev-dependencies.rstest]
|
|
version = "0.26"
|
|
|
|
[dev-dependencies.tempfile]
|
|
version = "3.22"
|