Summary
- Add compute_cid for CIDv1 (dag-cbor, sha-256) computation from signed op CBOR bytes
- Add build_did_plc_rotation_op for building rotation ops with flexible params and external signer callback
- Add verify_plc_operation as a generalized verifier handling both genesis and rotation ops with multi-key support
- Add parse_audit_log / diff_audit_logs for plc.directory audit log parsing and diffing
- Promote PlcService to public; new types: SignedPlcOperation, VerifiedPlcOp, AuditEntry
Test plan
- 14 new tests (62 total), all passing
- CID format validation (multibase prefix, base32 charset, CIDv1 structure)
- Rotation op: non-null prev, valid CID, signing error propagation
- Generalized verifier: genesis ops, rotation ops, wrong key rejection, multi-key iteration, empty key list
- Audit log: parsing, invalid JSON rejection, empty arrays, diffing (new entries, no new, empty cache)
Closes MM-158