public AsiceArchive(ZipArchive archive, IManifestCreator creator, MessageDigestAlgorithm messageDigestAlgorithm, ICertificateHolder signatureCertificate) { Archive = archive ?? throw new ArgumentNullException(nameof(archive)); manifestCreator = creator ?? throw new ArgumentNullException(nameof(creator)); MessageDigestAlgorithm = messageDigestAlgorithm ?? throw new ArgumentNullException(nameof(messageDigestAlgorithm)); SignatureCertificate = signatureCertificate; }
public static AsiceArchive Create(Stream zipOutStream, IManifestCreator manifestCreator, ICertificateHolder signatureCertificateHolder) { Log.Debug("Creating ASiC-e Zip"); var zipArchive = new ZipArchive(zipOutStream, ZipArchiveMode.Create, false, Encoding.UTF8); // Add mimetype entry var zipArchiveEntry = zipArchive.CreateEntry(AsiceConstants.FileNameMimeType); using (var stream = zipArchiveEntry.Open()) { var contentAsBytes = Encoding.UTF8.GetBytes(AsiceConstants.ContentTypeASiCe); stream.Write(contentAsBytes, 0, contentAsBytes.Length); } return(new AsiceArchive(zipArchive, manifestCreator, MessageDigestAlgorithm.SHA256, signatureCertificateHolder)); }