source: branches/2.2/security/gera-arvore.php @ 3232

Revision 3232, 7.8 KB checked in by rafaelraymundo, 14 years ago (diff)

Ticket #1237 - Atualizados componentes de suporte ao uso do Certificado Digital.

  • Property svn:executable set to *
Line 
1<?php
2        $GLOBALS['phpgw_info'] = array();
3        $GLOBALS['phpgw_info']['flags'] = array('noheader'   => True,'nonavbar'   => True,'currentapp' => 'admin');
4        include('../header.inc.php');
5        require_once('classes/CertificadoB.php');
6        require_once('security-lib.php');
7        // pega caminho completo do arquivo de CAS..
8        if( $_POST['path3'])
9        {
10            $path3 = $_POST['path3'];
11        }
12        else
13        {
14            $path3 =$GLOBALS['CAs'];
15        }
16        $path3 =$GLOBALS['CAs'];
17        $arquivo = basename($path3);
18        // se não pude acessar o arquivo com certificados retornar .....
19        if(!is_file($path3)) exit();
20        $dir = dirname($path3);
21        if($_POST['arquivo'] & $_POST['caminho'] )
22        {
23            if(substr($_POST['arquivo'],0,25) != '--Selecione um arquivo co')
24            {
25                $path3 = $_POST['caminho'] . '/' . $_POST['arquivo'];
26                $dir = $_POST['caminho'];
27            }
28        }
29        if($path3)
30            {
31                $todos_certificados =  ler_certificados_CAS($path3);
32                $ret = Gerar_Estruturas_Certificados($todos_certificados);
33                $aux_emissores= $ret[0];
34                $tab_certs = $ret[1];
35                $NOVO = array();
36                $AUX3 = array();
37                $emissores = array();
38                foreach($aux_emissores as $kchave1 => $emis1)
39                    {
40                        foreach($emis1 as $Kchave2 => $emis2)
41                            {
42                                foreach($emis2 as $Kchave3 => $emis3)
43                                    {
44                                        $emissores[$Kchave2][$Kchave3] = '9';
45                                    }
46                            }
47                    }
48                // O array $NOVO vai conter a cadeia dos certificados de CAs ....
49                foreach($emissores as $K => $V)
50                    {
51                        if($AUX3[$K] != '0')
52                            {
53                                foreach($V as $K1 => $V1)
54                                    {
55                                        if($emissores[$K1])
56                                            {
57                                                $NOVO[$K][$K1] = $emissores[$K1];
58                                                $AUX3[$K1] = '0';
59                                            }
60                                        else
61                                            {
62                                                $NOVO[$K][$K1] = '0';
63                                            }
64                                    }
65                            }
66                    }
67                // Valores auxiliares para fazer a identacao .....
68                $prefixo0 = '&nbsp;&nbsp;' . '|';
69                $prefixo1 =  '&nbsp;&nbsp;' .  '|' .  '____' ;
70                $prefixo2 =  '&nbsp;&nbsp;' . '|' .  '&nbsp;&nbsp;' . '&nbsp;&nbsp;' .  '&nbsp;&nbsp;' .  '&nbsp;&nbsp;' . '|' ;
71                $prefixo2A =  '&nbsp;&nbsp;' . '&nbsp;&nbsp;' .  '&nbsp;&nbsp;' . '&nbsp;&nbsp;' .  '&nbsp;&nbsp;' .  '&nbsp;&nbsp;' . '|' ;
72                $prefixo3 =  '&nbsp;&nbsp;' . '|' .  '&nbsp;&nbsp;' . '&nbsp;&nbsp;' .  '&nbsp;&nbsp;' .  '&nbsp;&nbsp;' . '|'  . '____' ;
73                $prefixo3A =  '&nbsp;&nbsp;' .  '&nbsp;&nbsp;'  .  '&nbsp;&nbsp;' . '&nbsp;&nbsp;' .  '&nbsp;&nbsp;' .  '&nbsp;&nbsp;' . '|'  . '____' ;
74                $tudo = '';
75                foreach($NOVO as $K => $V)
76                    {
77                        $lnk = '<b><a href="javascript:Um_Certificado(\''. $tab_certs[$K]['item'] . ' - ' . $K .'\',\'' .  $arquivo . '\')" style="text-decoration: none" >' . $K . '</a></b>';
78                        if($tab_certs[$K]['fim_validade'])
79                            {
80                                $msg =  $tab_certs[$K]['fim_validade'];
81                            }
82                        else
83                            {
84                                $msg =  '<font color="FF0000" size="4"><b>Certificado ausente da cadeia.</b></font> ';
85                                $lnk = '<b>' . $K . '</b>';
86                            }
87                        $tudo .= '<br/><font color="0000FF" size="4">' . $lnk . '</font>  ' . $msg . '<br/>';
88                        if(is_array($V))
89                            {
90                                $num = count($V);
91                                $item = 0;
92                                foreach($V as $K1 => $V1)
93                                    {
94                                        $item = $item + 1;
95                                        $tudo .=  $prefixo0 . '<br/>';
96                                        if($tab_certs[$K1]['fim_validade'])
97                                            {
98                                                $msg =  $tab_certs[$K1]['fim_validade'];
99                                            }
100                                        else
101                                            {
102                                                $msg =  '<font color="FF0000" ><b>Certificado ausente da cadeia.</b></font> ';
103                                            }
104                                        $tudo .=  $prefixo1 .  '<font color="#000000" ><a href="javascript:Um_Certificado(\''. $tab_certs[$K1]['item']  . ' - ' . $K1 .'\',\'' .  $arquivo . '\')" style="text-decoration: none" >' . $K1 . '</a></font> ' .  '  ' . $msg . '<br/>';
105                                        if(is_array($V1))
106                                            {
107                                                foreach($V1 as $K2 => $V2)
108                                                    {
109                                                        if($tab_certs[$K1]['fim_validade'])
110                                                            {
111                                                                $msg =  $tab_certs[$K1]['fim_validade'];
112                                                            }
113                                                        else
114                                                            {
115                                                                $msg =  '<font color="FF0000" ><b>Certificado ausente da cadeia.</b></font> ';
116                                                            }
117                                                        if($num>$item)
118                                                            {
119                                                                $tudo .=   $prefixo2 . '<br/>';
120                                                                $tudo .= $prefixo3 . '<font color="#000000" ><a href="javascript:Um_Certificado(\''. $tab_certs[$K2]['item']  . ' - ' . $K2 .'\',\'' .  $arquivo . '\')" style="text-decoration: none" >' . $K2 . '</a></font> ' .  '  ' . $msg . '<br/>';
121                                                            }
122                                                        else
123                                                            {
124                                                                $tudo .=   $prefixo2A . '<br/>';
125                                                                $tudo .=  $prefixo3A .  '<font color="#000000" ><a href="javascript:Um_Certificado(\''. $tab_certs[$K2]['item']  . ' - ' . $K2 .'\',\'' .  $arquivo . '\')" style="text-decoration: none" >' . $K2 . '</a></font> ' .  '  ' . $msg . '<br/>';
126                                                            }
127                                                    }
128                                            }
129                                    }
130                            }
131                    }
132                Header('Content-type: application/xml; charset=utf-8');
133                $tudo = "<certificados>" . base64_encode($tudo) . '</certificados>';
134                echo $tudo;
135            }
136?>
Note: See TracBrowser for help on using the repository browser.