Microsoft KB Archive/177178

= PRB: Unable to Sign the Cabfile When Running Signcode =

Article ID: 177178

Article Last Modified on 6/14/2006

-

APPLIES TO


 * Microsoft Software Development Kit for Java 1.0
 * Microsoft Software Development Kit for Java 1.5
 * Microsoft Software Development Kit for Java 1.51
 * Microsoft Software Development Kit for Java 2.02
 * Microsoft Software Development Kit for Java 3.0
 * Microsoft Software Development Kit for Java 3.1
 * Microsoft Software Development Kit for Java 3.2

-



This article was previously published under Q177178



SYMPTOMS
When you run Signcode.exe on your CAB file, one or more of the following errors occur:


 * Unable to sign the program . (80004005)
 * Unable to sign the program . (80030070)
 * Unable to sign the program . (80070005)
 * Unable to sign the program . (80070057)



CAUSE
Signcode.exe could not sign the CAB file for the reason indicated by the error number. The CAB file may not have been created with -s 6144 parameter or it is either read-only or corrupt.



Unable to sign the program . (80004005)
This error appears because you did not reserve space in your CAB file. Re- create the CAB file using the -s 6144 option to Cabarc.exe. This space must be reserved in the CAB file to allow room for the digital signature. It is not necessary to use the -s switch with the signing tools included with the SDK for Java 2.0x or newer. The Signcode.exe utility now creates the necessary space for the certificate at the time the CAB is signed.

Unable to sign the program . (80030070)
This error occurs because you did not reserve enough space in your CAB file. Re-create the CAB file using the -s 6144 option to Cabarc.exe. It is not necessary to use the -s switch with the signing tools included with the SDK for Java 2.0x or newer. The Signcode.exe utility now creates the necessary space for the certificate at the time the CAB is signed.

Unable to sign the program . (80070005)
This error appears because your cabfile is marked read-only.

Unable to sign the program . (80070057)
This error occurs because your cabfile is corrupt.



STATUS
This behavior is by design.



MORE INFORMATION
To use the -s option for Cabarc.exe, the -s 6144 option reserves unnecessary space in most situations. With the "test" certificate, you can typically get by with 1K of reserved space in the cab. A good estimate of the space required is slightly larger than the size of the .spc file you are signing with. Also note, it is possible that the certificate will require more than 6144 bytes.

Example
C:>CABARC -s 6144 N mycab *.class

NOTE: It is not necessary to use the -s switch with the signing tools included with the SDK for Java 2.0x or newer. The Signcode.exe utility now creates the necessary space for the certificate at the time the CAB is signed.

