adapik / phpasn1
一个PHP框架,允许您使用ITU-T X.690编码规则对任意ASN.1结构进行编码和解码。
2.3.1
2024-03-22 13:52 UTC
Requires
- php: >=7.2
- ext-gmp: *
Requires (Dev)
- php-coveralls/php-coveralls: ^2.4
- phpunit/phpunit: ^8.0
Suggests
- php-curl: For loading OID information from the web if they have not bee defined statically
This package is auto-updated.
Last update: 2024-09-22 14:57:31 UTC
README
一个PHP框架,允许您使用ASN.1结构ITU-T X.690编码规则进行编码和解码。这种编码在X.509 PKI环境或异构计算机系统之间的通信中非常常用。
API允许您将ASN.1结构编码成二进制数据,例如证书签名请求(CSR)、X.509证书或证书吊销列表(CRL)。PHPASN1还可以读取BER编码的二进制数据到独立的PHP对象中,用户可以对这些对象进行操作,然后再次进行编码。
现在可以在CHANGELOG.md中找到变更日志。
依赖项
PHPASN1至少需要PHP 7
和gmp
扩展。
安装
安装此库的首选方式是依赖于Composer
$ composer require Adapik/phpasn1
使用方法
编码ASN.1结构
PHPASN1为每个实现的ASN.1通用类型提供了一个类。构造函数应该是相当直观的,因此您应该不会有太大困难开始使用。所有数据都将使用DER编码进行编码
use FG\ASN1\Universal\Integer; use FG\ASN1\Universal\Boolean; use FG\ASN1\Universal\Enumerated; use FG\ASN1\Universal\IA5String; use FG\ASN1\Universal\ObjectIdentifier; use FG\ASN1\Universal\PrintableString; use FG\ASN1\Universal\Sequence; use FG\ASN1\Universal\Set; use FG\ASN1\Universal\NullObject; $integer = Integer::create(123456); $boolean = Boolean::create(true); $enum = Enumerated::create(1); $asnNull = NullObject::create(); $objectIdentifier1 = ObjectIdentifier('1.2.250.1.16.9'); $printableString = PrintableString::createFromString('Foo bar'); $sequence = Sequence::create([$integer, $boolean, $enum, $ia5String]); $set = Set([$sequence, $asnNull, $objectIdentifier1, $objectIdentifier2, $printableString]); $myBinary = $sequence->getBinary(); $myBinary .= $set->getBinary(); echo base64_encode($myBinary);
解码二进制数据
解码BER编码的二进制数据与编码一样简单
use FG\ASN1\Object; $base64String = ... $binaryData = base64_decode($base64String); $asnObject = Object::fromBinary($binaryData); // do stuff
您可以使用此函数确保您的数据格式与您预期的一致。
感谢
至今的所有贡献者!
许可协议
此库在MIT许可协议下分发。