- Shipped
- July 14, 2026 at 8:34 PM UTC
- Author
- Kamo
- Commit
- e4d9163
The application posture needs the borrower's REAL Social, not a last-4 (a lender can't do anything with 4 digits). Borrower.ssnEncrypted existed but was never written — only ssnLastFour was populated. Now: - BorrowerDTO gains a WRITE_ONLY `ssn` (full) field — inbound only, never serialized back out; reads still expose only ssnLastFour. - BorrowerSectionService encrypts a supplied full SSN at rest (optional-injected SecretCipher — present in SecurityService, absent/booting-safe in contexts like KamoInitializer) and derives the last-4. A patch that omits SSN now preserves the stored value instead of wiping the last-4. - ssnEncrypted/itinEncrypted @Size(32) -> 256 so GCM-base64 ciphertext fits the existing 256-char column (no schema change).