43 #include <HbGroupBox> |
43 #include <HbGroupBox> |
44 #include <hbpushbutton.h> |
44 #include <hbpushbutton.h> |
45 #include <hbdataform.h> |
45 #include <hbdataform.h> |
46 #include <hbdataformmodel.h> |
46 #include <hbdataformmodel.h> |
47 #include <hbdataformmodelitem.h> |
47 #include <hbdataformmodelitem.h> |
48 |
48 #include <../../inc/cpsecplugins.h> |
49 #include "cpcertdetailview.h" |
49 #include "cpcertdetailview.h" |
50 #include "cpcertview.h" |
50 #include "cpcertview.h" |
51 #include "cpcertdatacontainer.h" |
51 #include "cpcertdatacontainer.h" |
52 #include "cpcertmanuisyncwrapper.h" |
52 #include "cpcertmanuisyncwrapper.h" |
53 #include "../../../pkiutilities/DeviceToken/Inc/TrustedSitesStore.h" |
53 #include "../../../pkiutilities/DeviceToken/Inc/TrustedSitesStore.h" |
166 if(( aType == CpCertView::EPersonalView ) || ( aType == CpCertView::EDeviceView )) |
166 if(( aType == CpCertView::EPersonalView ) || ( aType == CpCertView::EDeviceView )) |
167 { |
167 { |
168 TKeyUsagePKCS15 usage = keyUsageAndLocationL( *entry, &keyLocation ); |
168 TKeyUsagePKCS15 usage = keyUsageAndLocationL( *entry, &keyLocation ); |
169 addCertUsage(usage, *mCertDetails); |
169 addCertUsage(usage, *mCertDetails); |
170 } |
170 } |
171 |
171 RDEBUG("0", 0); |
172 if( certificateFormat == EX509Certificate ) |
172 if( certificateFormat == EX509Certificate ) |
173 { |
173 { |
174 addValidityPeriod( *details, *mCertDetails ); |
174 addValidityPeriod( *details, *mCertDetails ); |
175 TUid certLoc; |
175 TUid certLoc; |
176 certLoc.iUid = entry->Token().TokenType().Type().iUid; |
176 certLoc.iUid = entry->Token().TokenType().Type().iUid; |
387 addToListWidget(certDisplayDetails, certUrl, certURLDetail); |
394 addToListWidget(certDisplayDetails, certUrl, certURLDetail); |
388 } |
395 } |
389 |
396 |
390 void CpCertDetailView::addCertFormat( TCertificateFormat aCertFormat, HbListWidget& certDisplayDetails ) |
397 void CpCertDetailView::addCertFormat( TCertificateFormat aCertFormat, HbListWidget& certDisplayDetails ) |
391 { |
398 { |
|
399 RDEBUG("0", 0); |
392 // certificate format |
400 // certificate format |
393 QString certFormat = "Certificate format:"; |
401 QString certFormat = "Certificate format:"; |
394 QString certFormatDetails = "(Not defined)"; |
402 QString certFormatDetails = "(Not defined)"; |
395 if( aCertFormat == EX509Certificate || aCertFormat == EX509CertificateUrl) |
403 if( aCertFormat == EX509Certificate || aCertFormat == EX509CertificateUrl) |
396 { |
404 { |
438 } |
447 } |
439 |
448 |
440 void CpCertDetailView::addSerialNo( const CCertificate& certificate, |
449 void CpCertDetailView::addSerialNo( const CCertificate& certificate, |
441 HbListWidget& certDisplayDetails ) |
450 HbListWidget& certDisplayDetails ) |
442 { |
451 { |
|
452 RDEBUG("0", 0); |
443 // certificate serial number |
453 // certificate serial number |
444 QString sCertSerialNo("Serial number:"); |
454 QString sCertSerialNo("Serial number:"); |
445 QString sCertSerialNoDetails = 0; |
455 QString sCertSerialNoDetails = 0; |
446 TPtrC8 serialNumber = certificate.SerialNumber(); |
456 TPtrC8 serialNumber = certificate.SerialNumber(); |
447 TBuf<KMaxLengthTextSerialNumberFormatting> buf2; |
457 TBuf<KMaxLengthTextSerialNumberFormatting> buf2; |
455 } |
465 } |
456 |
466 |
457 void CpCertDetailView::addFingerprint( const CCertificate& certificate, |
467 void CpCertDetailView::addFingerprint( const CCertificate& certificate, |
458 HbListWidget& certDisplayDetails) |
468 HbListWidget& certDisplayDetails) |
459 { |
469 { |
|
470 RDEBUG("0", 0); |
460 // certificate fingerprint SHA-1 |
471 // certificate fingerprint SHA-1 |
461 QString sSha1("Fingerprint (SHA1):"); |
472 QString sSha1("Fingerprint (SHA1):"); |
462 TPtrC8 sha1_fingerprint = certificate.Fingerprint(); |
473 TPtrC8 sha1_fingerprint = certificate.Fingerprint(); |
463 HBufC* finalSha1 = NULL; |
474 HBufC* finalSha1 = NULL; |
464 QT_TRAP_THROWING( finalSha1 = HBufC::NewLC(100)); |
475 QString sSha1Details = NULL; |
465 TPtr finalShaPtr = finalSha1->Des(); |
476 |
466 divideIntoBlocks( sha1_fingerprint, finalShaPtr ); |
477 QT_TRAP_THROWING |
467 QString sSha1Details = QString( (QChar*)finalShaPtr.Ptr(), finalShaPtr.Length() ); |
478 ( |
468 CleanupStack::PopAndDestroy(finalSha1); |
479 finalSha1 = HBufC::NewLC(100); |
|
480 TPtr finalShaPtr = finalSha1->Des(); |
|
481 divideIntoBlocks( sha1_fingerprint, finalShaPtr ); |
|
482 sSha1Details = QString( (QChar*)finalShaPtr.Ptr(), finalShaPtr.Length() ); |
|
483 CleanupStack::PopAndDestroy(finalSha1); |
|
484 ) |
469 |
485 |
470 addToListWidget(certDisplayDetails, sSha1, sSha1Details); |
486 addToListWidget(certDisplayDetails, sSha1, sSha1Details); |
471 |
487 |
472 // certificate fingerprint MD5 |
488 // certificate fingerprint MD5 |
473 QString sMd5("Fingerprint (MD5):"); |
489 QString sMd5("Fingerprint (MD5):"); |
474 CMD5* md5= NULL; |
490 CMD5* md5= NULL; |
475 QT_TRAP_THROWING( md5 = CMD5::NewL()); |
491 QT_TRAP_THROWING |
476 QT_TRAP_THROWING(CleanupStack::PushL( md5 )); |
492 ( |
477 TBuf8<20> fingerprint = md5->Hash( certificate.Encoding() ); |
493 md5 = CMD5::NewL(); |
478 CleanupStack::PopAndDestroy( md5 ); |
494 CleanupStack::PushL( md5 ); |
479 HBufC* finalMd5 = NULL; |
495 TBuf8<20> fingerprint = md5->Hash( certificate.Encoding() ); |
480 QT_TRAP_THROWING( finalMd5 = HBufC::NewLC(100)); |
496 CleanupStack::PopAndDestroy( md5 ); |
481 TPtr finalMd5Ptr = finalMd5->Des(); |
497 HBufC* finalMd5 = NULL; |
482 divideIntoBlocks( fingerprint, finalMd5Ptr ); |
498 finalMd5 = HBufC::NewLC(100); |
483 QString sMd5Details = QString( (QChar*)finalMd5Ptr.Ptr(), finalMd5Ptr.Length()); |
499 TPtr finalMd5Ptr = finalMd5->Des(); |
484 CleanupStack::PopAndDestroy(finalMd5); |
500 divideIntoBlocks( fingerprint, finalMd5Ptr ); |
485 addToListWidget(certDisplayDetails, sMd5, sMd5Details); |
501 QString sMd5Details = QString( (QChar*)finalMd5Ptr.Ptr(), finalMd5Ptr.Length()); |
|
502 CleanupStack::PopAndDestroy(finalMd5); |
|
503 addToListWidget(certDisplayDetails, sMd5, sMd5Details); |
|
504 ) |
486 } |
505 } |
487 |
506 |
488 void CpCertDetailView::addPublicKeyDetailsL( const CCertificate& certificate, |
507 void CpCertDetailView::addPublicKeyDetailsL( const CCertificate& certificate, |
489 HbListWidget& certDisplayDetails ) |
508 HbListWidget& certDisplayDetails ) |
490 { |
509 { |
|
510 RDEBUG("0", 0); |
491 // Public key |
511 // Public key |
492 // Should look like: "Public key (%0U %1N bit):" |
512 // Should look like: "Public key (%0U %1N bit):" |
493 |
513 |
494 QString sPublicKey("Public key ("); // %S %d bits):"); |
514 QString sPublicKey("Public key ("); // %S %d bits):"); |
495 sPublicKey.append(asymmetricAlgoId(certificate)); |
515 sPublicKey.append(asymmetricAlgoId(certificate)); |
572 addToListWidget(certDisplayDetails, sPublicKey, sPublicKeyDetails); |
592 addToListWidget(certDisplayDetails, sPublicKey, sPublicKeyDetails); |
573 } |
593 } |
574 |
594 |
575 QString CpCertDetailView::asymmetricAlgoId( const CCertificate& certificate ) |
595 QString CpCertDetailView::asymmetricAlgoId( const CCertificate& certificate ) |
576 { |
596 { |
|
597 RDEBUG("0", 0); |
577 QString sAsymmetricAlgoId = 0; |
598 QString sAsymmetricAlgoId = 0; |
578 // public-key algorithm |
599 // public-key algorithm |
579 TAlgorithmId algorithmId = certificate.SigningAlgorithm().AsymmetricAlgorithm().Algorithm(); |
600 TAlgorithmId algorithmId = certificate.SigningAlgorithm().AsymmetricAlgorithm().Algorithm(); |
580 switch( algorithmId ) |
601 switch( algorithmId ) |
581 { |
602 { |
623 } |
644 } |
624 |
645 |
625 void CpCertDetailView::validateCertificateL( |
646 void CpCertDetailView::validateCertificateL( |
626 TInt aIndex, const CCertificate& certDetails, const CCTCertInfo& aCertInfo, CpCertView::TCertificateViews aType ) |
647 TInt aIndex, const CCertificate& certDetails, const CCTCertInfo& aCertInfo, CpCertView::TCertificateViews aType ) |
627 { |
648 { |
628 |
649 RDEBUG("0", 0); |
629 TInt poppableItems = 0; |
650 TInt poppableItems = 0; |
630 // Check allways first the validity period |
651 // Check allways first the validity period |
631 // Show Expired/Not yet valid notes |
652 // Show Expired/Not yet valid notes |
632 const CValidityPeriod& validityPeriod = certDetails.ValidityPeriod(); |
653 const CValidityPeriod& validityPeriod = certDetails.ValidityPeriod(); |
633 const TTime& startValue = validityPeriod.Start(); |
654 const TTime& startValue = validityPeriod.Start(); |
736 CleanupStack::PopAndDestroy( poppableItems ); |
757 CleanupStack::PopAndDestroy( poppableItems ); |
737 } |
758 } |
738 |
759 |
739 CArrayFixFlat<TValidationError>* CpCertDetailView::validateX509CertificateL( const CX509Certificate& certDetails ) |
760 CArrayFixFlat<TValidationError>* CpCertDetailView::validateX509CertificateL( const CX509Certificate& certDetails ) |
740 { |
761 { |
|
762 RDEBUG("0", 0); |
741 TInt poppableItems = 0; |
763 TInt poppableItems = 0; |
742 CArrayFixFlat<TValidationError>* validationError = |
764 CArrayFixFlat<TValidationError>* validationError = |
743 new ( ELeave ) CArrayFixFlat<TValidationError>( 1 ); |
765 new ( ELeave ) CArrayFixFlat<TValidationError>( 1 ); |
744 CleanupStack::PushL( validationError ); //This is returned, so it isn't destroyed at the end. |
766 CleanupStack::PushL( validationError ); //This is returned, so it isn't destroyed at the end. |
745 |
767 |
804 // Adds certificate/private key's location info to certificate details |
826 // Adds certificate/private key's location info to certificate details |
805 // --------------------------------------------------------- |
827 // --------------------------------------------------------- |
806 // |
828 // |
807 void CpCertDetailView::setLocationInfo(TBool certificate, TUid locUid, HbListWidget& certDisplayDetails) |
829 void CpCertDetailView::setLocationInfo(TBool certificate, TUid locUid, HbListWidget& certDisplayDetails) |
808 { |
830 { |
809 |
831 RDEBUG("0", 0); |
810 QString locationDetails = "(Not defined)"; |
832 QString locationDetails = "(Not defined)"; |
811 |
833 |
812 switch ( locUid.iUid ) |
834 switch ( locUid.iUid ) |
813 { |
835 { |
814 case KFileCertStoreUid: |
836 case KFileCertStoreUid: |