feimx/csd

此软件包允许您加密、验证并将 .cer 和 .key 文件转换为 .pem,用于墨西哥的电子发票

v1.0 2018-04-16 21:25 UTC

This package is auto-updated.

Last update: 2024-09-20 04:35:27 UTC


README

此软件包允许您加密、验证并将 .cer 和 .key 文件转换为 .pem,用于墨西哥的电子发票。

简介

Csd 提供了一种机制,可以将您的 .cer 和 .key 文件转换为 .pem,这是在墨西哥进行电子发票所必需的。

同时,它还允许您使用您需要的密码将密钥 (.key) 加密为 .der。

require 'vendor/autoload.php';
use JorgeAndrade\Csd;
use JorgeAndrade\Exceptions\CsdException;

$cer = getcwd() . "/csds/aad990814bp7_1210261233s.cer";
$key = getcwd() . "/csds/aad990814bp7_1210261233s.key";
$rfc = "AAD990814BP7";
$pass = "12345678a";

$validar = new Csd($cer, $key, $rfc, $pass, $path = getcwd() . "/csds/");

try {
    $validar->convertCerToPem();
    $validar->convertKeyToPem();

} catch (CsdException $e) {
    var_dump($e->getMessage());
}

安装

只需使用 composer 安装软件包

composer require jorgeandrade/csd

composer 安装完成后,只需导入软件包并创建一个新的实例,传入相应的参数即可

require 'vendor/autoload.php';

use JorgeAndrade\Csd;
use JorgeAndrade\Exceptions\CsdException;

$cer = getcwd() . "/csds/aad990814bp7_1210261233s.cer";
$key = getcwd() . "/csds/aad990814bp7_1210261233s.key";
$rfc = "AAD990814BP7";
$pass = "12345678a"; //contraseña de la llave privada
$path = getcwd() . "/csds/"; //este parametro es opcional, por defecto usa **getcwd() . "/csds/"**

$validar = new Csd($cer, $key, $rfc, $pass, $path);

使用

转换、加密、验证和获取操作非常简单。如果出现错误,函数将抛出类型为 JorgeAndrade\Exceptions\CsdException 的异常。

将 CER 转换为 PEM

 $validar->convertCerToPem();

将 KEY 转换为 PEM

 $validar->convertKeyToPem();

验证 csd 的有效期

如果一切顺利,将返回一个数组,其中包含证书的有效期起始日期和结束日期,每个日期都扩展了 DateTime 类。

 $periodo = $validar->verifyValidityPeriod();

 var_dump($periodo);

 /**
array(2) {
  ["fecha_inicial"]=>
  object(DateTime)#4 (3) {
    ["date"]=>
    string(26) "2012-10-26 19:22:43.000000"
    ["timezone_type"]=>
    int(2)
    ["timezone"]=>
    string(3) "GMT"
  }
  ["fecha_final"]=>
  object(DateTime)#5 (3) {
    ["date"]=>
    string(26) "2016-10-26 19:22:43.000000"
    ["timezone_type"]=>
    int(2)
    ["timezone"]=>
    string(3) "GMT"
  }
}
 **/

将 KEY.PEM 加密为 DER

要加密,首先需要将密钥转换为 pem

$validar->convertKeyToPem();
$validar->encryptPemInToDer($pass);

验证 CSD 是否有效

$check = $validar->verifyValidCsd(); //(bool)

获取证书编号

$no_certificado = $validar->getNoCertificado();

许可证

Csd 是一个开源软件项目,遵循 MIT 许可证