docs: async def get_decryption_aes_key(self, key: bytes, material_description: Dict[str, Any]) -> bytes:
          """
          Get decryption key for a given S3 object
  
          :param key: Base64 decoded version of x-amz-key
          :param material_description: JSON decoded x-amz-matdesc
          :return: Raw AES key bytes
          """
  
          # So it seems when java just calls Cipher.getInstance('AES') it'll default to AES/ECB/PKCS5Padding
          aesecb = self._cipher.decryptor()
          padded_result = await self._loop.run_in_executor(None, lambda: (aesecb.update(key) + aesecb.finalize()))
  
          unpadder = PKCS7(AES.block_size).unpadder()
          result = await self._loop.run_in_executor(None, lambda: (unpadder.update(padded_result) + unpadder.finalize()))
  
          return result