[Packagemanager] Fix GetPackageCertificate (#5428)
[platform/core/csapi/tizenfx.git] / src / Tizen.Applications.PackageManager / Tizen.Applications / PackageCertificate.cs
index 914d21a..ed68134 100755 (executable)
@@ -21,8 +21,9 @@ using System.Runtime.InteropServices;
 namespace Tizen.Applications
 {
     /// <summary>
-    /// This class provides information about package certification.
+    /// This class provides information about the package certification.
     /// </summary>
+    /// <since_tizen> 3 </since_tizen>
     public class PackageCertificate
     {
         private const string LogTag = "Tizen.Applications";
@@ -39,18 +40,21 @@ namespace Tizen.Applications
         }
 
         /// <summary>
-        /// Root certificate
+        /// Root certificate.
         /// </summary>
+        /// <since_tizen> 3 </since_tizen>
         public string Root { get { return _root;  } }
 
         /// <summary>
-        /// Intermediate certificate
+        /// Intermediate certificate.
         /// </summary>
+        /// <since_tizen> 3 </since_tizen>
         public string Intermediate { get { return _intermediate; } }
 
         /// <summary>
-        /// Signer certificate
+        /// Signer certificate.
         /// </summary>
+        /// <since_tizen> 3 </since_tizen>
         public string Signer { get { return _signer; } }
 
         internal static IReadOnlyDictionary<CertificateType, PackageCertificate> GetPackageCertificates(IntPtr packageInfoHandle)
@@ -59,7 +63,14 @@ namespace Tizen.Applications
             Interop.Package.PackageInfoCertificateInfoCallback certificateInfoCb = (handle, certType, certValue, userData) =>
             {
                 if (certValue == null) certValue = string.Empty;
-                nativeCertificates.Add(certType, certValue);
+                try
+                {
+                    nativeCertificates.Add(certType, certValue);
+                }
+                catch (ArgumentException ex)
+                {
+                    Log.Warn(LogTag, string.Format("Failed to add cert value. certType = {0}, err = {1}", certType, ex.Message));
+                }
                 return true;
             };
 
@@ -81,8 +92,8 @@ namespace Tizen.Applications
             certificates.Add(CertificateType.Distributor, new PackageCertificate(distRootCertificate, distIntermediateCertificate, distSignerCertificate));
 
             string dist2RootCertificate = GetValue(nativeCertificates, Interop.Package.CertificateType.Distributor2RootCertificate);
-            string dist2IntermediateCertificate = GetValue(nativeCertificates, Interop.Package.CertificateType.Distributor2RootCertificate);
-            string dist2SignerCertificate = GetValue(nativeCertificates, Interop.Package.CertificateType.Distributor2RootCertificate);
+            string dist2IntermediateCertificate = GetValue(nativeCertificates, Interop.Package.CertificateType.Distributor2IntermediateCertificate);
+            string dist2SignerCertificate = GetValue(nativeCertificates, Interop.Package.CertificateType.Distributor2SignerCertificate);
             certificates.Add(CertificateType.Distributor2, new PackageCertificate(dist2RootCertificate, dist2IntermediateCertificate, dist2SignerCertificate));
 
             return certificates;