Réponse fournie par Alexey n'a pas fonctionné pour moi, j'ai finalement utilisé le code source de cette page:
https://msdn.microsoft.com/en-us/library/windows/hardware/mt674914%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
je devais faire quelques ajustements supplémentaires:
Avant d'utiliser Assurez-vous que le certificat EV se trouve dans votre magasin de certificats personnel. Dans l'outil que vous avez pour votre jeton USB, vous devriez pouvoir ouvrir le certificat et choisir d'installer le certificat.
Créez une nouvelle application console dans Visual Studio et collez ce code source. Installez le package nugget "WindowsBase" pour obtenir l'espace de noms System.IO.Packaging.
Avec un code source supplémentaire, nous pouvons avoir cette travail:
class Program
{
static void Main(string[] args)
{
X509Store store = new X509Store("My");
store.Open(OpenFlags.ReadOnly);
X509Certificate2 evCert = null;
foreach (X509Certificate2 mCert in store.Certificates)
{
if (mCert.Thumbprint == "3DF652D7EyourThumbprintF")
{
evCert = mCert;
}
}
Sign(@"C:\Path\To\Your\HLKXFile.hlkx", evCert);
}
public static void Sign(string package, X509Certificate2 certificate)
{
// Open the package to sign it
Package packageToSign = Package.Open(package);
// Specify that the digital signature should exist
// embedded in the signature part
PackageDigitalSignatureManager signatureManager = new PackageDigitalSignatureManager(packageToSign);
signatureManager.CertificateOption = CertificateEmbeddingOption.InCertificatePart;
// We want to sign every part in the package
List<Uri> partsToSign = new List<Uri>();
foreach (PackagePart part in packageToSign.GetParts())
{
partsToSign.Add(part.Uri);
}
// We will sign every relationship by type
// This will mean the signature is invalidated if *anything* is modified in //the package post-signing
List<PackageRelationshipSelector> relationshipSelectors = new List<PackageRelationshipSelector>();
foreach (PackageRelationship relationship in packageToSign.GetRelationships())
{
relationshipSelectors.Add(new PackageRelationshipSelector(relationship.SourceUri, PackageRelationshipSelectorType.Type, relationship.RelationshipType));
}
try
{
signatureManager.Sign(partsToSign, certificate, relationshipSelectors);
}
finally
{
packageToSign.Close();
}
}
}
Remplacez le Thumbprint avec votre certificat EV SHA1.
Il y a maintenant "Créer un paquet" sur l'onglet Package. Seulement "fusionner le paquet" et "ajouter le dossier des pilotes" –