function encrypt_file_key_settings_form_submit in Encrypt 7.2
Same name and namespace in other branches
- 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,
)));
}