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 &quot;%(signmsi.fullpath)&quot;" /> </target> <target name="signcabs">   <exec command="signtool.exe sign /a &quot;%(signcabs.fullpath)&quot;" /> </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

Popular posts from this blog

javascript - Clear button on addentry page doesn't work -

python - Error: Unresolved reference 'selenium' What is the reason? -

tensorflow when input_data MNIST_data , zlib.error: Error -3 while decompressing: invalid block type -