summary refs log tree commit diff
path: root/crypto/src/crypto/io/SignerSink.cs
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/src/crypto/io/SignerSink.cs')
-rw-r--r--crypto/src/crypto/io/SignerSink.cs25
1 files changed, 16 insertions, 9 deletions
diff --git a/crypto/src/crypto/io/SignerSink.cs b/crypto/src/crypto/io/SignerSink.cs
index 3485d3cdc..aaae59966 100644
--- a/crypto/src/crypto/io/SignerSink.cs
+++ b/crypto/src/crypto/io/SignerSink.cs
@@ -4,20 +4,17 @@ using Org.BouncyCastle.Utilities.IO;
 
 namespace Org.BouncyCastle.Crypto.IO
 {
-    public class SignerSink
+    public sealed class SignerSink
 		: BaseOutputStream
 	{
-		private readonly ISigner mSigner;
+		private readonly ISigner m_signer;
 
         public SignerSink(ISigner signer)
 		{
-            this.mSigner = signer;
+            m_signer = signer;
 		}
 
-        public virtual ISigner Signer
-        {
-            get { return mSigner; }
-        }
+		public ISigner Signer => m_signer;
 
 		public override void Write(byte[] buffer, int offset, int count)
 		{
@@ -25,13 +22,23 @@ namespace Org.BouncyCastle.Crypto.IO
 
 			if (count > 0)
 			{
-				mSigner.BlockUpdate(buffer, offset, count);
+				m_signer.BlockUpdate(buffer, offset, count);
 			}
 		}
 
+#if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER
+		public override void Write(ReadOnlySpan<byte> buffer)
+		{
+			if (!buffer.IsEmpty)
+			{
+				m_signer.BlockUpdate(buffer);
+			}
+		}
+#endif
+
 		public override void WriteByte(byte value)
 		{
-			mSigner.Update(value);
+			m_signer.Update(value);
 		}
 	}
 }