You are here

function encrypt_file_key_settings_form_submit in Encrypt 7.2

Same name and namespace in other branches
  1. 7.3 plugins/key_providers/file.inc \encrypt_file_key_settings_form_submit()

Submit callback for the settings form.

1 string reference to 'encrypt_file_key_settings_form_submit'
encrypt_file_encrypt_key_providers in plugins/key_providers/file.inc
Implements MODULE_FILENAME_encrypt_key_providers().

File

plugins/key_providers/file.inc, line 119
Plugin definition for the File key provider.

Code

function encrypt_file_key_settings_form_submit($form, $form_state) {
  $directory = $form_state['values']['encrypt_key_providers_file_settings']['path'];
  $file = $directory . '/' . ENCRYPT_FILE_NAME;

  // Check for contents of file; do not write over the key.
  if (file_exists($file) && file_get_contents($file)) {
    return;
  }

  // Create a default key.
  $open_file = fopen($file, 'wb');
  $key = drupal_random_bytes(16);

  // Base64 encode the key, if required.
  if ($form_state['values']['encrypt_key_providers_file_settings']['method'] == 'base64_decode') {
    $key = base64_encode($key);
  }
  fwrite($open_file, $key);
  fclose($open_file);

  // Ensure that the file is only readable and writable by owner.
  drupal_chmod($file, 0600);
  drupal_set_message(t('The key file has been written to %file', array(
    '%file' => $file,
  )));
}