From 894d41cac2a8adde6c853e42b755246cd67aa22c Mon Sep 17 00:00:00 2001 From: Ernest Borowski Date: Thu, 6 Oct 2022 10:50:02 +0200 Subject: [PATCH] Improve startup performance && remove svace fix. Startup performaance has been improved by lazy loading certificates metadata. Removing Dispose() invocation because it caused some errors during qa. Change-Id: Iaa07652708ff487697987f425659ef6354e82e73 Signed-off-by: Ernest Borowski --- .../WidgetSettingCertificates.cs | 6 +- .../api/Interop/Interop.CertSvc.cs | 127 ++++++++++-------- ...org.tizen.cssetting-certificates-1.0.0.tpk | Bin 115509 -> 115583 bytes 3 files changed, 71 insertions(+), 62 deletions(-) diff --git a/SettingCertificates/SettingCertificates/WidgetSettingCertificates.cs b/SettingCertificates/SettingCertificates/WidgetSettingCertificates.cs index 3457d5a..348f13a 100644 --- a/SettingCertificates/SettingCertificates/WidgetSettingCertificates.cs +++ b/SettingCertificates/SettingCertificates/WidgetSettingCertificates.cs @@ -51,7 +51,6 @@ namespace SettingCertificates window.GetDefaultLayer().Add(_rootView); _navigator = window.GetDefaultNavigator(); _navigator.Push(CreateFirstPage()); - } private ContentPage CreateFirstPage() { @@ -89,8 +88,7 @@ namespace SettingCertificates ContentPage firstPage = CreateContentPage(Resources.IDS_ST_HEADER_MANAGE_CERTIFICATES_ABB/*"Manage certificates"*/, content); firstPage.AppBar.AutoNavigationContent = false; - ViewStyle style = ThemeManager.GetStyle("Tizen.NUI.Components.AppBar"); - var navigationContent = new Button(((AppBarStyle)style).BackButton); + var navigationContent = new Button(((AppBarStyle)ThemeManager.GetStyle("Tizen.NUI.Components.AppBar")).BackButton); navigationContent.Clicked += (o, e) => { Bundle bundle = new Bundle(); @@ -98,7 +96,6 @@ namespace SettingCertificates SetContentInfo(bundle.Encode()); }; firstPage.AppBar.NavigationContent = navigationContent; - style.Dispose(); return firstPage; } @@ -128,6 +125,7 @@ namespace SettingCertificates } private ContentPage CreateCertDetails(certificateMetadata cert) { + cert.GetMetadata(); ScrollableBase content = CreateScrollableBase(); content.BackgroundColor = new Color("#EFEFEF"); const float fieldTitleFontScale = 1.2F; diff --git a/SettingCertificates/SettingCertificates/api/Interop/Interop.CertSvc.cs b/SettingCertificates/SettingCertificates/api/Interop/Interop.CertSvc.cs index ff8775b..c7add41 100644 --- a/SettingCertificates/SettingCertificates/api/Interop/Interop.CertSvc.cs +++ b/SettingCertificates/SettingCertificates/api/Interop/Interop.CertSvc.cs @@ -129,6 +129,7 @@ internal static partial class Interop internal DateTime before; internal DateTime after; internal int rootCa; + private bool gotMetadata = false; public certificateMetadata() { fields = new string[Enum.GetNames(typeof(CertificateField)).Length]; @@ -165,8 +166,71 @@ internal static partial class Interop } return GetCertFieldDescription(field); } - } + public void GetMetadata() + { + if (gotMetadata == true) + { + return; + } + InstanceNew(out IntPtr instance); + if (instance == null) + { + Tizen.Log.Debug(LogTag, "Unable to create new instance"); + return; + } + ErrorCode err = (ErrorCode)GetPKCS12CertificateFromStore(instance, storeType, gname, out Certificate cout); + if (err != ErrorCode.CERTSVC_SUCCESS) + { + Tizen.Log.Debug(LogTag, "Unable to GetPKCS12CertificateFromStore, err: " + err + ", instance: " + + instance + " gname: " + gname + " store_type: " + storeType); + InstanceFree(instance); + return; + } + + err = (ErrorCode)GetCertificateNotAfter(cout, out long time); + if (err != ErrorCode.CERTSVC_SUCCESS) + { + Tizen.Log.Debug(LogTag, "Unable to GetCertificateNotAfter, , err: " + err + ", instance: " + + instance + " gname: " + gname + " store_type: " + storeType); + InstanceFree(instance); + return; + } + after = new DateTime(1970, 1, 1).ToLocalTime().AddSeconds(time); + err = (ErrorCode)GetCertificateNotBefore(cout, out time); + if (err != ErrorCode.CERTSVC_SUCCESS) + { + Tizen.Log.Debug(LogTag, "Unable to GetCertificateNotBefore, , err: " + err + ", instance: " + + instance + " gname: " + gname + " store_type: " + storeType); + InstanceFree(instance); + return; + } + before = new DateTime(1970, 1, 1).ToLocalTime().AddSeconds(time); + err = (ErrorCode)GetCertificateIsRootCa(cout, out int isRootCa); + if (err != ErrorCode.CERTSVC_SUCCESS) + { + Tizen.Log.Debug(LogTag, "Unable to GetCertificateIsRootCa, , err: " + err + ", instance: " + + instance + " gname: " + gname + " store_type: " + storeType); + InstanceFree(instance); + return; + } + rootCa = isRootCa; + foreach (CertificateField certificateField in Enum.GetValues(typeof(CertificateField))) + { + err = (ErrorCode)GetCertificateStringField(cout, certificateField, out CertSvcString certSvcString); + if (err != ErrorCode.CERTSVC_SUCCESS) + { + Tizen.Log.Debug(LogTag, "Unable to GetCertificateStringField, , err: " + err + ", instance: " + + instance + " gname: " + gname + " store_type: " + storeType); + continue; + } + string stringField = Marshal.PtrToStringUTF8(certSvcString.privateHandler); + fields[(int)certificateField] = stringField; + } + gotMetadata = true; + InstanceFree(instance); + } + } internal struct StoreCertHandle { string name; @@ -215,72 +279,16 @@ internal static partial class Interop { IntPtr cur = certList; var list = new List(); - while (cur != IntPtr.Zero) { StoreCertList item = Marshal.PtrToStructure(cur); - certificateMetadata cert = new certificateMetadata + certificateMetadata cert = new certificateMetadata() { status = item.status, gname = Marshal.PtrToStringUTF8(item.gname), title = Marshal.PtrToStringUTF8(item.title), storeType = item.storeType }; - ErrorCode err = (ErrorCode)GetPKCS12CertificateFromStore(instance, item.storeType, item.gname, out Certificate cout); - if (err != ErrorCode.CERTSVC_SUCCESS) - { - Tizen.Log.Debug(LogTag, "Unable to GetPKCS12CertificateFromStore, err: " + err + ", instance: " - + instance + " gname: " + item.gname + " store_type: " + item.storeType); - cur = item.next; - continue; - } - - err = (ErrorCode)GetCertificateNotAfter(cout, out long time); - if (err != ErrorCode.CERTSVC_SUCCESS) - { - Tizen.Log.Debug(LogTag, "Unable to GetCertificateNotAfter, , err: " + err + ", instance: " - + instance + " gname: " + item.gname + " store_type: " + item.storeType); - cur = item.next; - continue; - } - cert.after = new DateTime(1970, 1, 1).ToLocalTime().AddSeconds(time); - err = (ErrorCode)GetCertificateNotBefore(cout, out time); - if (err != ErrorCode.CERTSVC_SUCCESS) - { - Tizen.Log.Debug(LogTag, "Unable to GetCertificateNotBefore, , err: " + err + ", instance: " - + instance + " gname: " + item.gname + " store_type: " + item.storeType); - cur = item.next; - continue; - } - cert.before = new DateTime(1970, 1, 1).ToLocalTime().AddSeconds(time); - err = (ErrorCode)GetCertificateIsRootCa(cout, out int isRootCa); - if (err != ErrorCode.CERTSVC_SUCCESS) - { - Tizen.Log.Debug(LogTag, "Unable to GetCertificateIsRootCa, , err: " + err + ", instance: " - + instance + " gname: " + item.gname + " store_type: " + item.storeType); - cur = item.next; - continue; - } - cert.rootCa = isRootCa; - bool gotError = false; - foreach (CertificateField certificateField in Enum.GetValues(typeof(CertificateField))) - { - err = (ErrorCode)GetCertificateStringField(cout, certificateField, out CertSvcString certSvcString); - if (err != ErrorCode.CERTSVC_SUCCESS) - { - Tizen.Log.Debug(LogTag, "Unable to GetCertificateStringField, , err: " + err + ", instance: " - + instance + " gname: " + item.gname + " store_type: " + item.storeType); - cur = item.next; - gotError = true; - break; - } - string stringField = Marshal.PtrToStringUTF8(certSvcString.privateHandler); - cert.fields[(int)certificateField] = stringField; - } - if (gotError == true) - { - continue; - } cur = item.next; list.Add(cert); } @@ -303,6 +311,9 @@ internal static partial class Interop // int certsvc_pkcs12_get_certificate_from_store(CertSvcInstance instance, CertStoreType storeType, const char* gname, CertSvcCertificate *certificate); [DllImport(Libraries.CertSvc, EntryPoint = "certsvc_pkcs12_get_certificate_from_store")] internal static extern int GetPKCS12CertificateFromStore(IntPtr instance, CertStoreType storeType, IntPtr gname, out Certificate certificate); + // int certsvc_pkcs12_get_certificate_from_store(CertSvcInstance instance, CertStoreType storeType, const char* gname, CertSvcCertificate *certificate); + [DllImport(Libraries.CertSvc, EntryPoint = "certsvc_pkcs12_get_certificate_from_store")] + internal static extern int GetPKCS12CertificateFromStore(IntPtr instance, CertStoreType storeType, [MarshalAs(UnmanagedType.LPStr)] string gname, out Certificate certificate); // int certsvc_certificate_get_string_field(CertSvcCertificate certificate, CertSvcCertificateField field, CertSvcString *buffer); [DllImport(Libraries.CertSvc, EntryPoint = "certsvc_certificate_get_string_field")] diff --git a/packaging/org.tizen.cssetting-certificates-1.0.0.tpk b/packaging/org.tizen.cssetting-certificates-1.0.0.tpk index a6ddc179b3253c9f54048fee6790c277c657ab36..9634adfb2e32566f867d3144ab37309ebfac8274 100644 GIT binary patch delta 31003 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 delta 31032 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 -- 2.34.1