当前位置: 首页>>代码示例>>C++>>正文


C++ SslCertificate::subjectInfo方法代码示例

本文整理汇总了C++中SslCertificate::subjectInfo方法的典型用法代码示例。如果您正苦于以下问题:C++ SslCertificate::subjectInfo方法的具体用法?C++ SslCertificate::subjectInfo怎么用?C++ SslCertificate::subjectInfo使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SslCertificate的用法示例。


在下文中一共展示了SslCertificate::subjectInfo方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: s

CertificateDialog::CertificateDialog(const QSslCertificate &cert, QWidget *parent, bool removePath)
:	QDialog( parent )
,	d( new CertificateDialogPrivate )
{
	d->setupUi( this );
	QPushButton *save = d->buttonBox->button(QDialogButtonBox::Save);
	if(save && Settings(QSettings::SystemScope).value("disableSave", false).toBool())
	{
		d->buttonBox->removeButton(save);
		save->deleteLater();
	}
	if(removePath)
		d->tabWidget->removeTab( 2 );

	d->cert = cert;
	SslCertificate c = cert;
	QString i;
	QTextStream s( &i );
	s << "<b>" << tr("Certificate Information") << "</b><br />";
	s << "<hr>";
	s << "<b>" << tr("This certificate is intended for following purpose(s):") << "</b>";
	s << "<ul>";
	for(const QString &ext: c.enhancedKeyUsage())
		s << "<li>" << ext << "</li>";
	s << "</ul>";
	s << "<br /><br /><br /><br />";
	//s << tr("* Refer to the certification authority's statement for details.") << "<br />";
	s << "<hr>";
	s << "<p style='margin-left: 30px;'>";
	s << "<b>" << tr("Issued to:") << "</b> " << c.subjectInfo( QSslCertificate::CommonName );
	s << "<br /><br /><br />";
	s << "<b>" << tr("Issued by:") << "</b> " << c.issuerInfo( QSslCertificate::CommonName );
	s << "<br /><br /><br />";
	s << "<b>" << tr("Valid from") << "</b> " << c.effectiveDate().toLocalTime().toString( "dd.MM.yyyy" ) << " ";
	s << "<b>" << tr("to") << "</b> "<< c.expiryDate().toLocalTime().toString( "dd.MM.yyyy" );
	s << "</p>";
	d->info->setHtml( i );

	d->addItem( tr("Version"), "V" + c.version() );
	d->addItem( tr("Serial number"), QString( "%1 (0x%2)" )
		.arg( c.serialNumber().constData() )
		.arg( c.serialNumber( true ).constData() ) );
	d->addItem( tr("Signature algorithm"), c.signatureAlgorithm() );

	QStringList text, textExt;
	for(const QByteArray &obj: c.issuerInfoAttributes())
	{
		const QString &data = c.issuerInfo( obj );
		if( data.isEmpty() )
			continue;
		text << data;
		textExt << QString( "%1 = %2" ).arg( obj.constData() ).arg( data );
	}
	d->addItem( tr("Issuer"), text.join( ", " ), textExt.join( "\n" ) );
	d->addItem( tr("Valid from"), DateTime( c.effectiveDate().toLocalTime() ).toStringZ( "dd.MM.yyyy hh:mm:ss" ) );
	d->addItem( tr("Valid to"), DateTime( c.expiryDate().toLocalTime() ).toStringZ( "dd.MM.yyyy hh:mm:ss" ) );

	text.clear();
	textExt.clear();
	for(const QByteArray &obj: c.subjectInfoAttributes())
	{
		const QString &data = c.subjectInfo( obj );
		if( data.isEmpty() )
			continue;
		text << data;
		textExt << QString( "%1 = %2" ).arg( obj.constData() ).arg( data );
	}
	d->addItem( tr("Subject"), text.join( ", " ), textExt.join( "\n" ) );
	d->addItem( tr("Public key"), c.keyName(), c.publicKeyHex() );

	QStringList enhancedKeyUsage = c.enhancedKeyUsage().values();
	if( !enhancedKeyUsage.isEmpty() )
		d->addItem( tr("Enhanched key usage"), enhancedKeyUsage.join( ", " ), enhancedKeyUsage.join( "\n" ) );
	QStringList policies = c.policies();
	if( !policies.isEmpty() )
		d->addItem( tr("Certificate policies"), policies.join( ", " ) );
	d->addItem( tr("Authority key identifier"), c.toHex( c.authorityKeyIdentifier() ) );
	d->addItem( tr("Subject key identifier"), c.toHex( c.subjectKeyIdentifier() ) );
	QStringList keyUsage = c.keyUsage().values();
	if( !keyUsage.isEmpty() )
		d->addItem( tr("Key usage"), keyUsage.join( ", " ), keyUsage.join( "\n" ) );

	d->parameters->header()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
}
开发者ID:rrebane,项目名称:qt-common,代码行数:84,代码来源:CertificateWidget.cpp

示例2: rect

PrintSheet::PrintSheet( DigiDoc *doc, QPrinter *printer )
:	QPainter( printer )
,	p( printer )
{
	printer->setOrientation( QPrinter::Portrait );

	left		= p->pageRect().left();
	margin		= left;
	right		= p->pageRect().right() - 2*margin;
	top			= p->pageRect().top();
	bottom		= p->pageRect().y() + p->pageRect().height() - 2*margin;

#ifdef Q_OS_MAC
	scale( 0.8, 0.8 );
	right /= 0.8;
	bottom /= 0.8;
#endif

	QFont text = font();
	text.setFamily( "Arial, Liberation Sans, Helvetica, sans-serif" );
	text.setPixelSize( 12 );

	QFont head = text;
	QFont sHead = text;
	head.setPixelSize( 28 );
	sHead.setPixelSize( 18 );

	QPen oPen = pen();
	QPen sPen = pen();
	QPen hPen = pen();
	hPen.setWidth( 2 );
	sPen.setWidth( 1 );
	sPen.setStyle( Qt::DotLine );

	setFont( head );
	QRect rect( left, top, right, 60 );
	drawText( rect, Qt::TextWordWrap, tr("VALIDITY CONFIRMATION SHEET"), &rect );
	setPen( hPen );
	drawLine( left, rect.bottom(), right, rect.bottom() );
	top += rect.height() + 30;

	setFont( sHead );
	drawText( left, top, tr("SIGNED FILES") );
	setPen( sPen );
	drawLine( left, top+3, right, top+3 );
	top += 30;

	setFont( text );
	setPen( oPen );
	drawText( left, top, tr("FILE NAME") );
	drawText( right-150, top, tr("FILE SIZE") );
	for( int i = 0; i < doc->documentModel()->rowCount(); ++i )
	{
		int fileHeight = drawTextRect( QRect( left, top+5, right - left - 150, 20 ),
			doc->documentModel()->index( i, 0 ).data().toString() );
		drawTextRect( QRect( right-150, top+5, 150, fileHeight ),
			doc->documentModel()->index( i, 2 ).data().toString() );
		top += fileHeight;
		newPage( 50 );
	}
	top += 35;

	newPage( 50 );
	setFont( sHead );
	drawText( left, top, tr("SIGNERS") );
	setPen( sPen );
	drawLine( left, top+3, right, top+3 );
	top += 30;

	setFont( text );
	setPen( oPen );

	int i = 1;
	Q_FOREACH( const DigiDocSignature &sig, doc->signatures() )
	{
		const SslCertificate cert = sig.cert();
		bool tempel = cert.isTempel();

		newPage( 50 );
		drawText( left, top, tr("NO.") );
		drawText( left+40, top, tempel ? tr( "COMPANY" ) : tr( "NAME" ) );
		drawText( right-300, top, tempel ? tr("REGISTER CODE") : tr("PERSONAL CODE") );
		drawText( right-170, top, tr("TIME") );
		top += 5;

		int nameHeight = drawTextRect( QRect( left+40, top, right - left - 340, 20 ),
			cert.toString( cert.showCN() ? "CN" : "GN SN" ) );
		drawTextRect( QRect( left, top, 40, nameHeight ),
			QString::number( i++ ) );
		drawTextRect( QRect( right-300, top, 130, nameHeight ),
			cert.subjectInfo( "serialNumber" ) );
		drawTextRect( QRect( right-170, top, 170, nameHeight ),
			DateTime( sig.dateTime() ).toStringZ( "dd.MM.yyyy hh:mm:ss" ) );
		top += 20 + nameHeight;

		QString valid;
		switch( sig.validate() )
		{
		case DigiDocSignature::Valid: valid.append( tr("SIGNATURE IS VALID") ); break;
		case DigiDocSignature::Invalid: valid.append( tr("SIGNATURE IS NOT VALID") ); break;
//.........这里部分代码省略.........
开发者ID:Krabi,项目名称:idkaart_public,代码行数:101,代码来源:PrintSheet.cpp

示例3: setCertificate

void CertificateDialog::setCertificate( const QSslCertificate &cert )
{
	d->cert = cert;
	SslCertificate c = cert;
	QString i;
	QTextStream s( &i );
	s << "<b>" << tr("Certificate Information") << "</b><br />";
	s << "<hr>";
	s << "<b>" << tr("This certificate is intended for following purpose(s):") << "</b>";
	s << "<ul>";
	Q_FOREACH( const QString &ext, c.enhancedKeyUsage() )
		s << "<li>" << ext << "</li>";
	s << "</ul>";
	s << "<br /><br /><br /><br />";
	//s << tr("* Refer to the certification authority's statement for details.") << "<br />";
	s << "<hr>";
	s << "<p style='margin-left: 30px;'>";
	s << "<b>" << tr("Issued to:") << "</b> " << c.subjectInfo( QSslCertificate::CommonName );
	s << "<br /><br /><br />";
	s << "<b>" << tr("Issued by:") << "</b> " << c.issuerInfo( QSslCertificate::CommonName );
	s << "<br /><br /><br />";
	s << "<b>" << tr("Valid from") << "</b> " << c.effectiveDate().toLocalTime().toString( "dd.MM.yyyy" ) << " ";
	s << "<b>" << tr("to") << "</b> "<< c.expiryDate().toLocalTime().toString( "dd.MM.yyyy" );
	s << "</p>";
	d->info->setHtml( i );

	d->addItem( tr("Version"), "V" + c.version() );
	d->addItem( tr("Serial number"), QString( "%1 (0x%2)" )
		.arg( c.serialNumber().constData() )
		.arg( QString::number( c.serialNumber().toInt(), 16 ) ) );
	d->addItem( tr("Signature algorithm"), c.signatureAlgorithm() );

	QStringList text, textExt;
	Q_FOREACH( const QByteArray &subject, QList<QByteArray>() << "CN" << "OU" << "O" << "C" )
	{
		const QString &data = c.issuerInfo( subject );
		if( data.isEmpty() )
			continue;
		text << data;
		textExt << QString( "%1 = %2" ).arg( subject.constData() ).arg( data );
	}
	d->addItem( tr("Issuer"), text.join( ", " ), textExt.join( "\n" ) );
	d->addItem( tr("Valid from"), c.effectiveDate().toLocalTime().toString( "dd.MM.yyyy hh:mm:ss" ) );
	d->addItem( tr("Vaild to"), c.expiryDate().toLocalTime().toString( "dd.MM.yyyy hh:mm:ss" ) );

	text.clear();
	textExt.clear();
	Q_FOREACH( const QByteArray &subject,
		QList<QByteArray>() << "serialNumber" << "GN" << "SN" << "CN" << "OU" << "O" << "C" )
	{
		const QString &data = c.subjectInfo( subject );
		if( data.isEmpty() )
			continue;
		text << data;
		textExt << QString( "%1 = %2" ).arg( subject.constData() ).arg( data );
	}
	d->addItem( tr("Subject"), text.join( ", " ), textExt.join( "\n" ) );
	d->addItem( tr("Public key"), QString("%1 (%2)")
			.arg( c.publicKey().algorithm() == QSsl::Rsa ? "RSA" : "DSA" )
			.arg( d->keyLenght( c.publicKey() ) ),
		c.toHex( c.publicKey().toDer() ) );

	QStringList enhancedKeyUsage = c.enhancedKeyUsage().values();
	if( !enhancedKeyUsage.isEmpty() )
		d->addItem( tr("Enhanched key usage"), enhancedKeyUsage.join( ", " ), enhancedKeyUsage.join( "\n" ) );
	QStringList policies = c.policies();
	if( !policies.isEmpty() )
		d->addItem( tr("Certificate policies"), policies.join( ", " ) );
	d->addItem( tr("Authority key identifier"), c.toHex( c.authorityKeyIdentifier() ) );
	d->addItem( tr("Subject key identifier"), c.toHex( c.subjectKeyIdentifier() ) );
	QStringList keyUsage = c.keyUsage().values();
	if( !keyUsage.isEmpty() )
		d->addItem( tr("Key usage"), keyUsage.join( ", " ), keyUsage.join( "\n" ) );
}
开发者ID:Krabi,项目名称:idkaart_public,代码行数:74,代码来源:CertificateWidget.cpp

示例4: QTime

PrintSheet::PrintSheet( DigiDoc *doc, QPrinter *printer )
:	QPainter( printer )
,	p( printer )
{
	printer->setOrientation( QPrinter::Portrait );

	QDateTime utc = QDateTime::currentDateTime().toUTC();
	utc.setTimeSpec( Qt::LocalTime );
	int diffsec = utc.secsTo( QDateTime::currentDateTime() );
	QString timediff = diffsec >= 0 ? "+" : "-";
	timediff += QTime().addSecs( diffsec >= 0 ? diffsec : -diffsec ).toString( "hh:mm" );

	left		= p->pageRect().x();
	margin		= left;
	right		= p->pageRect().topRight().x() - 2*margin;
	top			= p->pageRect().topLeft().y() + 30;

#ifdef Q_OS_MAC
	scale( 0.8, 0.8 );
	right /= 0.8;
#endif

	QFont text = font();
	text.setFamily( "Arial, Liberation Sans, Helvetica, sans-serif" );
	text.setPixelSize( 12 );

	QFont head = text;
	QFont sHead = text;
	head.setPixelSize( 28 );
	sHead.setPixelSize( 18 );

	QPen oPen = pen();
	QPen sPen = pen();
	QPen hPen = pen();
	hPen.setWidth( 2 );
	sPen.setWidth( 1 );
	sPen.setStyle( Qt::DotLine );

	setFont( head );
	drawText( left, top, tr("VALIDITY CONFIRMATION SHEET") );
	setPen( hPen );
	drawLine( left, top+3, right, top+3 );
	top += 45;

	setFont( sHead );
	drawText( left, top, tr("SIGNED FILES") );
	setPen( sPen );
	drawLine( left, top+3, right, top+3 );
	top += 30;

	setFont( text );
	setPen( oPen );
	drawText( left, top, tr("FILE NAME") );
	drawText( left+400, top, tr("FILE SIZE") );
	for( int i = 0; i < doc->documentModel()->rowCount(); ++i )
	{
		drawLine( left, top+5, right, top+5 );
		drawLine( left, top+5, left, top+25 );
		drawLine( left+395, top+5, left+395, top+25 );
		drawLine( right, top+5, right, top+25 );
		top += 20;
		drawText( left+5, top, doc->documentModel()->index( i, 0 ).data().toString() );
		drawText( left+400, top, doc->documentModel()->index( i, 2 ).data().toString() );
		drawLine( left, top+5, right, top+5 );
		newPage( 50 );
	}
	top += 35;

	newPage( 50 );
	setFont( sHead );
	drawText( left, top, tr("SIGNERS") );
	setPen( sPen );
	drawLine( left, top+3, right, top+3 );
	top += 30;
	
	setFont( text );
	setPen( oPen );

	int i = 1;
	Q_FOREACH( const DigiDocSignature &sig, doc->signatures() )
	{
		newPage( 50 );
		const SslCertificate cert = sig.cert();
		bool tempel = cert.isTempel();

		drawText( left, top, tr("NO.") );
		drawLine( left+35, top+5, left+35, top+25 );
		drawText( left+40, top, tempel ? tr( "COMPANY" ) : tr( "NAME" ) );
		drawLine( right-305, top+5, right-305, top+25 );
		drawText( right-300, top, tempel ? tr("REGISTER CODE") : tr("PERSONAL CODE") );
		drawLine( right-165, top+5, right-165, top+25 );
		drawText( right-160, top, tr("TIME") );
		drawRect( left, top+5, right - margin, 20 );
		top += 20;

		drawText( left+5, top, QString::number( i ) );
		drawText( left+40, top, cert.toString( cert.showCN() ? "CN" : "GN SN" ) );
		drawText( right-300, top, cert.subjectInfo( "serialNumber" ) );
		drawText( right-160, top, sig.dateTime().toString( "dd.MM.yyyy hh:mm:ss" ) + " " + timediff );
		top += 25;
//.........这里部分代码省略.........
开发者ID:Krabi,项目名称:idkaart_public,代码行数:101,代码来源:PrintSheet.cpp


注:本文中的SslCertificate::subjectInfo方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。