Flexible And Lightweight Cryptographic Engines For Constrained Systems