I don't know about 7.4, but this works in 7.6 at least:

  Crypto.CBC cbc = Crypto.CBC(Crypto.AES);
  cbc->set_encrypt_key(Stdio.read_file(argv[1]));
  string iv = Crypto.Random.random_string(cbc->block_size());
  cbc->set_iv(iv);
  string cleardata = Stdio.read_file(argv[2]);
  int pad = strlen(cleardata)%cbc->block_size();
  if(pad) {
    pad = cbc->block_size()-pad;
    cleardata += "\0"*pad;
  }
  string cryptdata = "";
  foreach(cleardata / (cbc->block_size()*4096.0), string blk)
    cryptdata += cbc->crypt(blk);

The reason for the loop is that the crypto module will crash if you
try to encrypt too much data at once...
  • AES... cschalkwijk
    • ... Marcus Comstedt (ACROSS) (Hail Ilpalazzo!) @ Pike (-) developers forum
      • ... cschalkwijk
      • ... cschalkwijk
        • ... cschalkwijk
          • ... cschalkwijk

Reply via email to