How mclovinsaco protects stored client fields, manages encryption keys, and records administrative actions with user identifiers and IP addresses.
Cryptography
Field-level encryption
Sensitive profile fields are encrypted with AES-256-GCM before storage. Each encryption call draws a fresh random IV, so identical values never produce identical ciphertext.
Keys are held outside the autoloaded settings. The key is read from the MCL_DATA_KEY constant when defined, otherwise from a non-autoloaded option, so it is never loaded on every request.
Key storage
Keys live in MCL_DATA_KEY or a non-autoloaded option, kept apart from profile records.
Random IV per write
Every encryption call generates a new initialization vector, so repeated values stay unlinkable.
Audit entries with IP
Each mcl_log entry stores the action, detail, user identifier, and IP address for review.
Retention and log review
Profile, invoice, and testimonial records are kept while an account stays active. Audit log entries are retained for review by administrators, who can check the action, user identifier, and IP address on each entry.