protected override void ProcessRecord() { try { Bundler bundle = new Bundler(); ISignProvider signProvider = new FileSignerProvider( Name, PassKey); byte[] p7BData = _bundle as byte[]; byte[] p7MData = bundle.Sign(p7BData, signProvider); WriteObject(p7MData); } catch (Exception e) { WriteError( new ErrorRecord( e, "Export-Bundle", ErrorCategory.NotSpecified, Name ) ); } }
public void CreateSignedBundleIndependentTest() { //Arrange Bundler bundle = new Bundler(); const string outputFileName = @"TestBundleSignedIndependent.p7m"; var secString = new SecureString(); foreach (var secchar in "passw0rd!".ToCharArray()) { secString.AppendChar(secchar); } //Act IResourceProvider resourceProvider = new FileResourceProvider( Path.Combine(Directory.GetCurrentDirectory(), @"Certificates\nhind\IncomingAnchors") , Path.Combine(Directory.GetCurrentDirectory(), outputFileName)); ISignProvider signProvider = new FileSignerProvider( Path.Combine(Directory.GetCurrentDirectory(), @"Certificates\redmond\Private\redmond.pfx"), secString); byte[] cmsdata = bundle.Create(resourceProvider); cmsdata = bundle.Sign(cmsdata, signProvider); //Assert (Using agent bundler resolver code) Assert.DoesNotThrow(() => resourceProvider.StoreBundle(cmsdata)); byte[] p7BData = File.ReadAllBytes(Path.Combine(Directory.GetCurrentDirectory(), outputFileName)); AnchorBundle anchorBundle = null; Assert.DoesNotThrow(() => anchorBundle = new AnchorBundle(p7BData, true)); Assert.True(!anchorBundle.Certificates.IsNullOrEmpty()); Assert.Equal(4, anchorBundle.Certificates.Count); Assert.Null(anchorBundle.Metadata); }