-
-
Notifications
You must be signed in to change notification settings - Fork 35
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* first update to support timestamp * Add last parameter for chain certs Add last parameter for chain certs * Add last parameter for support chain certs * expand length to embedded tsa * update * add ltv and timestamp * Support Timestamp and LTV And improve signature process . no need to write/read/parse tempfile in signing process. * Update PDFDoc.php * Update PDFDoc.php * Update pdfsign.php * Update CMS.php * removed ex test and ex log * Update PDFDoc.php * Update PDFUtilFnc.php * Update CMS.php remove logging function, use sapp default logging function * aligned classes structure migrate asn1 class functions to dynamic functions * remove example * Update pdfsign.php -change some message text. -set default $ocspUrl & $crl to prevent php notice message append in pdf result * update args & text * Update asn1.php * Update x509.php prevent php notice msg when ocsp server send not common resp status * Update CMS.php prevent same extracerts certificate (duplicate cert) to embeded * Fix example scripts * Small fixes * calculate __SIGNATURE_MAX_LENGTH calculated __SIGNATURE_MAX_LENGTH exactly. no longer waste signature space with zero padding. * merged pdfsignltv.php & pdfsigntsa.php * Update CMS.php - support path validation (unlimited) - removed ocsp, crl and issuer parameter (because it is difficult to implement if the certificate has a long path) * merged * Support <extracerts.pem> * Update pdfsignlts.php * Create pdfsigntsa.php * Update asn1.php * minor bugs * minor bugs --------- Co-authored-by: erikn69 <[email protected]> Co-authored-by: Carlos de Alfonso Laguna <[email protected]>
- Loading branch information
1 parent
5690e90
commit 37ff265
Showing
11 changed files
with
2,009 additions
and
56 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -53,4 +53,4 @@ | |
} | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -88,4 +88,3 @@ | |
} | ||
} | ||
} | ||
?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
#!/usr/bin/env php | ||
<?php | ||
/* | ||
This file is part of SAPP | ||
Simple and Agnostic PDF Parser (SAPP) - Parse PDF documents in PHP (and update them) | ||
Copyright (C) 2020 - Carlos de Alfonso ([email protected]) | ||
This program is free software: you can redistribute it and/or modify | ||
it under the terms of the GNU Lesser General Public License as published by | ||
the Free Software Foundation, either version 3 of the License, or | ||
(at your option) any later version. | ||
This program is distributed in the hope that it will be useful, | ||
but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
GNU General Public License for more details. | ||
You should have received a copy of the GNU Lesser General Public License | ||
along with this program. If not, see <https://www.gnu.org/licenses/>. | ||
*/ | ||
|
||
use ddn\sapp\PDFDoc; | ||
|
||
require_once('vendor/autoload.php'); | ||
|
||
if ($argc < 3) | ||
fwrite(STDERR, sprintf("usage: %s <filename> <certfile> <tsaUrl>\n | ||
tsaUrl - optional TSA server url to timestamp pdf document. | ||
", $argv[0])); | ||
else { | ||
if (!file_exists($argv[1])) | ||
fwrite(STDERR, "failed to open file " . $argv[1]); | ||
else { | ||
// Silently prompt for the password | ||
fwrite(STDERR, "Password: "); | ||
system('stty -echo'); | ||
$password = trim(fgets(STDIN)); | ||
system('stty echo'); | ||
fwrite(STDERR, "\n"); | ||
|
||
$tsa = $argv[3] ?? null; | ||
if (empty($tsa)) { | ||
// Silently prompt for the timestamp autority | ||
fwrite(STDERR, "TSA(\"http://timestamp.digicert.com\") type \"no\" to bypass tsa: "); | ||
system('stty -echo'); | ||
$tsa = trim(fgets(STDIN)) ?: "http://timestamp.digicert.com"; | ||
system('stty echo'); | ||
fwrite(STDERR, "\n"); | ||
} | ||
|
||
$file_content = file_get_contents($argv[1]); | ||
$obj = PDFDoc::from_string($file_content); | ||
|
||
if ($obj === false) | ||
fwrite(STDERR, "failed to parse file " . $argv[1]); | ||
else { | ||
if (!$obj->set_signature_certificate($argv[2], $password)) | ||
fwrite(STDERR, "the certificate is not valid"); | ||
else { | ||
if ($tsa != 'no') { | ||
$obj->set_tsa($tsa); | ||
} | ||
$obj->set_ltv(); | ||
$docsigned = $obj->to_pdf_file_s(); | ||
if ($docsigned === false) | ||
fwrite(STDERR, "could not sign the document"); | ||
else | ||
echo $docsigned; | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
#!/usr/bin/env php | ||
<?php | ||
/* | ||
This file is part of SAPP | ||
Simple and Agnostic PDF Parser (SAPP) - Parse PDF documents in PHP (and update them) | ||
Copyright (C) 2020 - Carlos de Alfonso ([email protected]) | ||
This program is free software: you can redistribute it and/or modify | ||
it under the terms of the GNU Lesser General Public License as published by | ||
the Free Software Foundation, either version 3 of the License, or | ||
(at your option) any later version. | ||
This program is distributed in the hope that it will be useful, | ||
but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
GNU General Public License for more details. | ||
You should have received a copy of the GNU Lesser General Public License | ||
along with this program. If not, see <https://www.gnu.org/licenses/>. | ||
*/ | ||
|
||
use ddn\sapp\PDFDoc; | ||
|
||
require_once('vendor/autoload.php'); | ||
|
||
if ($argc < 3) | ||
fwrite(STDERR, sprintf("usage: %s <filename> <certfile> <tsaUrl>\n | ||
tsaUrl - optional TSA server url to timestamp pdf document. | ||
", $argv[0])); | ||
else { | ||
if (!file_exists($argv[1])) | ||
fwrite(STDERR, "failed to open file " . $argv[1]); | ||
else { | ||
// Silently prompt for the password | ||
fwrite(STDERR, "Password: "); | ||
system('stty -echo'); | ||
$password = trim(fgets(STDIN)); | ||
system('stty echo'); | ||
fwrite(STDERR, "\n"); | ||
|
||
$tsa = $argv[3] ?? null; | ||
if (empty($tsa)) { | ||
// Silently prompt for the timestamp autority | ||
fwrite(STDERR, "TSA(\"http://timestamp.digicert.com\"): "); | ||
system('stty -echo'); | ||
$tsa = trim(fgets(STDIN)) ?: "http://timestamp.digicert.com"; | ||
system('stty echo'); | ||
fwrite(STDERR, "\n"); | ||
} | ||
|
||
$file_content = file_get_contents($argv[1]); | ||
$obj = PDFDoc::from_string($file_content); | ||
|
||
if ($obj === false) | ||
fwrite(STDERR, "failed to parse file " . $argv[1]); | ||
else { | ||
if (!$obj->set_signature_certificate($argv[2], $password)) | ||
fwrite(STDERR, "the certificate is not valid"); | ||
else { | ||
$obj->set_tsa($tsa); | ||
$docsigned = $obj->to_pdf_file_s(); | ||
if ($docsigned === false) | ||
fwrite(STDERR, "could not sign the document"); | ||
else | ||
echo $docsigned; | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -56,4 +56,3 @@ | |
} | ||
} | ||
} | ||
?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.