Sign delta bytes for a specific device and sequence number. HMAC input canonical layout: `delta_bytes || user_id.to_le_bytes(8) || device_id.to_le_bytes(8) || seq_no.to_le_bytes(8)`
(
&self,
user_id: u64,
device_id: u64,
seq_no: u64,
delta_bytes: &[u8],
)
| 203 | /// HMAC input canonical layout: |
| 204 | /// `delta_bytes || user_id.to_le_bytes(8) || device_id.to_le_bytes(8) || seq_no.to_le_bytes(8)` |
| 205 | pub fn sign( |
| 206 | &self, |
| 207 | user_id: u64, |
| 208 | device_id: u64, |
| 209 | seq_no: u64, |
| 210 | delta_bytes: &[u8], |
| 211 | ) -> Result<[u8; SIGNATURE_SIZE]> { |
| 212 | let key = self.device_key(user_id, device_id)?; |
| 213 | Ok(compute_hmac(&key, user_id, device_id, seq_no, delta_bytes)) |
| 214 | } |
| 215 | |
| 216 | /// Verify a delta signature. Returns Ok(()) if valid. |
| 217 | /// |