Subversion Repositories Sigmater

Rev

Blame | Last modification | View Log | Download | RSS feed

<?
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
// COSTANTI DA RIDEFINIRE
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
//define('FILE_CA', '/opt/web/php/sigmater/sec/Cert_CA.pem');
define('FILE_CA', '/home/sigmater/SitoWeb/sigmater/TEU_Test/sec/Cert_CA.pem');

//define('CERT_ENTE', 'file:///opt/web/php/sigmater/sec/Cert_Ente.pem');
define('CERT_ENTE', 'file:///home/sigmater/SitoWeb/sigmater/TEU_Test/sec/Cert_Ente.pem');

//define('PK_ENTE', 'file:///opt/web/php/sigmater/sec/Pk_Ente.pem');
define('PK_ENTE', 'file:///home/sigmater/SitoWeb/sigmater/TEU_Test/sec/Pk_Ente.pem');

//define('PK_PWD', 'liguria_07112007');
define('PK_PWD', 'regioneliguria_0408');

define('ADDR_SERVER', 'https://catasto.tel.agenziaterritorio.it');

//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////

$template_dir = "../template";

$url = ADDR_SERVER.'/php/ws/N0SC_soap_dispatcher.php?coduff=GE';

define('NS_WSDL', 'http://www.agenziaterritorio.it/ws.wsdl');
define('NS_HEADER', 'http://www.agenziaterritorio.it/segnatura.xsd');

$arr_privkey = array(PK_ENTE, PK_PWD);
$arr_header = array();

$logfile = "./Log/wslog.log";
$debug = true;
$default_log_level = PEAR_LOG_DEBUG;

function read_cert($cert_filename) {

        if (!file_exists($cert_filename))
        {
                return array();
        }
        
    $pemdata = implode('', file($cert_filename));

    // Get a certificate resource from the PEM string.
    $cert_handler = openssl_x509_read($pemdata);

    // Parse the resource
    $arr_cert_data = openssl_x509_parse($cert_handler);

    // Free the resource
    openssl_x509_free($cert_handler);

    return $arr_cert_data;

}
        
function get_segnatura_client() {
        
        $arr_Identificatore = array('CodiceAmministrazione' => '', 
                                                                'CodiceAOO' => '', 
                                                                'NumeroRegistrazione' => '', 
                                                                'DataRegistrazione' => '');
        
        // ------------------
        $arr_Ruolo = array('Denominazione' => 'Text', 
                                                                 'Identificativo' => '');
        
        $arr_Amministrazione = array('Denominazione' => '', 
                                                                 'CodiceAmministrazione' => '',
                                                                 'Ruolo' => $arr_Ruolo);
                                                                                
        $arr_Mittente = array('Amministrazione' => $arr_Amministrazione, 
                                                  'AOO' => '');
        
        $arr_Origine = array('IndirizzoTelematico' => '', 
                                                 'Mittente' => $arr_Mittente);
        // ------------------
        
        $arr_Destinazione = array('IndirizzoTelematico' => '');
        
        // ------------------
        
        
        $arr_Intestazione = array('Identificatore' => $arr_Identificatore, 
                                                          'Origine' => $arr_Origine, 
                                                          'Destinazione' => $arr_Destinazione,
                                                          'Oggetto' => '');
        // ------------------                                                                                                                                                                                                                   
        $arr_Segnatura = array('Intestazione' => $arr_Intestazione);

        return $arr_Segnatura;
}

function write_file($fname,$buf)  {

    $fn = fopen($fname,"a+");
    $b = fwrite($fn,$buf);
    fclose($fn);
    return($b);
}

function verify($pkcs7, $cert_filename) {
        
    // salvo l'allegato su file per poterne verificare la firma     
    $to_verify_filename = tempnam('./Log', 'P7M_'); 
     
    $fp = fopen($to_verify_filename, "w");
    fwrite($fp, $pkcs7);
    fclose($fp);
        
        $cainfo[0] = FILE_CA;
        
    // verifica della firma     
    $ret = openssl_pkcs7_verify($to_verify_filename, 0, $cert_filename, $cainfo);
    //$ret = openssl_pkcs7_verify($to_verify_filename, 0, $cert_filename, $cainfo);
    
    @unlink($to_verify_filename);
                    
    // log errori openssl_pkcs7_verify
        while($msg = openssl_error_string())
                error_log (date("d/m/Y H:i:s")." - VERIFICA FIRMA - ".$msg."\n",3,'./Log/openssl_error.log');
        
        return $ret;                    
}

function show($var) {

    echo"<br>show<pre>";
    print_r($var);
    echo'</pre><br>';
}

function decode_pkcs7($pkcs7) {

        require_once('Mail/mimeDecode.php');
        
        $params['include_bodies'] = TRUE;
        $params['decode_bodies']  = TRUE;
        $params['decode_headers'] = TRUE;
        $params['crlf']           = "\r\n";
        
        $decode = new Mail_mimeDecode($pkcs7);
        $structure = $decode->decode($params);
        
        return $structure;
}

function clear_dir($dir) {

        $dir = rtrim($dir, '/');

        if (is_dir($dir)) {

                $dh = opendir($dir);

                while (false !== ($file = readdir($dh))) {

                        if ($file != '.' && $file != '..') {

                                $path = $dir.'/'.$file;

                                if (is_dir($path))
                                        clear_dir($path);
                                else
                                        unlink($path);
                        }
                }

                return true;
        }
        else {

                return false;
        }
}
?>