Ignore:
Timestamp:
10/14/10 11:23:45 (13 years ago)
Author:
rafaelraymundo
Message:

Ticket #1373 - Acerta traduções relativas ao uso do certificado digital

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2/expressoMail1_2/inc/class.imap_functions.inc.php

    r3298 r3352  
    12581258        function get_signature($msg, $msg_number, $msg_folder) 
    12591259        { 
    1260         include_once(dirname( __FILE__ ) ."/../../security/classes/CertificadoB.php"); 
    1261                 include_once("class.db_functions.inc.php"); 
    1262                 foreach ($msg->file_type[$msg_number] as $index => $file_type) 
    1263                 { 
    1264             $sign = array(); 
    1265                         $temp = $this->get_info_head_msg($msg_number); 
    1266                         if($temp['ContentType'] =='normal') return $sign; 
    1267                         $file_type = strtolower($file_type); 
    1268                         if(strtolower($msg->encoding[$msg_number][$index]) == 'base64') 
     1260            include_once(dirname( __FILE__ ) ."/../../security/classes/CertificadoB.php"); 
     1261            include_once("class.db_functions.inc.php"); 
     1262            foreach ($msg->file_type[$msg_number] as $index => $file_type) 
     1263            { 
     1264                $sign = array(); 
     1265                $temp = $this->get_info_head_msg($msg_number); 
     1266                if($temp['ContentType'] =='normal') return $sign; 
     1267                $file_type = strtolower($file_type); 
     1268                if(strtolower($msg->encoding[$msg_number][$index]) == 'base64') 
     1269                { 
     1270                    if ($file_type == 'application/x-pkcs7-signature' || $file_type == 'application/pkcs7-signature') 
     1271                    { 
     1272                        if(!$this->mbox || !is_resource($this->mbox)) 
     1273                            $this->mbox = $this->open_mbox($msg_folder); 
     1274 
     1275                        $header = @imap_headerinfo($this->mbox, imap_msgno($this->mbox, $msg_number), 80, 255); 
     1276 
     1277                        $imap_msg               = @imap_fetchheader($this->mbox, $msg_number, FT_UID); 
     1278                        $imap_msg               .= @imap_body($this->mbox, $msg_number, FT_UID); 
     1279 
     1280                        $certificado = new certificadoB(); 
     1281                        $validade = $certificado->verificar($imap_msg); 
     1282 
     1283                        if ($certificado->apresentado) 
    12691284                        { 
    1270                                 if ($file_type == 'application/x-pkcs7-signature' || $file_type == 'application/pkcs7-signature') 
    1271                                 { 
    1272                                         if(!$this->mbox || !is_resource($this->mbox)) 
    1273                                         $this->mbox = $this->open_mbox($msg_folder); 
    1274  
    1275                                         $header = @imap_headerinfo($this->mbox, imap_msgno($this->mbox, $msg_number), 80, 255); 
    1276  
    1277                                         $imap_msg               = @imap_fetchheader($this->mbox, $msg_number, FT_UID); 
    1278                                         $imap_msg               .= @imap_body($this->mbox, $msg_number, FT_UID); 
    1279  
    1280                                         $certificado = new certificadoB(); 
    1281                                         $validade = $certificado->verificar($imap_msg); 
    1282  
    1283                                         if ($certificado->apresentado) 
    1284                                         { 
    1285                                                 $from = $header->from; 
    1286                                                 foreach ($from as $id => $object) { 
    1287                                                         $fromname = $object->personal; 
    1288                                                     $fromaddress = $object->mailbox . "@" . $object->host; 
    1289                                         } 
    1290                                                 $sign_alert = ''; 
    1291                                                 foreach ($certificado->erros_ssl as $item) 
    1292                                                 { 
    1293                                                         $check_error_msg = $this->functions->getLang($item); 
    1294                                                         /* 
    1295                                                          * Desabilite o teste abaixo para mostrar todas as mensagem 
    1296                                                          * de erro. 
    1297                                                          */ 
    1298                                                         //if (!strpos($check_error_msg,'*',strlen($check_error_msg-1))) 
    1299                                                         //{ 
    1300                                                         $sign[] = "<span style=color:red>" . $check_error_msg . " </span>"; 
    1301                                                         //} 
    1302                                                 } 
    1303                                                 if (count($certificado->erros_ssl) < 1) 
    1304                                                 { 
    1305                                                         $check_msg = $this->functions->getLang('Message untouched') . " "; 
    1306                                                         if(strtoupper($fromaddress) != strtoupper($certificado->dados['EMAIL'])) 
    1307                                                         { 
    1308                                                                 $check_msg .= $this->functions->getLang('and') . " "; 
    1309                                                                 $check_msg .= $this->functions->getLang('authentic'); 
    1310                                                         } 
    1311                                                         $sign[] = "<strong>".$check_msg."</strong>"; 
    1312                                                 } 
    1313                                                 if(strtoupper($fromaddress) != strtoupper($certificado->dados['EMAIL'])) 
    1314                                                 { 
    1315                                                         $sign[] =       "<span style=color:red>" . 
    1316                                                                                 $this->functions->getLang('message') . " " . 
    1317                                                                         $this->functions->getLang('with signer different from sender') . 
    1318                                                                         " </span>"; 
    1319                                                 } 
    1320                                                 $sign[] = "<strong>" . $this->functions->getLang('Message signed by: ') . "</strong>" . $certificado->dados['NOME']; 
    1321                                                 $sign[] = "<strong>" . $this->functions->getLang('Certificate email: ') . "</strong>" . $certificado->dados['EMAIL']; 
    1322                                                 $sign[] = "<strong>" . $this->functions->getLang('Mail from: ') . "</strong>" . $fromaddress; 
    1323                                                 $sign[] = "<strong>" . $this->functions->getLang('Certificate Authority: ') . "</strong>" . $certificado->dados['EMISSOR']; 
    1324                                                 $sign[] = "<strong>" . $this->functions->getLang('Validity of certificate: ') . "</strong>" . gmdate('r',openssl_to_timestamp($certificado->dados['FIM_VALIDADE'])); 
    1325                                                 $sign[] = "<strong>" . $this->functions->getLang('Message date: ') . "</strong>" . $header->Date; 
    1326  
    1327                                             $cert = openssl_x509_parse($certificado->cert_assinante); 
    1328                                                 /* 
    1329                                                 $sign[] = '<table>'; 
    1330                                                 $sign[] = '<tr><td colspan=1><b>Expedido para:</b></td></tr>'; 
    1331                                                 $sign[] = '<tr><td>Nome Comum (CN) </td><td>' . $cert[subject]['CN'] .  '</td></tr>'; 
    1332                                                 $X = substr($certificado->dados['NASCIMENTO'] ,0,2) . '-' . substr($certificado->dados['NASCIMENTO'] ,2,2) . '-'  . substr($certificado->dados['NASCIMENTO'] ,4,4); 
    1333                                                 $sign[] = '<tr><td>Data de nascimento </td><td>' . $certificado->dados['NASCIMENTO'] .  '</td></tr>'; 
    1334                                                 $sign[] = '<tr><td>CPF </td><td>' . $certificado->dados['CPF'] .  '</td></tr>'; 
    1335                                                 $sign[] = '<tr><td>Documento identidade </td><td>' . $certificado->dados['RG'] .  '</td></tr>'; 
    1336                                                 $sign[] = '<tr><td>Empresa (O) </td><td>' . $cert[subject]['O'] .  '</td></tr>'; 
    1337                                                 $sign[] = '<tr><td>Unidade Organizacional (OU) </td><td>' . $cert[subject]['OU'][0] .  '</td></tr>'; 
    1338                                                 //$sign[] = '<tr><td>Numero de serie </td><td>' . $cert['serialNumber'] .  '</td></tr>'; 
    1339                                                 $sign[] = '<tr><td colspan=1> </td></tr>'; 
    1340                                                 $sign[] = '<tr><td colspan=1><b>Expedido por:</b></td></tr>'; 
    1341                                                 $sign[] = '<tr><td>Nome Comum (CN) </td><td>' . $cert[issuer]['CN'] .  '</td></tr>'; 
    1342                                                 $sign[] = '<tr><td>Empresa (O) </td><td>' . $cert[issuer]['O'] .  '</td></tr>'; 
    1343                                                 $sign[] = '<tr><td>Unidade Organizacional (OU) </td><td>' . $cert[issuer]['OU'][0] .  '</td></tr>'; 
    1344                                                 $sign[] = '<tr><td colspan=1> </td></tr>'; 
    1345                                                 $sign[] = '<tr><td colspan=1><b>Validade:</b></td></tr>'; 
    1346                                                 $H = data_hora($cert[validFrom]); 
    1347                                                 $X = substr($H,6,2) . '-' . substr($H,4,2) . '-'  . substr($H,0,4); 
    1348                                                 $sign[] = '<tr><td>Expedido em </td><td>' . $X .  '</td></tr>'; 
    1349                                                 $H = data_hora($cert[validTo]); 
    1350                                                 $X = substr($H,6,2) . '-' . substr($H,4,2) . '-'  . substr($H,0,4); 
    1351                                                 $sign[] = '<tr><td>Valido ate </td><td>' . $X .  '</td></tr>'; 
    1352                                                 $sign[] = '<tr><td colspan=1> </td></tr>'; 
    1353                                                 $sign[] = '</table>'; 
    1354                                                 */ 
    1355                                                 $sign_alert .= 'Expedido para:\n'; 
    1356                                                 $sign_alert .= 'Nome Comum (CN)  ' . $cert[subject]['CN'] .  '\n'; 
    1357                                                 $X = substr($certificado->dados['NASCIMENTO'] ,0,2) . '-' . substr($certificado->dados['NASCIMENTO'] ,2,2) . '-'  . substr($certificado->dados['NASCIMENTO'] ,4,4); 
    1358                                                 $sign_alert .= 'Data de nascimento ' . $X .  '\n'; 
    1359                                                 $sign_alert .= 'CPF ' . $certificado->dados['CPF'] .  '\n'; 
    1360                                                 $sign_alert .= 'Documento identidade ' . $certificado->dados['RG'] .  '\n'; 
    1361                                                 $sign_alert .= 'Empresa (O)  ' . $cert[subject]['O'] .  '\n'; 
    1362                                                 $sign_alert .= 'Unidade Organizacional (OU) ' . $cert[subject]['OU'][0] .  '\n'; 
    1363                                                 //$sign_alert[] = '<tr><td>Numero de serie </td><td>' . $cert['serialNumber'] .  '</td></tr>'; 
    1364                                                 $sign_alert .= '\n'; 
    1365                                                 $sign_alert .= 'Expedido por:\n'; 
    1366                                                 $sign_alert .= 'Nome Comum (CN) ' . $cert[issuer]['CN'] . '\n'; 
    1367                                                 $sign_alert .= 'Empresa (O)  ' . $cert[issuer]['O'] .  '\n'; 
    1368                                                 $sign_alert .= 'Unidade Organizacional (OU) ' . $cert[issuer]['OU'][0] .  '\n'; 
    1369                                                 $sign_alert .= '\n'; 
    1370                                                 $sign_alert .= 'Validade:\n'; 
    1371                                                 $H = data_hora($cert[validFrom]); 
    1372                                                 $X = substr($H,6,2) . '-' . substr($H,4,2) . '-'  . substr($H,0,4); 
    1373                                                 $sign_alert .= 'Expedido em ' . $X .  '\n'; 
    1374                                                 $H = data_hora($cert[validTo]); 
    1375                                                 $X = substr($H,6,2) . '-' . substr($H,4,2) . '-'  . substr($H,0,4); 
    1376                                                 $sign_alert .= 'Valido ate ' . $X .  '\n'; 
    1377  
    1378                                                 $sign[] = "<a onclick=\"javascript:alert('" . $sign_alert . "')\"><b><font color=\"#0000FF\">".$this->functions->getLang("More")."...</font></b></a>"; 
    1379                                                 $this->db = new db_functions(); 
    1380  
    1381                                                 // TODO: testar se existe um certificado no banco e verificar qual ï¿œ o mais atual. 
    1382                         if(!$certificado->dados['EXPIRADO'] && !$certificado->dados['REVOGADO'] && count($certificado->erros_ssl) < 1) 
    1383                             $this->db->insert_certificate(strtolower($certificado->dados['EMAIL']), $certificado->cert_assinante, $certificado->dados['SERIALNUMBER'], $certificado->dados['AUTHORITYKEYIDENTIFIER']); 
    1384                                         } 
    1385                                      else 
    1386                                     { 
    1387                                         $sign[] = "<span style=color:red>" . $this->functions->getLang('Invalid signature') . "</span>"; 
    1388                                         foreach($certificado->erros_ssl as $item) 
    1389                                         $sign[] = "<span style=color:red>" . $this->functions->getLang($item) . "</span>"; 
     1285                            $from = $header->from; 
     1286                            foreach ($from as $id => $object) 
     1287                            { 
     1288                                $fromname = $object->personal; 
     1289                                $fromaddress = $object->mailbox . "@" . $object->host; 
     1290                            } 
     1291                            foreach ($certificado->erros_ssl as $item) 
     1292                            { 
     1293                                $sign[] = $item . "#@#"; 
     1294                            } 
     1295 
     1296                            if (count($certificado->erros_ssl) < 1) 
     1297                            { 
     1298                                $check_msg = 'Message untouched'; 
     1299                                if(strtoupper($fromaddress) == strtoupper($certificado->dados['EMAIL'])) 
     1300                                { 
     1301                                    $check_msg .= ' and authentic###'; 
     1302                                } 
     1303                                else 
     1304                                { 
     1305                                    $check_msg .= ' with signer different from sender#@#'; 
     1306                                } 
     1307                                $sign[] = $check_msg; 
     1308                            } 
     1309                                                 
     1310                            $sign[] = 'Message signed by: ###' . $certificado->dados['NOME']; 
     1311                            $sign[] = 'Certificate email: ###' . $certificado->dados['EMAIL']; 
     1312                            $sign[] = 'Mail from: ###' . $fromaddress; 
     1313                            $sign[] = 'Certificate Authority: ###' . $certificado->dados['EMISSOR']; 
     1314                            $sign[] = 'Validity of certificate: ###' . gmdate('r',openssl_to_timestamp($certificado->dados['FIM_VALIDADE'])); 
     1315                            $sign[] = 'Message date: ###' . $header->Date; 
     1316 
     1317                            $cert = openssl_x509_parse($certificado->cert_assinante); 
     1318 
     1319                            $sign_alert = array(); 
     1320                            $sign_alert[] = 'Certificate Owner###:\n'; 
     1321                            $sign_alert[] = 'Common Name (CN)###  ' . $cert[subject]['CN'] .  '\n'; 
     1322                            $X = substr($certificado->dados['NASCIMENTO'] ,0,2) . '-' . substr($certificado->dados['NASCIMENTO'] ,2,2) . '-'  . substr($certificado->dados['NASCIMENTO'] ,4,4); 
     1323                            $sign_alert[]= 'Organization (O)###  ' . $cert[subject]['O'] .  '\n'; 
     1324                            $sign_alert[]= 'Organizational Unit (OU)### ' . $cert[subject]['OU'][0] .  '\n'; 
     1325                            //$sign_alert[] = 'Serial Number### ' . $cert['serialNumber'] . '\n'; 
     1326                            $sign_alert[] = 'Personal Data###:' . '\n'; 
     1327                            $sign_alert[] = 'Birthday### ' . $X .  '\n'; 
     1328                            $sign_alert[]= 'Fiscal Id### ' . $certificado->dados['CPF'] .  '\n'; 
     1329                            $sign_alert[]= 'Identification### ' . $certificado->dados['RG'] .  '\n\n'; 
     1330                            $sign_alert[]= 'Certificate Issuer###:\n'; 
     1331                            $sign_alert[]= 'Common Name (CN)###  ' . $cert[issuer]['CN'] . '\n'; 
     1332                            $sign_alert[]= 'Organization (O)###  ' . $cert[issuer]['O'] .  '\n'; 
     1333                            $sign_alert[]= 'Organizational Unit (OU)### ' . $cert[issuer]['OU'][0] .  '\n\n'; 
     1334                            $sign_alert[]= 'Validity###:\n'; 
     1335                            $H = data_hora($cert[validFrom]); 
     1336                            $X = substr($H,6,2) . '-' . substr($H,4,2) . '-'  . substr($H,0,4); 
     1337                            $sign_alert[]= 'Valid From### ' . $X .  '\n'; 
     1338                            $H = data_hora($cert[validTo]); 
     1339                            $X = substr($H,6,2) . '-' . substr($H,4,2) . '-'  . substr($H,0,4); 
     1340                            $sign_alert[]= 'Valid Until### ' . $X; 
     1341                            $sign[] = $sign_alert; 
     1342 
     1343                            $this->db = new db_functions(); 
     1344                             
     1345                            // TODO: testar se existe um certificado no banco e verificar qual ï¿œ o mais atual. 
     1346                            if(!$certificado->dados['EXPIRADO'] && !$certificado->dados['REVOGADO'] && count($certificado->erros_ssl) < 1) 
     1347                                $this->db->insert_certificate(strtolower($certificado->dados['EMAIL']), $certificado->cert_assinante, $certificado->dados['SERIALNUMBER'], $certificado->dados['AUTHORITYKEYIDENTIFIER']); 
     1348                        } 
     1349                        else 
     1350                        { 
     1351                            $sign[] = "<span style=color:red>" . $this->functions->getLang('Invalid signature') . "</span>"; 
     1352                            foreach($certificado->erros_ssl as $item) 
     1353                                $sign[] = "<span style=color:red>" . $this->functions->getLang($item) . "</span>"; 
     1354                        } 
    13901355                    } 
    1391                                 } 
    1392                         } 
    1393                 } 
    1394                 return $sign; 
     1356                } 
     1357            } 
     1358            return $sign; 
    13951359        } 
    13961360 
     
    15021466                        * não preciso reimplementar o método utilizando o fetchheader. 
    15031467                        */ 
     1468                     
    15041469                        $tempHeader = @imap_fetchheader($this->mbox, imap_msgno($this->mbox, $msg_number)); 
    15051470                        $flag = preg_match('/importance *: *(.*)\r/i', $tempHeader, $importance); 
Note: See TracChangeset for help on using the changeset viewer.