provnai/provn-sdk

GitHub: provnai/provn-sdk

一个多语言客户端 SDK,提供基于 Ed25519 的本地隐私保护式密码学签名与离线验证能力,作为可验证 AI 的核心身份层。

Stars: 4 | Forks: 0

# Provncloud SDK [![License: MIT](https://img.shields.io/badge/License-MIT-emerald.svg)](https://opensource.org/licenses/MIT) [![Rust](https://img.shields.io/crates/v/provn-sdk?label=Rust%20%28crates.io%29&color=orange)](https://crates.io/crates/provn-sdk) [![NPM](https://img.shields.io/npm/v/%40provncloud%2Fsdk?label=NPM&color=red)](https://www.npmjs.com/package/@provncloud/sdk) [![PyPI](https://img.shields.io/pypi/v/provn-sdk?label=PyPI&color=yellow)](https://pypi.org/project/provn-sdk/) [![Go](https://img.shields.io/github/v/tag/provnai/provn-sdk?label=Go&color=blue)](https://pkg.go.dev/github.com/provnai/provn-sdk/go) [![GitHub Release](https://img.shields.io/github/v/release/provnai/provn-sdk?label=GitHub%20Release&color=black)](https://github.com/provnai/provn-sdk/releases) [![GitHub Tags](https://img.shields.io/github/v/tag/provnai/provn-sdk?label=Tags&color=gray)](https://github.com/provnai/provn-sdk/tags) Provncloud SDK 是一个多语言工具包,用于确定性的 claim 序列化、Ed25519 签名、SHA-256 哈希处理和离线验证。 本仓库基于共享的 wire format 构建: - `Claim { data, metadata?, timestamp }` - `SignedClaim { claim, public_key, signature }` Rust crate 是参考实现。TypeScript 通过 WASM 使用 Rust,Python 通过 PyO3 使用 Rust,而 Go 和 Java 是匹配相同 canonical JSON 和签名行为的原生移植。 ## 快速入门 ### Python ``` pip install provn-sdk ``` ``` from provn_sdk import ProvnSDK import time sdk = ProvnSDK() keys = sdk.generate_keypair() claim = sdk.create_claim("My Critical Data", int(time.time()), None) signed = sdk.sign_claim(claim, keys["private_key"]) print(sdk.verify_claim(signed)) ``` ### TypeScript / Node.js ``` npm install @provncloud/sdk ``` ``` import { ProvnSDK, initSDK } from "@provncloud/sdk"; async function main() { await initSDK(); const sdk = new ProvnSDK(); const keys = sdk.generateKeypair(); sdk.setKeypair(keys); const claim = sdk.createClaimNow("My Critical Data"); const signed = sdk.signClaim(claim); console.log(sdk.verifyClaim(signed)); } main(); ``` ### Rust ``` cargo add provn-sdk ``` ``` use provn_sdk::{generate_keypair, sign_claim, verify_claim, Claim}; fn main() { let key = generate_keypair(); let claim = Claim::new("My Critical Data".to_string(), None); let signed = sign_claim(&claim, &key).unwrap(); println!("{}", verify_claim(&signed).unwrap()); } ``` ### Go ``` go get github.com/provnai/provn-sdk/go ``` ``` package main import ( "fmt" provnsdk "github.com/provnai/provn-sdk/go/pkg" ) func main() { keypair, _ := provnsdk.GenerateKeypair() claim := provnsdk.CreateClaimWithoutMetadata("My Critical Data") signed, _ := provnsdk.SignClaim(claim, keypair) isValid, _ := provnsdk.VerifyClaim(signed) fmt.Println(isValid) } ``` ## 安全说明 - SDK 对参与签名的 canonical JSON payload 强制执行 2 KB 的大小限制。 - 对于大型或敏感文档,请在本地进行哈希处理并对哈希值进行签名,而不是对原始内容进行签名。 - 在解析不受信任的 JSON 时,请优先使用严格的反序列化路径,例如 Go 的 `ParseSignedClaimStrict`。 - Python 会在遇到格式错误的验证输入时引发 `MalformedClaimError`,并且仅在出现纯粹的加密不匹配时返回 `False`。 ## 开源规范 - `spec/test-vectors.json` 中提交的密钥仅供测试使用的公开向量,不提供任何生产环境安全性。 - 构建的原生扩展、wheels、`.wasm` 输出、`dist/`、`target/` 以及跨语言的临时生成文件被有意排除在版本控制之外。 - 绝不应将任何生产环境的 API key、机密信息或私有凭证提交到此仓库中。 ## 开发 ``` python scripts/build-all.py build python scripts/build-all.py test python scripts/build-all.py clean ``` 有关贡献者指南,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## 文档 - [协议规范](spec/SPEC.md) - [用例](USE_CASES.md) - [更新日志](CHANGELOG.md) - [贡献](CONTRIBUTING.md) - [行为准则](CODE_OF_CONDUCT.md) ## 许可证 MIT。请参阅 [LICENSE](LICENSE)。
标签:CVE, Ed25519, JS文件枚举, Rust, 可视化界面, 可验证AI, 多语言绑定, 客户端SDK, 密码学, 手动系统调用, 数字签名, 日志审计, 网络流量审计, 逆向工具, 通知系统