Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Jsign to 5.0 #52

Merged
merged 1 commit into from
Sep 29, 2023
Merged

Update Jsign to 5.0 #52

merged 1 commit into from
Sep 29, 2023

Conversation

ebourg
Copy link
Contributor

@ebourg ebourg commented Aug 23, 2023

The changes from the forked 3.1-signserver5.5 version were merged in the version 4.0, and several improvements relevant to signserver have been made:

  • Large MSI files are now supported
  • APPX/MSIX support
  • Several OutOfMemoryError caused by invalid input files have been fixed

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
@netmackan
Copy link
Collaborator

Great news Emmanuel!

Actually I have seen the new versions and wanted to try them out but have not had a chance yet.

I think so far we have mostly been using Jsign for PE and PowerShell but many other looks interesting as well. With the great structure of Jsign I am thinking that we should refactor the Authenticode signers in SignServer so that they would work with any format supported by Jsign without the special handling for each of the formats that we currently have in SignServer.

@ebourg
Copy link
Contributor Author

ebourg commented Aug 25, 2023

There is a dependency on jsign-core but no actual usage in the code (besides the copied DigestAlgorithm class). What did I miss?

@netmackan
Copy link
Collaborator

Yes you are right. Actually the Authenticode support is currently only in Enterprise Edition so that is why you could not find it here.
(Documentation is here https://doc.primekey.com/signserver/signserver-reference/signserver-workers/signserver-signers/ms-authenticode-signer where it is marked as an enterprise feature.)

@netmackan netmackan merged commit 1df7992 into Keyfactor:main Sep 29, 2023
@netmackan
Copy link
Collaborator

We have updated to use Jsign 5.0. However, we discovered the changes in the signature algorithm OIDs from for instance SHA256withRSA to rsaEncryption as well as the removal of cmsAlgorithmProtection signed attribute.

Some of our users are sensitive to any changes in the signature formats so for now we had to revert those changes and for now have our own version of that class.

I suppose those changes were made to have a more similar (or even exactly the same) signature output as what you get from signtool? If so, I think those are good changes but for SignServer we need to think of how to roll out those changes to our users. Maybe we will need a configuration option so that users having trouble with it could switch back to the old format.

@ebourg
Copy link
Contributor Author

ebourg commented Sep 29, 2023

We have updated to use Jsign 5.0. However, we discovered the changes in the signature algorithm OIDs from for instance SHA256withRSA to rsaEncryption as well as the removal of cmsAlgorithmProtection signed attribute.

Some of our users are sensitive to any changes in the signature formats so for now we had to revert those changes and for now have our own version of that class.

Do you mean that this change triggered validation issues? Or do you fear that it could be disruptive?

I suppose those changes were made to have a more similar (or even exactly the same) signature output as what you get from signtool?

Yes that's the goal. If you have an explicit use case where diverging from signtool is desirable, I'm willing to add a parameter to make it possible.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants