Example #1
0
        public static NativeStructs.CRYPTUI_WIZ_DIGITAL_SIGN_INFO InitSignInfoStruct(string fileName, X509Certificate2 signingCert, string timeStampServerUrl, string hashAlgorithm, SigningOption option)
        {
            NativeStructs.CRYPTUI_WIZ_DIGITAL_SIGN_INFO wizDigitalSignInfo = new NativeStructs.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 = NativeStructs.GetCertChoiceFromSigningOption(option);
            NativeStructs.CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO signExtendedInfo = NativeStructs.InitSignInfoExtendedStruct("", "", hashAlgorithm);
            IntPtr ptr = Marshal.AllocCoTaskMem(Marshal.SizeOf((object)signExtendedInfo));

            Marshal.StructureToPtr((object)signExtendedInfo, ptr, false);
            wizDigitalSignInfo.pSignExtInfo = ptr;
            return(wizDigitalSignInfo);
        }
Example #2
0
 public static NativeStructs.CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO InitSignInfoExtendedStruct(string description, string moreInfoUrl, string hashAlgorithm)
 {
     NativeStructs.CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO signExtendedInfo = new NativeStructs.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);
 }