Changeset 4916 for branches/2.3
- Timestamp:
- 08/10/11 15:59:45 (13 years ago)
- Location:
- branches/2.3
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.3/expressoMail1_2/js/local_messages.js
r4862 r4916 1306 1306 rs = this.dbGears.execute("select mail from mail where original_id="+original_id); 1307 1307 } 1308 if(!rs.field(0)){ 1309 ret=null; 1310 } 1311 else 1312 { 1308 1313 var tmp = connector.unserialize(rs.field(0)); 1309 1314 var ret = new Array(); … … 1312 1317 ret.msg_day = tmp.msg_day; 1313 1318 ret.msg_hour = tmp.msg_day; 1314 1319 } 1315 1320 rs.close(); 1316 1321 this.finalize(); -
branches/2.3/expressoMail1_2/js/main.js
r4848 r4916 1656 1656 { 1657 1657 var handler = function(data){ 1658 1658 if(typeof(expresso_local_messages) != "undefined"){ 1659 1659 if(data.msg_day == '') 1660 1660 { 1661 1661 header=expresso_local_messages.get_msg_date(data.original_ID, proxy_mensagens.is_local_folder(get_current_folder())); 1662 1662 if(header){ 1663 1663 data.fulldate=header.fulldate; 1664 1664 data.smalldate=header.smalldate; 1665 1665 data.msg_day = header.msg_day; 1666 1666 data.msg_hour = header.msg_hour; 1667 1668 } 1667 } 1668 } 1669 } 1669 1670 this.show_msg(data); 1670 1671 } -
branches/2.3/security/classes/CertificadoB.php
r3285 r4916 9 9 public $dados = array(); # Area para armazenar os dados recuperados do certificado. 10 10 public $apresentado = false; # Deve ser testado para verificar se no certificado processado foi localizado o CPF 11 public $erros_ssl = array(); 12 public $cert_assinante = ''; 11 public $erros_ssl = array(); 12 public $cert_assinante = ''; 13 13 public $msg_sem_assinatura = ''; #conteï¿œdo da mensagem sem assinatura, que retorna da funᅵᅵo verify do openssl 14 14 public $arquivos_para_deletar = array(); 15 15 16 16 public function __construct() 17 17 { … … 32 32 public function __destruct() 33 33 { 34 #Remover arquivos temporarios..... 34 #Remover arquivos temporarios..... 35 35 deleta_arquivos_temporarios($this->arquivos_para_deletar); 36 36 } 37 37 38 # Recupera dados de um certificado no formato pem 38 # Recupera dados de um certificado no formato pem 39 39 function certificado($certificado_pem) 40 { 41 if (!$certificado_pem) 40 { 41 if (!$certificado_pem) 42 42 { 43 43 $this->apresentado = False; … … 46 46 $this->dados = recupera_dados_do_ceritificado_digital($certificado_pem); 47 47 $this->dados_xml = gera_xml_com_dados_do_certificado($this->dados); 48 # Certificado foi processado, as informacoes obtidas estao em $this->dados. 49 $this->apresentado = true; 48 # Certificado foi processado, as informacoes obtidas estao em $this->dados. 49 $this->apresentado = true; 50 50 } 51 51 … … 71 71 72 72 $w = exec('openssl rsautl -in ' . $senha_arquivo_temporario . ' -out ' . $senha_criptografada_arquivo_temporario . ' -inkey ' . $cert_arquivo_temporario . ' -certin -pkcs -keyform PEM -encrypt',$saida); 73 73 74 74 if(!file_exists($senha_criptografada_arquivo_temporario)) 75 75 { … … 79 79 } 80 80 81 # Recupera a senha criptada, binario..... 81 # Recupera a senha criptada, binario..... 82 82 $retorno = file_get_contents($senha_criptografada_arquivo_temporario); 83 83 … … 97 97 if(!is_array($c)) return false; 98 98 $aux = count($c); 99 if($aux < 1) return false; 99 if($aux < 1) return false; 100 100 if(!is_array($h) ) return false; 101 101 # Tem de verificar todos os certificados que serao utilizados para criptografar a msg.. … … 109 109 $enc_arquivo_temporario = gera_nome_arquivo_temporario(&$this->arquivos_para_deletar); 110 110 //echo $enc_arquivo_temporario.'<br>'; 111 111 112 112 // LIMPA ERROS ... Pode ser um problema para outras aplicacoes que usam openssl(fonte de erros unica). 113 113 while ($erro = openssl_error_string()); // Limpa buffer de erros anteriores...... … … 118 118 { 119 119 // Guarda msgs de erro ... 120 while ($erro = openssl_error_string()) 121 { 120 while ($erro = openssl_error_string()) 121 { 122 122 $this->erros_ssl[] = $erro; 123 123 } … … 126 126 return false; 127 127 } 128 # Recupera a msg criptada...... 128 # Recupera a msg criptada...... 129 129 $retorno = file_get_contents($enc_arquivo_temporario); 130 130 deleta_arquivos_temporarios($this->arquivos_para_deletar); … … 134 134 135 135 136 # Verifica uma msg($m) assinada... 136 # Verifica uma msg($m) assinada... 137 137 public function verificar($m) 138 138 { … … 167 167 return false; 168 168 } 169 // LIMPA ERROS ... Pode ser um problema para outras aplicacoes que usam openssl(fonte de erros unica). 169 $this->erros_ssl = array(); 170 170 while ($erro = openssl_error_string()); // Limpa buffer de erros anteriores...... 171 $this->erros_ssl = array(); 172 $resultado = openssl_pkcs7_verify($m_arquivo_temporario,0, $vrf_cert_arquivo_temporario,array($GLOBALS['CAs']),$GLOBALS['CAs'],$vrf_msg_arquivo_temporario); 173 $retorno = true; 171 $resultado = openssl_pkcs7_verify($m_arquivo_temporario,0, $vrf_cert_arquivo_temporario,array($GLOBALS['CAs']),$GLOBALS['CAs'],$vrf_msg_arquivo_temporario); 174 172 if($resultado === -1) 175 173 { … … 181 179 $retorno = false; 182 180 } 181 if($resultado === False) 182 { 183 while ($erro = openssl_error_string()) 184 { 185 if(substr($erro, 0,20) === 'error:21075075:PKCS7') 186 { 187 $this->erros_ssl = array(); 188 while ($erro = openssl_error_string()); // Limpa buffer de erros anteriores...... 189 $resultado = openssl_pkcs7_verify($m_arquivo_temporario,PKCS7_NOVERIFY, $vrf_cert_arquivo_temporario,array($GLOBALS['CAs']),$GLOBALS['CAs'],$vrf_msg_arquivo_temporario); 190 break; 191 } 192 $this->erros_ssl[] = $erro; 193 } 194 } 195 $retorno = true; 183 196 184 197 if($resultado === False) … … 188 201 $retorno = false; 189 202 // Guarda msgs de erro ... 190 while ($erro = openssl_error_string()) 191 { 203 while ($erro = openssl_error_string()) 204 { 192 205 $this->erros_ssl[] = $erro; 193 206 } 194 If(file_exists($vrf_msg_arquivo_temporario)) 207 If(file_exists($vrf_msg_arquivo_temporario)) 195 208 { 196 209 $this->msg_sem_assinatura = file_get_contents($vrf_msg_arquivo_temporario); … … 206 219 { 207 220 # Se nao foi possivel obter o certificado retorna com falso ..... 208 If(file_exists($vrf_msg_arquivo_temporario)) 221 If(file_exists($vrf_msg_arquivo_temporario)) 209 222 { 210 223 $this->msg_sem_assinatura = file_get_contents($vrf_msg_arquivo_temporario); … … 235 248 { 236 249 while ($erro = openssl_error_string()); // Limpa buffer de erros anteriores...... 237 # Certificado poderia ter assinado um email?? 250 # Certificado poderia ter assinado um email?? 238 251 if(!($this->dados['KEYUSAGE']['digitalSignature'])) 239 252 { 240 253 $this->erros_ssl[] = 'Certificado nao poderia ter sido utilizado para assinar email.'; 241 while ($erro = openssl_error_string()) 242 { 254 while ($erro = openssl_error_string()) 255 { 243 256 $this->erros_ssl[] = $erro; 244 257 } … … 259 272 } 260 273 deleta_arquivos_temporarios($this->arquivos_para_deletar); 261 $this->arquivos_para_deletar = array(); 274 $this->arquivos_para_deletar = array(); 262 275 return $retorno; 263 } 276 } 264 277 265 278 public function extrai_certificado_da_msg_assinada($m) … … 311 324 $retorno = $item; 312 325 break; 313 } 326 } 314 327 } 315 328 deleta_arquivos_temporarios($this->arquivos_para_deletar);
Note: See TracChangeset
for help on using the changeset viewer.