File: CertificateInfo.pm

package info (click to toggle)
qt4-perl 4.8.4-1.2
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 8,636 kB
  • ctags: 8,100
  • sloc: perl: 42,963; cpp: 28,039; makefile: 160; xml: 98; sh: 4
file content (102 lines) | stat: -rw-r--r-- 4,662 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
package CertificateInfo;

use strict;
use warnings;
use QtCore4;
use QtGui4;
use QtCore4::isa qw( Qt::Dialog );
use QtCore4::slots
    updateCertificateInfo => ['int'];
use Ui_CertificateInfo;

sub form() {
    return this->{form};
}

sub chain() {
    return this->{chain};
}

sub NEW
{
    my ($class, $parent) = @_;
    $class->SUPER::NEW($parent);
    this->{form} = Ui_CertificateInfo->setupUi(this);

    this->connect(form->certificationPathView, SIGNAL 'currentRowChanged(int)',
            this, SLOT 'updateCertificateInfo(int)');
}

sub setCertificateChain
{
    my ($chain) = @_;
    this->{chain} = $chain;

    form->certificationPathView->clear();

    for (my $i = 0; $i < scalar @{$chain}; ++$i) {
        my $cert = $chain->[$i];
        form->certificationPathView->addItem(sprintf this->tr('%s%s (%s)'), (!$i ? '' : this->tr('Issued by: ')),
                                             $cert->subjectInfo(Qt::SslCertificate::Organization()),
                                             $cert->subjectInfo(Qt::SslCertificate::CommonName()));
    }

    form->certificationPathView->setCurrentRow(0);
}

sub updateCertificateInfo
{
    my ($index) = @_;
    form->certificateInfoView->clear();
    if ($index >= 0 && $index < scalar @{chain()}) {
        my $cert = chain()->[$index];

        my $Organization            = $cert->subjectInfo(Qt::SslCertificate::Organization());
        my $OrganizationalUnitName  = $cert->subjectInfo(Qt::SslCertificate::OrganizationalUnitName());
        my $CountryName             = $cert->subjectInfo(Qt::SslCertificate::CountryName());
        my $LocalityName            = $cert->subjectInfo(Qt::SslCertificate::LocalityName());
        my $StateOrProvinceName     = $cert->subjectInfo(Qt::SslCertificate::StateOrProvinceName());
        my $CommonName              = $cert->subjectInfo(Qt::SslCertificate::CommonName());
        my $iOrganization           = $cert->issuerInfo(Qt::SslCertificate::Organization());
        my $iOrganizationalUnitName = $cert->issuerInfo(Qt::SslCertificate::OrganizationalUnitName());
        my $iCountryName            = $cert->issuerInfo(Qt::SslCertificate::CountryName());
        my $iLocalityName           = $cert->issuerInfo(Qt::SslCertificate::LocalityName());
        my $iStateOrProvinceName    = $cert->issuerInfo(Qt::SslCertificate::StateOrProvinceName());
        my $iCommonName             = $cert->issuerInfo(Qt::SslCertificate::CommonName());

        $Organization            = $Organization            ? $Organization            : '';
        $OrganizationalUnitName  = $OrganizationalUnitName  ? $OrganizationalUnitName  : '';
        $CountryName             = $CountryName             ? $CountryName             : '';
        $LocalityName            = $LocalityName            ? $LocalityName            : '';
        $StateOrProvinceName     = $StateOrProvinceName     ? $StateOrProvinceName     : '';
        $CommonName              = $CommonName              ? $CommonName              : '';
        $iOrganization           = $iOrganization           ? $iOrganization           : '';
        $iOrganizationalUnitName = $iOrganizationalUnitName ? $iOrganizationalUnitName : '';
        $iCountryName            = $iCountryName            ? $iCountryName            : '';
        $iLocalityName           = $iLocalityName           ? $iLocalityName           : '';
        $iStateOrProvinceName    = $iStateOrProvinceName    ? $iStateOrProvinceName    : '';
        $iCommonName             = $iCommonName             ? $iCommonName             : '';
        my @lines = (
            sprintf( this->tr('Organization: %s'), $Organization ),
            sprintf( this->tr('Subunit: %s'), $OrganizationalUnitName ),
            sprintf( this->tr('Country: %s'), $CountryName ),
            sprintf( this->tr('Locality: %s'), $LocalityName ),
            sprintf( this->tr('State/Province: %s'), $StateOrProvinceName ),
            sprintf( this->tr('Common Name: %s'), $CommonName ),
            '',
            sprintf( this->tr('Issuer Organization: %s'), $iOrganization ),
            sprintf( this->tr('Issuer Unit Name: %s'), $iOrganizationalUnitName ),
            sprintf( this->tr('Issuer Country: %s'), $iCountryName ),
            sprintf( this->tr('Issuer Locality: %s'), $iLocalityName ),
            sprintf( this->tr('Issuer State/Province: %s'), $iStateOrProvinceName ),
            sprintf( this->tr('Issuer Common Name: %s'), $iCommonName ),
        );
        foreach my $line ( @lines ) {
            form->certificateInfoView->addItem($line);
        }
    } else {
        form->certificateInfoView->clear();
    }
}

1;