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;
|