Constantine: Automatic Side-Channel Resistance Using Efficient Control and Data Flow Linearization