/** * checkCerts * @param string $cnpj * @param string $pathCertsFiles * @param string $certPfxName * @param string $certPassword * @return array */ public static function checkCerts($cnpj = '', $pathCertsFiles = '', $certPfxName = '', $certPassword = '') { $flag = true; $msg = ''; if (strlen($cnpj) != 14) { $flag = $flag && false; $msg .= "CNPJ incorreto! {$cnpj} \n"; } if (!is_dir($pathCertsFiles)) { $flag = $flag && false; $msg .= "Diretório não localizado! {$pathCertsFiles} \n"; } if (substr($pathCertsFiles, -1) !== DIRECTORY_SEPARATOR) { $pathCertsFiles .= DIRECTORY_SEPARATOR; } try { $cert = new Pkcs12($pathCertsFiles, $cnpj); $flag = $cert->loadPfxFile($pathCertsFiles . $certPfxName, $certPassword); } catch (InvalidArgumentException $exc) { $flag = false; $msg .= $exc->getMessage(); } catch (RuntimeException $exc) { $flag = false; $msg .= $exc->getMessage(); } if ($msg == '') { $msg = 'Certificado Validado, arquivos PEM criados na pasta.'; } return array('cert' => array('status' => $flag, 'msg' => $msg)); }
public function testAdicionarCadeiaCertificados() { $aCerts[] = dirname(dirname(dirname(__FILE__))) . '/fixtures/certs/ACCertisignG6_v2.cer'; $aCerts[] = dirname(dirname(dirname(__FILE__))) . '/fixtures/certs/ACCertisignMultiplaG5.cer'; $aCerts[] = dirname(dirname(dirname(__FILE__))) . '/fixtures/certs/ACRaizBrasileira_v2.cer'; $cert = $this->priPem . "\r\n" . $this->pubPem . "\r\n" . $this->accg6 . "\r\n" . $this->accmg5 . "\r\n" . $this->acraizbr; $cert = str_replace(array("\r", "\n"), '', $cert); $cnpj = '99999090910270'; $pathCerts = ''; $ignoreValidCert = true; $pkcs = new Pkcs12($pathCerts, $cnpj, $this->pubPem, $this->priPem, '', $ignoreValidCert); $pkcs->aadChain($aCerts); $cadeiacompleta = str_replace(array("\r", "\n"), '', $pkcs->certKey); $this->assertEquals($cadeiacompleta, $cert); }
/** * Executa a assinatura digital do xml * Essa assinatura depende da classe Pkcs12.php que está no repositório * nfephp-org/sped-common/Certificates */ public function assina() { $this->xml = $this->pkcs->signXML($this->xml, $this->signTag, 'id', $this->objConfig->signAlgorithm); }