liamdennehy/http-signatures-php

此包已弃用且不再维护。未建议替代包。

使用 HMAC 和 RSA 密钥签名和验证 PSR-7 HTTP 消息


README

Build Status Documentation Status

PHP 实现 签名 HTTP 消息 草案规范;允许对 PSR-7 消息 进行加密签名和验证。

特性

  • 根据 签名 HTTP 消息草案 IETF RFC 版本 10 签名 HTTP 消息
  • 使用 HMAC 签名和验证消息
  • 使用非对称密钥签名和验证消息
    • RSA, DSA, EC
  • 添加 Digest 标头,或在一个操作中签名时自动添加标头
  • 在验证签名时验证 Digest 标头

此库的完整文档可在 Read The Docs 找到

警告:此库的第 11 版集成了 phpseclib 在其 3.0 实现上的持续工作。如果遇到任何问题,请记录问题,但由于库尚未稳定或完全审查,建议谨慎行事,或保持在 v10 版本,直到 phpseclib 3.0 完成,并且此库的主要版本号提升。

简单用法

liamdennehy/http-signatures-php 添加到您的 composer.json

  • 假设消息是一个与 PSR-7 兼容的请求或响应。
  • 使用 Context 对象配置签名参数,并准备验证功能。
  • signWithDigest 函数将添加 Digest 标头并在新的 Signature 标头中数字签名消息。

在发送之前签名 PSR-7 请求 $message

  use HttpSignatures\Context;

  $context = new HttpSignatures\Context([
    'keys' => ['mykey' => file_get_contents('/path/to/privatekeyfile')],
    'algorithm' => 'rsa-sha256',
    'headers' => ['(request-target)', 'Date'],
  ]);

  $context->signer()->signWithDigest($message);

此库的其他用例的完整文档可在 Read The Docs 找到

贡献

欢迎提交拉取请求,如果您遇到任何问题,也欢迎提交 问题报告

注意:由于参考实现的 composer 依赖项,在 PHP 7.1 或通过使用命令(为可读性包装)手动删除不兼容的依赖项之前,本地开发仅适用于 PHP 7.1。

  composer remove --dev \
  nyholm/psr7 nyholm/psr7-server riswallsmith/buzz \
  endframework/zend-httphandlerrunner

许可证

HTTP Signatures PHP 库在 MIT 许可证 (MIT) 下授权。

该库的文档许可协议为Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)

详细信息请参阅LICENSE文件