fn process_buffer(&mut self) {
        let sha = self.sha.borrow();

        cfg_if::cfg_if! {
            if #[cfg(esp32)] {
                if self.first_run {
                    A::start(&sha.sha);
                    self.first_run = false;
                } else {
                    A::r#continue(&sha.sha);
                }
            } else {
                if self.first_run {
                    // Set SHA_START_REG
                    // FIXME: raw register access
                    sha.regs().start().write(|w| unsafe { w.bits(1) });
                    self.first_run = false;
                } else {
                    // SET SHA_CONTINUE_REG
                    // FIXME: raw register access
                    sha.regs().continue_().write(|w| unsafe { w.bits(1) });
                }
            }
        }
    }
Processes the data buffer and updates the hash state.

This method is platform-specific and differs for ESP32 and non-ESP32
platforms.
esp-hal/src/sha.rs