andreygrin / xades-tools
使用XAdES对文件、XML内容进行签名并验证签名
1.0.0
2024-09-24 07:38 UTC
Requires
- php: ^8.1
- ext-dom: *
- ext-json: *
- ext-openssl: *
- krowinski/bcmath-extended: ^6.0
- symfony/uid: >=5.4
Requires (Dev)
- phpunit/phpunit: ^9.5
- symfony/var-dumper: >=5.4
This package is auto-updated.
Last update: 2024-09-24 07:42:58 UTC
README
更新版本,包括证书序列号和颁发者详细信息
API
签名
use XadesTools\CertificateFactory; use XadesTools\Signature; $cert = CertificateFactory::string( $privateKeyContents, // .pem $certificateContents, // .crt $parivateKeyPassword // string ); $this->signer = new Signature($cert); $this->signer->signXml('xmlContent') // returns signature, you should add it to the xml file the way you need to have it there.
验证,内容提取
use XadesTools\Verification; $xades = new Verification(); $result = $xades->verifyFile($pathToXadesFile); if ($result) { $content = $res->content; // binary content or plain text for xml files $signTime = $res->dateSigned; // DateTime object $signingSubject = $res->signingSubject; // array } else { // Signature does not match signed content }
命令行使用
签名文件
php bin/sign.php file cert pass [embed] [load-content]
在哪里
file
- 我们想要签名的文件的路径。签名将在同一文件夹中创建,扩展名为 .XAdEScert
- PKCS#12格式(.p12)的证书 - 包含私钥pass
- p12文件的密码embed
- 如果为true,签名将嵌入给定文件load-content
- 将文件内容加载到变量中并将其作为嵌入对象进行签名
结果在 file.XAdES
中,位于给定 file
的同一目录中
验证
php src/verify.php file [verbose]
在哪里
file
是 .XAdES 文件的路径verbose
如果为true,则打印关于签名时间的附加信息load-content
- 将文件内容加载到变量中并将其作为嵌入对象进行验证(不能依赖于磁盘上的文件)
验证给定XAdES文件中的内容,如果一切通过,则打印 OK
,否则打印错误信息。
从XAdES文件中提取文件
php src/extract.php file output
在哪里
file
是包含嵌入对象的 .XAdES 文件的路径output
输出文件的路径