Skip to content

Commit

Permalink
backup/restore, cleanup. move crypt.inc to diag_backup.php since it's…
Browse files Browse the repository at this point in the history
… only used there now.

(cherry picked from commit b145465)
  • Loading branch information
AdSchellevis authored and fichtner committed May 4, 2018
1 parent 9c2208b commit 24fd130
Show file tree
Hide file tree
Showing 4 changed files with 83 additions and 110 deletions.
1 change: 0 additions & 1 deletion plist
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
/usr/local/etc/inc/certs.inc
/usr/local/etc/inc/config.inc
/usr/local/etc/inc/console.inc
/usr/local/etc/inc/crypt.inc
/usr/local/etc/inc/filter.inc
/usr/local/etc/inc/filter.lib.inc
/usr/local/etc/inc/gwlb.inc
Expand Down
1 change: 0 additions & 1 deletion src/etc/inc/config.inc
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ openlog($g['product_id'], LOG_ODELAY, LOG_USER);
register_shutdown_function('closelog');

require_once("xmlparse.inc");
require_once("crypt.inc");
require_once("notices.inc");
require_once("legacy_bindings.inc");
require_once("certs.inc");
Expand Down
108 changes: 0 additions & 108 deletions src/etc/inc/crypt.inc

This file was deleted.

83 changes: 83 additions & 0 deletions src/www/diag_backup.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
/*
Copyright (C) 2014 Deciso B.V.
Copyright (C) 2004-2009 Scott Ullrich <sullrich@gmail.com>
Copyright (C) 2008 Shrew Soft Inc. <mgrooms@shrew.net>
Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>
All rights reserved.
Expand Down Expand Up @@ -35,6 +36,88 @@
require_once("rrd.inc");
require_once("system.inc");


function _crypt_data($val, $pass, $opt)
{
$result = '';

$file = tempnam('/tmp', 'php-encrypt');
file_put_contents("{$file}.dec", $val);

exec(sprintf(
'/usr/local/bin/openssl enc %s -aes-256-cbc -in %s.dec -out %s.enc -k %s',
escapeshellarg($opt),
escapeshellarg($file),
escapeshellarg($file),
escapeshellarg($pass)
));

if (file_exists("{$file}.enc")) {
$result = file_get_contents("{$file}.enc");
} else {
log_error('Failed to encrypt/decrypt data!');
}

@unlink($file);
@unlink("{$file}.dec");
@unlink("{$file}.enc");

return $result;
}

function encrypt_data(&$data, $pass)
{
return base64_encode(_crypt_data($data, $pass, '-e'));
}

function decrypt_data(&$data, $pass)
{
return _crypt_data(base64_decode($data), $pass, '-d');
}

function tagfile_reformat($in, &$out, $tag)
{
$out = "---- BEGIN {$tag} ----\n";

$size = 80;
$oset = 0;
while ($size >= 64) {
$line = substr($in, $oset, 64);
$out .= $line . "\n";
$size = strlen($line);
$oset += $size;
}

$out .= "---- END {$tag} ----\n";

return true;
}

function tagfile_deformat($in, &$out, $tag)
{
$btag_val = "---- BEGIN {$tag} ----";
$etag_val = "---- END {$tag} ----";

$btag_len = strlen($btag_val);
$etag_len = strlen($etag_val);

$btag_pos = stripos($in, $btag_val);
$etag_pos = stripos($in, $etag_val);

if (($btag_pos === false) || ($etag_pos === false)) {
return false;
}

$body_pos = $btag_pos + $btag_len;
$body_len = strlen($in);
$body_len -= $btag_len;
$body_len -= $etag_len + 1;

$out = substr($in, $body_pos, $body_len);

return true;
}

/**
* restore config section
* @param string $section_name config section name
Expand Down

0 comments on commit 24fd130

Please sign in to comment.