Я подписываю код VBA в файлах Excel автоматически с помощью цифровой подписи, что хорошо работает при использовании X509Certificate2 и EPPlus.
Теперь я хочу включить метку времени, есть идеи, где я могу установить это?
Если я подпишу код вручную в VBA Editor - Инструменты - Цифровая подпись, код будет подписан отметкой времени (и контрсигнатурой). Таким образом, он остается в силе, когда срок действия сертификата подписывающего лица истек. Но при подписании с EPPlus это не так.
В ExcelVBASignature.cs это выглядит так, как если бы эта функция была еще подготовлена ..
Вот как я это делаю до сих пор:
using System;
using System.IO;
using OfficeOpenXml;
using System.Security.Cryptography.X509Certificates;
...
X509Certificate2 cert = new X509Certificate2 ( PFXfile, PFXpass, X509KeyStorageFlags.PersistKeySet );
using ( ExcelPackage xl = new ExcelPackage ( new System.IO.FileInfo ( Excelfile ) ) )
{
using ( ExcelWorkbook wb = xl.Workbook )
{
wb.VbaProject.Signature.Certificate = cert;
xl.SaveAs ( new System.IO.FileInfo ( TargetPath ) );
}
}