Initial public commit
This commit is contained in:
+51
@@ -0,0 +1,51 @@
|
||||
//! # licensing-client
|
||||
//!
|
||||
//! Client library for the **licensing-service** — an open-source Bitcoin-paid
|
||||
//! software licensing server for Start9 boxes.
|
||||
//!
|
||||
//! This crate gives your app everything it needs to check license keys
|
||||
//! issued by a `licensing-service` instance:
|
||||
//!
|
||||
//! - **Offline verification** — validate a signed license key without any
|
||||
//! network call. You only need the issuing server's Ed25519 public key
|
||||
//! (typically embedded in your binary at build time).
|
||||
//! - **Online validation** — POST to the service's `/v1/validate` endpoint
|
||||
//! for live revocation checking and TOFU fingerprint binding.
|
||||
//! - **Purchase flow** — open a checkout URL for the buyer and poll for a
|
||||
//! newly-issued license key.
|
||||
//!
|
||||
//! ## 5-line integration example
|
||||
//!
|
||||
//! ```no_run
|
||||
//! use licensing_client::{Verifier, PublicKeyPem};
|
||||
//!
|
||||
//! let pubkey = PublicKeyPem::from_str(include_str!("../my_issuer.pub")).unwrap();
|
||||
//! let verifier = Verifier::new(pubkey);
|
||||
//! let result = verifier.verify("LIC1-...").expect("valid license");
|
||||
//! println!("license ok for product {}", result.product_id);
|
||||
//! ```
|
||||
//!
|
||||
//! The `online` feature (off by default) adds an async HTTP client for
|
||||
//! revocation checks and the purchase flow.
|
||||
|
||||
#![deny(missing_docs)]
|
||||
|
||||
pub mod error;
|
||||
pub mod key;
|
||||
#[cfg(feature = "online")]
|
||||
pub mod online;
|
||||
pub mod pubkey;
|
||||
pub mod verify;
|
||||
|
||||
pub use error::{Error, Result};
|
||||
pub use key::{
|
||||
LicenseKey, LicensePayload, FLAG_FINGERPRINT_BOUND, FLAG_TRIAL, KEY_VERSION,
|
||||
KEY_VERSION_V1, KEY_VERSION_V2,
|
||||
};
|
||||
pub use pubkey::PublicKeyPem;
|
||||
pub use verify::{Verifier, VerifyOk};
|
||||
|
||||
#[cfg(feature = "online")]
|
||||
pub use online::{
|
||||
Client, MachineResponse, PollResponse, PurchaseSession, ValidateRequest, ValidateResponse,
|
||||
};
|
||||
Reference in New Issue
Block a user