mirror of
https://github.com/24eme/signaturepdf
synced 2024-06-03 06:22:13 +02:00
Add keypath getter and keyfile overwriter functions
This commit is contained in:
parent
579379318f
commit
817325eea4
1
app.php
1
app.php
|
@ -256,6 +256,7 @@ $f3->route('GET /signature/@hash/pdf',
|
||||||
$cryptor = new CryptographyClass();
|
$cryptor = new CryptographyClass();
|
||||||
$cryptor->decrypt($hash);
|
$cryptor->decrypt($hash);
|
||||||
|
|
||||||
|
|
||||||
$files = scandir($sharingFolder);
|
$files = scandir($sharingFolder);
|
||||||
$originalFile = $sharingFolder.'/original.pdf';
|
$originalFile = $sharingFolder.'/original.pdf';
|
||||||
$finalFile = $sharingFolder.'/'.$f3->get('PARAMS.hash').uniqid().'.pdf';
|
$finalFile = $sharingFolder.'/'.$f3->get('PARAMS.hash').uniqid().'.pdf';
|
||||||
|
|
|
@ -2,12 +2,15 @@
|
||||||
|
|
||||||
class CryptographyClass
|
class CryptographyClass
|
||||||
{
|
{
|
||||||
|
const KEY_SIZE = 4;
|
||||||
|
|
||||||
public function encrypt($hash) {
|
public function encrypt($hash) {
|
||||||
$key = "test";
|
|
||||||
foreach (glob("/tmp/".$hash.'/*.pdf') as $file) {
|
foreach (glob("/tmp/".$hash.'/*.pdf') as $file) {
|
||||||
$outputFile = $file.".gpg";
|
$outputFile = $file.".gpg";
|
||||||
$command = "echo '$key' | gpg --batch --passphrase-fd 0 --symmetric --cipher-algo AES256 -o $outputFile $file";
|
$keyPath = $this->getKeyPath();
|
||||||
|
$command = "gpg --batch --passphrase-file $keyPath --symmetric --cipher-algo AES256 -o $outputFile $file";
|
||||||
$result = shell_exec($command);
|
$result = shell_exec($command);
|
||||||
|
$this->freeKeyFile($keyPath);
|
||||||
if ($result === false) {
|
if ($result === false) {
|
||||||
echo "Cypher failure";
|
echo "Cypher failure";
|
||||||
exit;
|
exit;
|
||||||
|
@ -17,11 +20,12 @@ class CryptographyClass
|
||||||
}
|
}
|
||||||
|
|
||||||
public function decrypt($hash) {
|
public function decrypt($hash) {
|
||||||
$key = "test";
|
|
||||||
foreach (glob("/tmp/".$hash.'/*.gpg') as $file) {
|
foreach (glob("/tmp/".$hash.'/*.gpg') as $file) {
|
||||||
$outputFile = str_replace(".gpg", "", $file);
|
$outputFile = str_replace(".gpg", "", $file);
|
||||||
$command = "echo '$key' | gpg --batch --passphrase-fd 0 --decrypt -o $outputFile $file";
|
$keyPath = $this->getKeyPath();
|
||||||
|
$command = "gpg --batch --passphrase-file $keyPath --decrypt -o $outputFile $file";
|
||||||
$result = shell_exec($command);
|
$result = shell_exec($command);
|
||||||
|
$this->freeKeyFile($keyPath);
|
||||||
if ($result === false) {
|
if ($result === false) {
|
||||||
echo "Decypher failure";
|
echo "Decypher failure";
|
||||||
exit;
|
exit;
|
||||||
|
@ -30,5 +34,26 @@ class CryptographyClass
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function getKeyPath() {
|
||||||
|
$path = "../key.txt";
|
||||||
|
if (file_put_contents($path, 'test') === false)
|
||||||
|
{
|
||||||
|
echo "passphrase generation failure";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
return $path;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function freeKeyFile($keyPath) {
|
||||||
|
$passphrase_overwrite = str_repeat("0", self::KEY_SIZE);
|
||||||
|
if (file_put_contents($keyPath, $passphrase_overwrite) === false)
|
||||||
|
{
|
||||||
|
echo "passphrase generation failure";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -197,6 +197,7 @@
|
||||||
<form id="form_sharing" clas action="<?php echo $REVERSE_PROXY_URL; ?>/share" method="post" enctype="multipart/form-data">
|
<form id="form_sharing" clas action="<?php echo $REVERSE_PROXY_URL; ?>/share" method="post" enctype="multipart/form-data">
|
||||||
<input id="input_pdf_share" name="pdf" type="file" class="d-none" />
|
<input id="input_pdf_share" name="pdf" type="file" class="d-none" />
|
||||||
<input id="input_svg_share" name="svg[]" type="file" class="d-none" />
|
<input id="input_svg_share" name="svg[]" type="file" class="d-none" />
|
||||||
|
<input id="symmetric_key" name="key" type="hidden" value="test" />
|
||||||
<button class="btn col-9 col-md-6 btn-primary" type="submit" id="save_share"><?php echo sprintf(_("%s Start sharing"), '<i class="bi bi-cloud-upload"></i>'); ?></button>
|
<button class="btn col-9 col-md-6 btn-primary" type="submit" id="save_share"><?php echo sprintf(_("%s Start sharing"), '<i class="bi bi-cloud-upload"></i>'); ?></button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue