void CipherAES::Encrypt (byte *data) const { #ifdef TC_AES_HW_CPU if (IsHwSupportAvailable()) aes_hw_cpu_encrypt (ScheduledKey.Ptr(), data); else #endif aes_encrypt (data, data, (aes_encrypt_ctx *) ScheduledKey.Ptr()); }
void EncipherBlock(int cipher, void *data, void *ks) { #ifdef GST_WINDOWS_BOOT_AES if (IsAesHwCpuSupported()) aes_hw_cpu_encrypt ((byte *) ks, data); else aes_encrypt (data, data, ks); #elif defined (GST_WINDOWS_BOOT_SERPENT) serpent_encrypt (data, data, ks); #elif defined (GST_WINDOWS_BOOT_TWOFISH) twofish_encrypt (ks, data, data); #endif }
void EncipherBlock(int cipher, void *data, void *ks) { switch (cipher) { case AES: // In 32-bit kernel mode, due to KeSaveFloatingPointState() overhead, AES instructions can be used only when processing the whole data unit. #if (defined (_WIN64) || !defined (TC_WINDOWS_DRIVER)) && !defined (TC_WINDOWS_BOOT) if (IsAesHwCpuSupported()) aes_hw_cpu_encrypt (ks, data); else #endif aes_encrypt (data, data, ks); break; case TWOFISH: twofish_encrypt (ks, data, data); break; case SERPENT: serpent_encrypt (data, data, ks); break; default: TC_THROW_FATAL_EXCEPTION; // Unknown/wrong ID } }