Skip to main content

Crate futu_auth

Crate futu_auth 

Source
Expand description

FutuOpenD-rs 授权子系统

提供 API Key + Scope + 限额 三层鉴权:

  • scope — 能力分组枚举
  • key — 单条 key 记录 + SHA-256 校验
  • store — keys.json 加载 / 原子热替换 / 明文验证
  • limits — 日累计 / 单笔上限 / 市场 / 品种白名单 / 时间窗口

Re-exports§

pub use key::KeyRecord;
pub use key::hash_plaintext;
pub use limits::CheckCtx;
pub use limits::LimitGuard;
pub use limits::LimitOutcome;
pub use limits::Limits;
pub use limits::RuntimeCounters;
pub use limits::ValueRejectReason;
pub use limits::market_to_currency;
pub use limits::validate_order_value;
pub use machine::MachineError;
pub use machine::fingerprint_for;
pub use machine::fingerprint_from_raw;
pub use machine::raw_machine_id;
pub use metrics::Registry as MetricsRegistry;
pub use scope::COVERAGE_EXCEPTIONS;
pub use scope::CoverageException;
pub use scope::EXPLICIT_NO_BODY_AWARE_PROTOS;
pub use scope::SCOPED_ACC_READ_PROTOS;
pub use scope::SCOPED_TRADE_REAL_PROTOS;
pub use scope::SCOPED_TRADE_UNLOCK_PROTOS;
pub use scope::Scope;
pub use scope::ScopeParseError;
pub use scope::is_internal_proto_id;
pub use scope::scope_for_proto_id;
pub use store::KeyStore;
pub use store::KeyStoreError;

Modules§

audit
审计事件发射 helpers + JSONL 订阅层
key
KeyRecord: 单条 API Key 的配置 + SHA-256 校验
limits
限额:单笔、日累计、市场/品种白名单、时间窗口
machine
软机器绑定(soft machine binding)
metrics
全局 metrics registry —— 供 /metrics Prometheus 端点消费
scope
Scope: 能力分组
store
KeyStore: keys.json 加载 + 热替换 + 明文验证

Constants§

KEYRING_SERVICE
OS keychain 里存交易密码用的 service 名 —— futu-mcp 和 futucli 双边读写同一 keychain 条目,常量放这里单源
KEYRING_USERNAME_LOGIN_PWD_PREFIX
登录密码的 keychain username 前缀(v1.4.18+)。一个账号一条独立条目, 完整 username 是 login-password.<account>,避免多账号互相覆盖。
KEYRING_USERNAME_TRADE_PWD
OS keychain 里存交易密码的 legacy username,与 KEYRING_SERVICE 配对。
KEYRING_USERNAME_TRADE_PWD_PREFIX
交易密码的账号级 keychain username 前缀。完整 username 是 trade-password.<login-account>,与登录密码的账号级隔离模型一致。

Functions§

keyring_username_for_login_pwd
计算某账号对应的登录密码 keychain username。
keyring_username_for_trade_pwd
计算某账号对应的交易密码 keychain username。