summary refs log tree commit diff
path: root/Crypto/src/cms/SigOutputStream.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Crypto/src/cms/SigOutputStream.cs')
-rw-r--r--Crypto/src/cms/SigOutputStream.cs43
1 files changed, 43 insertions, 0 deletions
diff --git a/Crypto/src/cms/SigOutputStream.cs b/Crypto/src/cms/SigOutputStream.cs
new file mode 100644

index 000000000..a807fa7fc --- /dev/null +++ b/Crypto/src/cms/SigOutputStream.cs
@@ -0,0 +1,43 @@ +using System; + +using Org.BouncyCastle.Crypto; +using Org.BouncyCastle.Utilities.IO; +using Org.BouncyCastle.Security; + +namespace Org.BouncyCastle.Cms +{ + internal class SigOutputStream + : BaseOutputStream + { + private readonly ISigner sig; + + internal SigOutputStream(ISigner sig) + { + this.sig = sig; + } + + public override void WriteByte(byte b) + { + try + { + sig.Update(b); + } + catch (SignatureException e) + { + throw new CmsStreamException("signature problem: " + e); + } + } + + public override void Write(byte[] b, int off, int len) + { + try + { + sig.BlockUpdate(b, off, len); + } + catch (SignatureException e) + { + throw new CmsStreamException("signature problem: " + e); + } + } + } +} \ No newline at end of file