Example #1
0
 internal static NativeMethods.CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO InitSignInfoExtendedStruct(
     string description,
     string moreInfoUrl,
     string hashAlgorithm)
 {
     NativeMethods.CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO signExtendedInfo = new NativeMethods.CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO();
     signExtendedInfo.dwSize               = (uint)Marshal.SizeOf((object)signExtendedInfo);
     signExtendedInfo.dwAttrFlagsNotUsed   = 0U;
     signExtendedInfo.pwszDescription      = description;
     signExtendedInfo.pwszMoreInfoLocation = moreInfoUrl;
     signExtendedInfo.pszHashAlg           = (string)null;
     signExtendedInfo.pwszSigningCertDisplayStringNotUsed = IntPtr.Zero;
     signExtendedInfo.hAdditionalCertStoreNotUsed         = IntPtr.Zero;
     signExtendedInfo.psAuthenticatedNotUsed   = IntPtr.Zero;
     signExtendedInfo.psUnauthenticatedNotUsed = IntPtr.Zero;
     if (hashAlgorithm != null)
     {
         signExtendedInfo.pszHashAlg = hashAlgorithm;
     }
     return(signExtendedInfo);
 }
Example #2
0
        internal static NativeMethods.CRYPTUI_WIZ_DIGITAL_SIGN_INFO InitSignInfoStruct(
            string fileName,
            X509Certificate2 signingCert,
            string timeStampServerUrl,
            string hashAlgorithm,
            SigningOption option)
        {
            NativeMethods.CRYPTUI_WIZ_DIGITAL_SIGN_INFO wizDigitalSignInfo = new NativeMethods.CRYPTUI_WIZ_DIGITAL_SIGN_INFO();
            wizDigitalSignInfo.dwSize                 = (uint)Marshal.SizeOf((object)wizDigitalSignInfo);
            wizDigitalSignInfo.dwSubjectChoice        = 1U;
            wizDigitalSignInfo.pwszFileName           = fileName;
            wizDigitalSignInfo.dwSigningCertChoice    = 1U;
            wizDigitalSignInfo.pSigningCertContext    = signingCert.Handle;
            wizDigitalSignInfo.pwszTimestampURL       = timeStampServerUrl;
            wizDigitalSignInfo.dwAdditionalCertChoice = NativeMethods.GetCertChoiceFromSigningOption(option);
            NativeMethods.CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO signExtendedInfo = NativeMethods.InitSignInfoExtendedStruct("", "", hashAlgorithm);
            IntPtr ptr = Marshal.AllocCoTaskMem(Marshal.SizeOf((object)signExtendedInfo));

            Marshal.StructureToPtr((object)signExtendedInfo, ptr, false);
            wizDigitalSignInfo.pSignExtInfo = ptr;
            return(wizDigitalSignInfo);
        }