e2e-protection 0.2.0

Pluggable End-to-End (E2E) protection profiles. First class support for AUTOSAR P11 (CAN) and P22 (CAN FD).
Documentation

e2e-protection

End-to-End protection library focused on E2E usage (not a CRC toolkit).

  • Profiles:
    • P11 (CAN): payload | data_id(2) | counter(1) | crc8(1) – 8-byte frames
    • P22 (CAN FD): payload | length(2) | data_id(2) | counter(1) | crc(N) – up to 64B
  • Session API: enforces counter policy (monotonic + rollover).

Quick start

use e2e_protection::{E2eSession, CounterPolicy, E2eProfile};
use e2e_protection::p11::Profile11;

let mut tx = E2eSession::new(
  Profile11::preset_sae_j1850(0x0042),
  CounterPolicy::MonotonicRollover { bits: 8, step: 1 },
);
let frame = tx.wrap(&[0x12, 0x34, 0x56, 0x78])?;

let mut rx = E2eSession::new(
  Profile11::preset_sae_j1850(0x0042),
  CounterPolicy::MonotonicRollover { bits: 8, step: 1 },
);
let payload = rx.unwrap(&frame)?;
assert_eq!(payload, &[0x12, 0x34, 0x56, 0x78]);