Skip to main content

zlicenser_protocol/message/
request.rs

1// Field order is the wire format. Do not reorder without a protocol version bump.
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
6pub struct LicenseRequest {
7    pub protocol_version: u16,
8    pub request_id: [u8; 16],
9    pub product_id: String,
10    pub product_version: String,
11    pub identity: Identity,
12    pub fingerprint_commitment: [u8; 32],
13    pub customer_public_key: [u8; 32],
14    pub timestamp: u64,
15}
16
17#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
18pub struct Identity {
19    pub name: String,
20    pub email: String,
21    #[serde(skip_serializing_if = "Option::is_none")]
22    pub organization: Option<String>,
23}