setasign / setapdf-signer-addon-google-cloud-kms
一个用于Google Cloud密钥管理系统(KMS)的SetaPDF-Signer组件签名模块。
v1.1.1
2023-03-15 08:45 UTC
Requires
- php: >=7.1
- google/cloud-kms: ^1.11
- setasign/setapdf-signer: ^2.40
Requires (Dev)
- phpseclib/phpseclib: ^2.0
README
本软件包提供了一个用于SetaPDF-Signer组件的模块,允许您使用Google Cloud密钥管理系统在纯PHP中为PDF文档进行数字签名。
要求
本软件包使用官方的Google Cloud KMS客户端库与KMS进行通信。您需要适当的凭证。
您还需要与存储的密钥相关的X.509证书。为了测试目的创建自签名证书或为您选择的证书颁发机构创建CSR,您可以使用我们准备的工具此处。
本软件包在PHP >= 7.1上进行开发和测试。可以在此处找到SetaPDF-Signer组件的要求。
安装
将以下内容添加到您的composer.json中
{ "require": { "setasign/setapdf-signer-addon-google-cloud-kms": "^1.0" }, "repositories": [ { "type": "composer", "url": "https://www.setasign.com/downloads/" } ] }
然后执行composer update
。您需要定义repository
以评估对SetaPDF-Signer组件的依赖(有关更多详细信息,请参阅此处)。
Setasign存储库需要认证数据:您可以使用您的setasign.com账户凭证,该账户已分配给您许可。在Composer运行过程中将询问您此信息。有关使用Composer进行认证的更多选项,请参阅此处。
用法
本软件包中所有类都位于命名空间setasign\SetaPDF\Signer\Module\GoogleCloudKMS
中。
模块类
这是主签名模块,可以与SetaPDF-Signer组件一起使用。其构造函数需要5个参数
$projectId
- 您的项目ID$locationId
- 您的位置ID$keyRingId
- 您的密钥环ID$keyId
- 您的密钥ID$versionId
- 您的版本ID$kmsClient
- 可选;例如,可以通过代码进行认证
一个简单的完整签名过程如下所示
$googleCloudKmsModule = new setasign\SetaPDF\Signer\Module\GoogleCloudKMS\Module( $projectId, $locationId, $keyRingId, $keyId, $versionId ); $cert = file_get_contents('your-cert.crt'); $googleCloudKmsModule->setCertificate($cert); $googleCloudKmsModule->setDigest($digest); // the file to sign $fileToSign = __DIR__ . '/Laboratory-Report.pdf'; // create a writer instance $writer = new SetaPDF_Core_Writer_File('signed.pdf'); // create the document instance $document = SetaPDF_Core_Document::loadByFilename($fileToSign, $writer); // create the signer instance $signer = new SetaPDF_Signer($document); $signer->sign($googleCloudKmsModule);
确保您传递的$digest
值与KMS中配置的密钥相同。
许可证
本软件包是开源软件,根据MIT许可证许可。