You are here

function encrypt_file_key_settings_form_submit in Encrypt 7.3

Same name and namespace in other branches
  1. 7.2 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 106
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');
  $new_key = md5(drupal_random_bytes(32));
  fwrite($open_file, $new_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,
  )));
}