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; }
/// <summary> /// Create builder /// </summary> /// <param name="stream">The stream where the ASiC-E data will be written. Can not be null and must be writable</param> /// <param name="messageDigestAlgorithm">The digest algorithm to use. Not nullable</param> /// <param name="signCertificate">A private/public keypair to use for signing. May be null</param> /// <returns>A builder that may be used to construct a ASiC-E package</returns> /// <exception cref="ArgumentException">If the provided stream is not writable</exception> public static AsiceBuilder Create( Stream stream, MessageDigestAlgorithm messageDigestAlgorithm, ICertificateHolder signCertificate) { var outStream = stream ?? throw new ArgumentNullException(nameof(stream)); var algorithm = messageDigestAlgorithm ?? throw new ArgumentNullException(nameof(messageDigestAlgorithm)); if (!outStream.CanWrite) { throw new ArgumentException("The provided Stream must be writable", nameof(stream)); } var cadesManifestCreator = signCertificate == null ? CadesManifestCreator.CreateWithoutSignatureFile() : CadesManifestCreator.CreateWithSignatureFile(); return(new AsiceBuilder(AsiceArchive.Create(outStream, cadesManifestCreator, signCertificate), algorithm)); }
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)); }
public static SignatureCreator Create(ICertificateHolder certificateHolder) { return(new SignatureCreator(certificateHolder)); }
private SignatureCreator(ICertificateHolder certificateHolder) { this.certificateHolder = certificateHolder ?? throw new ArgumentNullException(nameof(certificateHolder)); }