Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacyΒ© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
sudp β€” Secret-Use Delegation Protocol β€” protocol-level secret use for agentic systems | Kitploit
Tools/GitHubGitHub/xhyumiracle/sudp
Authentication & AuthorizationCryptographyPrivacyUtilities & FrameworksSecret DetectionIdentity & Access Management (IAM)Papers & ResearchAI Security
GitHubxhyumiracle/sudp

sudp

Secret-Use Delegation Protocol β€” protocol-level secret use for agentic systems

View Repository
4252 months agoNot yet reviewed

Most Popular

View all β†’

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools β†’
Share
Website

SUDP β€” Secret-Use Delegation Protocol

Protocol-level secret use for agentic systems.

crates.io npm @sudp-protocol/authorizer npm @sudp-protocol/requester License: Apache-2.0

Reference implementation of arXiv:2604.24920 β€” see Cite this paper.

sudp lets an autonomous Requester (R) propose a secret-backed operation, an Authorizer (A) authorize exactly that operation, and a Custodian (T) perform it. The unit of delegation is one use, not the secret.

                  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                  β”‚  Authorizer  A          β”‚
                  β”‚  (passkey on a device)  β”‚
                  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                               β”‚  signs Ξ² over (DS β€– r β€– H(o))
                               β–Ό
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
   β”‚ Requester R  β”‚ ─o─▢ β”‚  Custodian T  β”‚ ─s─▢  β”‚ Environment  β”‚
   β”‚   (agent)    β”‚      β”‚               β”‚       β”‚      E       β”‚
   β”‚              │◀ρ────│ holds sealed Ξ£β”‚       β”‚              β”‚
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

R never sees s and gains no reusable authority over it β€” even if R is fully compromised (prompt injection, runtime shim, etc.).

Cite this paper

@misc{yu2026sudp,
  title         = {SUDP: Secret-Use Delegation Protocol for Agentic Systems},
  author        = {Xiaohang Yu and Hejia Geng and Xinmeng Zeng and William Knottenbelt},
  year          = {2026},
  eprint        = {2604.24920},
  archivePrefix = {arXiv},
  primaryClass  = {cs.CR},
  url           = {https://arxiv.org/abs/2604.24920}
}

Xiaohang Yu, Hejia Geng, Xinmeng Zeng, and William Knottenbelt. "SUDP: Secret-Use Delegation Protocol for Agentic Systems." arXiv preprint arXiv:2604.24920 (2026).

Packages

RoleSourcePublished as
Custodian (T)custodian/rustsudp on crates.io
Authorizer (A)authorizer/ts@sudp-protocol/authorizer on npm
Requester (R)requester/ts@sudp-protocol/requester on npm

Try it

Prerequisites: Rust 1.85+ (via rustup) and Node.js 20+.

git clone https://github.com/xhyumiracle/sudp
cd sudp/examples/protocol-demo
./run.sh

Builds all three packages, spawns the Custodian, runs R + A in a Node script, prints every wire interaction colour-coded by role, and finishes with an adversarial check (R tampers with o after A signs β†’ T rejects).

For API-level usage: custodian/rust Β· authorizer/ts Β· requester/ts.

Building an agent

Agent authors typically need only @sudp-protocol/requester β€” typed Operation builders and shape validators, no transport, no framework adapters. The Requester is the most replaceable layer; every agent framework wires its own glue.

Cross-language alignment

Conformance vectors lock the Authorizer's bytes against the Custodian at the byte level β€” composite shapes stay aligned by construction.

SurfaceRust anchorTS anchor
canonical(o)Operation::canonical_bytes unit testsconformance.test.ts: canonical: nested ordering
Ξ² + DS_BINDbeta_matches_ts_authorizer_conformance_vectorconformance.test.ts: Ξ²: matches Rust...
batch Ξ² (H(canonical(ops)))batch_beta_matches_ts_authorizer_conformance_vectorconformance.test.ts: batch Ξ²: matches Rust...
derive_wrapping_keyderive_wrapping_key_matches_ts_authorizer_conformance_vectorconformance.test.ts: deriveWrappingKey: matches Rust...
AEAD encrypt (fixed nonce)aead_matches_ts_authorizer_conformance_vectorconformance.test.ts: aeadEncrypt: matches Rust...
wrap_ad layoutWrapBinding::to_canonical_ad testsconformance.test.ts: wrap_ad: DS_WRAP β€– cid β€– ver_be
seal_ad layoutphases::setup::seal_ad (setup tests)conformance.test.ts: seal_ad: DS_SEAL β€– ver_be
per-record seal (record_aad / K_aead / sealed framing)state::record::tests::conformance_*conformance.test.ts: per-record conformance vectors
WRAP_VERSION ↔ CURRENT_VERSIONstate::CURRENT_VERSION = 1conformance.test.ts: WRAP_VERSION matches Rust...

CI runs both halves on every push:

cd custodian/rust && cargo test
cd authorizer/ts  && npm test
cd requester/ts   && npm test

Pre-1.0

Wire format and trait shapes may still move before 1.0. Pin minor versions in production:

# Cargo.toml
sudp = "~0.1"
// package.json
"@sudp-protocol/authorizer": "~0.1.0",
"@sudp-protocol/requester":  "~0.1.0"

Security

See SECURITY.md.

License

Apache-2.0. See LICENSE.

Download Tool