`encryptable?` is more answering the question whether an empty-string should be accepted.  it checks if it's empty-string and strict_mode, and returns false if both, true otherwise.  The actual special-case handling of the empty string to avoid the AES library error should happen here.

aes.update requires non-empty data be passed in, so when we do allow empty-string (strict_mode: false), we need to ensure we don't attempt to encrypt it.