Here are some tips on how to secure and validate files using
certutil in Windows.
You can sign files using GPG. The command below adds a new file with
.asc postfix contains a target file signature.
1 gpg --detach-sign --armor SomeZipFile.zip
If you want other people to have the opportunity to verify files was signed by your GPG key - you need to share public GPG key to them. It is possible to do it manually e.g. in GitHub releases page or directly in
readme.md, or you can publish key on trusted keyserver by the following command:
1 gpg --keyserver keys.openpgp.org --send-keys 3AA5C34371567BD2
Verification is a common feature that every opensource software engineer must know about.
If you need to validate files that were signed not by you, first of all you need to import the public key that used for signature creation.
You can do this from trusted keyserver (do not forget to replace
3AA5C34371567BD2 to GPG key ID that used for file signing):
1 gpg --keyserver keys.openpgp.org --recv 3AA5C34371567BD2
Or manually from file:
1 gpg --import somekeyfile.key
Next, just use the command below to verify the target file:
1 gpg --verify SomeZipFile.zip.asc SomeZipFile.zip
Sometimes people provide SHA256/SHA512 hashcodes for additional validation way. You can check some file SHA* hash by using this command:
1 certutil -hashfile SomeZipFile.zip SHA512