setasign/setapdf-signer-addon-google-cloud-kms

一个用于Google Cloud密钥管理系统(KMS)的SetaPDF-Signer组件签名模块。

v1.1.1 2023-03-15 08:45 UTC

This package is auto-updated.

Last update: 2024-09-22 08:17:23 UTC


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进行认证的更多选项,请参阅此处

遵循Google Cloud KMS认证说明

用法

本软件包中所有类都位于命名空间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许可证许可。