Handle hostnames with upper-case letters
[webmin.git] / ipsec / edit_secret.cgi
1 #!/usr/local/bin/perl
2 # Show one secret key
3
4 require './ipsec-lib.pl';
5 &ReadParse();
6 if ($in{'new'}) {
7         &ui_print_header(undef, $text{'secret_title1'}, "");
8         $sec = { 'type' => $in{'type'} };
9         }
10 else {
11         &ui_print_header(undef, $text{'secret_title2'}, "");
12         @secs = &list_secrets();
13         $sec = $secs[$in{'idx'}];
14         }
15
16 print &ui_form_start("save_secret.cgi", "post");
17 print &ui_hidden("new", $in{'new'});
18 print &ui_hidden("type", $sec->{'type'});
19 print &ui_hidden("idx", $in{'idx'});
20 print &ui_table_start($text{'secret_header'}, "100%", 2);
21
22 print &ui_table_row($text{'secret_name'},
23                     &ui_radio("name_def", $sec->{'name'} ? 0 : 1,
24                               [ [ 1, $text{'secrets_any'} ],
25                                 [ 0, $text{'secret_for'} ] ])."\n".
26                     &ui_textbox("name", $sec->{'name'}, 30));
27
28 print &ui_table_row($text{'secret_type'},
29                     $text{'secrets_'.lc($sec->{'type'})} || uc($sec->{'type'}));
30
31 if (lc($sec->{'type'}) eq "psk") {
32         # Shared key, with a password
33         $pass = $sec->{'value'} =~ /"(.*)"/ ? $1 : $sec->{'value'};
34         print &ui_table_row($text{'secret_pass'},
35                             &ui_textbox("pass", $pass, 20));
36         }
37 elsif (lc($sec->{'type'}) eq "rsa") {
38         # RSA key .. show all editable parts
39         $val = $sec->{'value'};
40         $val =~ s/^\s*{//;
41         $val =~ s/{\s*$//;
42         while($val =~ /^\s*(\S+):\s+(\S+)((.|\n)*)/) {
43                 $rsa{$1} = $2;
44                 $val = $3;
45                 }
46         foreach $p (&unique(@rsa_attribs, keys(%rsa))) {
47                 print &ui_table_row(&text('secret_rsa', $p),
48                     $p eq "PublicExponent" ?
49                         &ui_textbox("rsa_$p", $rsa{$p}, 10) :
50                         &ui_textarea("rsa_$p", &split_line($rsa{$p}, 60),5,60));
51                 }
52         }
53 else {
54         # Unknown!!
55         print &ui_table_row($text{'secret_value'},
56                             &ui_textarea("value", $sec->{'value'},
57                                          20, 60));
58         }
59
60 print &ui_table_end();
61 if ($in{'new'}) {
62         print &ui_form_end([ [ "create", $text{'create'} ] ]);
63         }
64 else {
65         print &ui_form_end([ [ "save", $text{'save'} ],
66                              [ "delete", $text{'delete'} ] ], 100);
67         }
68
69 &ui_print_footer("list_secrets.cgi", $text{'secrets_return'},
70                  "", $text{'index_return'});
71
72 sub split_line
73 {
74 local $str = $_[0];
75 local $rv;
76 while(length($str) > $_[1]) {
77         $rv .= substr($str, 0, $_[1])."\n";
78         $str = substr($str, $_[1]);
79         }
80 $rv .= $str."\n";
81 return $rv;
82 }
83