wix - digital signatures added by Insignia conflicting with PatchCertificates? -
i'm exploring feature of digital signatures in wix context (windows installer msi , windows patch msp).
in case i'm generating msi non-embedded "data1.cab".
to have understood important to:
- sign external cabs
- inscribe msi digital signatures of cabs
- sign sign msi itself
i'm following official wix insignia documentation use in visual studio 2015:
in *.wixproj file have added following section.
additional command line parameters signtool.exe omitted brevity.
<import project="$(wixtargetspath)" /> <propertygroup> <signoutput>true</signoutput> </propertygroup> <target name="signmsi"> <exec command="signtool.exe sign /a "%(signmsi.fullpath)"" /> </target> <target name="signcabs"> <exec command="signtool.exe sign /a "%(signcabs.fullpath)"" /> </target>
so far good.
also need patchcertificates
future uac patches.
in *.wxs source file have:
<product ... > <package ... /> <media id="1" cabinet="data1.cab" embedcab="no"/> <patchcertificates> <digitalcertificate sourcefile="$(env.my_certificate_directory)/cert256.pem" id="patchcert"/> </patchcertificates> </product>
when compile project in visual studio following error:
c:\program files (x86)\wix toolset v3.10\bin\insignia.exe -im c:\src\test\setup\obj\release\bin\myproduct.msi -out c:\src\test\setup\obj\release\bin\myproduct.msi insignia.exe(0,0): error insg0001: cannot find requested object. done building project "myinstaller.wixproj" -- failed.
--
observation:
- both features on own working fine
- but if combine 2 compilation fails
are incompatible each other?
--
additional keywords:
- wix attributes: digitalcertificate, patchcertificates, digitalsignature
- msi tables: msidigitalcertificate, msipatchcertificate, msidigitalsignature
- general terms: digital certificate, digital signature, wix, insignia, votive, public key
--
update:
is maybe because of bug (see sourceforge, see github) (reported in 2013)?
i found solution.
i including certificate in pem
format:
<patchcertificates> <digitalcertificate sourcefile="$(env.my_certificate_directory)/cert256.pem" id="patchcert"/> </patchcertificates>
but must use certificate in der
format:
<patchcertificates> <digitalcertificate sourcefile="$(env.my_certificate_directory)/cert256_der.cer" id="patchcert"/> </patchcertificates>
also see related question: digitalcertificate (for uac patches) - format specification?
ps:
got on wrong track assuming bug or incompatibility because of specific error message not helpful @ all.
, it's strange error showing when combining both of features.
Comments
Post a Comment