diff options
Diffstat (limited to 'xmlsecurity/source/dialogs/certificateviewer.cxx')
-rw-r--r-- | xmlsecurity/source/dialogs/certificateviewer.cxx | 65 |
1 files changed, 53 insertions, 12 deletions
diff --git a/xmlsecurity/source/dialogs/certificateviewer.cxx b/xmlsecurity/source/dialogs/certificateviewer.cxx index 466bf213a81d..b7ec2b52198d 100644 --- a/xmlsecurity/source/dialogs/certificateviewer.cxx +++ b/xmlsecurity/source/dialogs/certificateviewer.cxx @@ -2,9 +2,9 @@ * * $RCSfile: certificateviewer.cxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: gt $ $Date: 2004-07-14 11:36:06 $ + * last change: $Author: gt $ $Date: 2004-07-15 06:20:08 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -298,12 +298,14 @@ CertificateViewerDetailsTP::CertificateViewerDetailsTP( Window* _pParent, Certif // fill list box Reference< security::XCertificate > xCert = mpDlg->mxCert; + UINT16 nLineBreak = 16; + const char* pHexSep = " "; String aLBEntry; String aDetails; aLBEntry = aDetails = String::CreateFromInt32( xCert->getVersion() ); InsertElement( String( ResId( STR_VERSION ) ), aLBEntry, aDetails ); - Sequence< sal_Int8 > aSerNumSeq = xCert->getSerialNumber(); - const sal_Int8* pSerNumSeq = aSerNumSeq.getConstArray(); + Sequence< sal_Int8 > aSeq = xCert->getSerialNumber(); +/* const sal_Int8* pSerNumSeq = aSerNumSeq.getConstArray(); int nCnt = aSerNumSeq.getLength(); String aSerNumStr; const char pHexDigs[ 17 ] = "0123456789ABCEDF"; @@ -319,18 +321,48 @@ CertificateViewerDetailsTP::CertificateViewerDetailsTP( Window* _pParent, Certif // aSerNumStr.AppendAscii( " " ); aSerNumStr.AppendAscii( pBuffer ); } - InsertElement( String( ResId( STR_SERIALNUM ) ), aSerNumStr, aSerNumStr, true ); + InsertElement( String( ResId( STR_SERIALNUM ) ), aSerNumStr, aSerNumStr, true );*/ + aLBEntry = XmlSec::GetHexString( aSeq, pHexSep ); + aDetails = XmlSec::GetHexString( aSeq, pHexSep, nLineBreak ); + InsertElement( String( ResId( STR_SERIALNUM ) ), aLBEntry, aDetails ); // InsertElement( String( ResId( STR_SIGALGORITHM ) ), String::CreateFromAscii( "n/a" ), String() ); + aLBEntry = XmlSec::GetPureContent( xCert->getIssuerName(), ", " ); aDetails = XmlSec::GetPureContent( xCert->getIssuerName(), "\n", true ); InsertElement( String( ResId( STR_ISSUER ) ), aLBEntry, aDetails ); + aSeq = xCert->getIssuerUniqueID(); + aLBEntry = XmlSec::GetHexString( aSeq, pHexSep ); + aDetails = XmlSec::GetHexString( aSeq, pHexSep, nLineBreak ); + InsertElement( String( ResId( STR_ISSUER_ID ) ), aLBEntry, aDetails ); + aLBEntry = aDetails = XmlSec::GetDateTimeString( xCert->getNotBefore() ); InsertElement( String( ResId( STR_VALIDFROM ) ), aLBEntry, aDetails ); aLBEntry = aDetails = XmlSec::GetDateTimeString( xCert->getNotAfter() ); InsertElement( String( ResId( STR_VALIDTO ) ), aLBEntry, aDetails ); + aLBEntry = XmlSec::GetPureContent( xCert->getSubjectName(), ", " ); aDetails = XmlSec::GetPureContent( xCert->getSubjectName(), "\n", true ); InsertElement( String( ResId( STR_SUBJECT ) ), aLBEntry, aDetails ); + aSeq = xCert->getSubjectUniqueID(); + aLBEntry = XmlSec::GetHexString( aSeq, pHexSep ); + aDetails = XmlSec::GetHexString( aSeq, pHexSep, nLineBreak ); + InsertElement( String( ResId( STR_SUBJECT_ID ) ), aLBEntry, aDetails ); + aLBEntry = aDetails = xCert->getSubjectPublicKeyAlgorithm(); + InsertElement( String( ResId( STR_SUBJECT_PUBKEY_ALGO ) ), aLBEntry, aDetails ); + aSeq = xCert->getSubjectPublicKeyValue(); + aLBEntry = XmlSec::GetHexString( aSeq, pHexSep ); + aDetails = XmlSec::GetHexString( aSeq, pHexSep, nLineBreak ); + InsertElement( String( ResId( STR_SUBJECT_PUBKEY_VAL ) ), aLBEntry, aDetails ); + + aLBEntry = aDetails = xCert->getSignatureAlgorithm(); + InsertElement( String( ResId( STR_SIGNATURE_ALGO ) ), aLBEntry, aDetails ); + + aLBEntry = aDetails = xCert->getThumbprintAlgorithm(); + InsertElement( String( ResId( STR_THUMBPRINT_ALGO ) ), aLBEntry, aDetails ); + aSeq = xCert->getThumbprint(); + aLBEntry = XmlSec::GetHexString( aSeq, pHexSep ); + aDetails = XmlSec::GetHexString( aSeq, pHexSep, nLineBreak ); + InsertElement( String( ResId( STR_THUMBPRINT ) ), aLBEntry, aDetails ); FreeResource(); @@ -377,15 +409,22 @@ CertificateViewerCertPathTP::CertificateViewerCertPathTP( Window* _pParent, Cert ,maCertStatusML ( this, ResId( ML_CERTSTATUS ) ) { // fill list box + maCertPathLB.SetNodeDefaultImages(); + maCertPathLB.SetSublistOpenWithLeftRight(); + Sequence< Reference< security::XCertificate > > - aCertPath = _pDlg->mxSecurityEnvironment->buildCertificatePath( _pDlg->mxCert ); + aCertPath = _pDlg->mxSecurityEnvironment->buildCertificatePath( _pDlg->mxCert ); const Reference< security::XCertificate >* - pCertPath = aCertPath.getConstArray(); + pCertPath = aCertPath.getConstArray(); - String aCN_Id( String::CreateFromAscii( "CN" ) ); - int nCnt = aCertPath.getLength(); + String aCN_Id( String::CreateFromAscii( "CN" ) ); + String aState; + int nCnt = aCertPath.getLength(); + SvLBoxEntry* pParent = NULL; for( int i = 0 ; i < nCnt ; ++i ) - InsertCert( i, XmlSec::GetContentPart( pCertPath[ i ]->getIssuerName(), aCN_Id ), String::CreateFromInt32( i ) ); + pParent = InsertCert( pParent, XmlSec::GetContentPart( pCertPath[ i ]->getIssuerName(), aCN_Id ), aState ); + + InsertCert( pParent, XmlSec::GetContentPart( _pDlg->mxCert->getIssuerName(), aCN_Id ), aState ); FreeResource(); @@ -428,8 +467,10 @@ void CertificateViewerCertPathTP::Clear( void ) maCertPathLB.Clear(); } -void CertificateViewerCertPathTP::InsertCert( int _nLevel, const String& _rName, const String& _rStatus ) +SvLBoxEntry* CertificateViewerCertPathTP::InsertCert( SvLBoxEntry* _pParent, const String& _rName, const String& _rStatus ) { - SvLBoxEntry* pEntry = maCertPathLB.InsertEntry( _rName ); + SvLBoxEntry* pEntry = maCertPathLB.InsertEntry( _rName, _pParent ); pEntry->SetUserData( ( void* ) new String( _rStatus ) ); + + return pEntry; } |