summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--crypto/src/tls/ByteQueue.cs2
-rw-r--r--crypto/src/tls/crypto/impl/TlsSuiteHmac.cs4
-rw-r--r--crypto/src/tls/crypto/impl/bc/BcTlsCrypto.cs8
3 files changed, 11 insertions, 3 deletions
diff --git a/crypto/src/tls/ByteQueue.cs b/crypto/src/tls/ByteQueue.cs
index a92f79baf..6d29a2d3e 100644
--- a/crypto/src/tls/ByteQueue.cs
+++ b/crypto/src/tls/ByteQueue.cs
@@ -164,7 +164,7 @@ namespace Org.BouncyCastle.Tls
             if ((m_available - skip) < buffer.Length)
                 throw new InvalidOperationException("Not enough data to read");
 
-            buffer.CopyFrom(m_databuf.AsSpan(m_skipped + skip));
+            m_databuf.AsSpan(m_skipped + skip, buffer.Length).CopyTo(buffer);
         }
 #endif
 
diff --git a/crypto/src/tls/crypto/impl/TlsSuiteHmac.cs b/crypto/src/tls/crypto/impl/TlsSuiteHmac.cs
index f008fc759..3e4b6f0f2 100644
--- a/crypto/src/tls/crypto/impl/TlsSuiteHmac.cs
+++ b/crypto/src/tls/crypto/impl/TlsSuiteHmac.cs
@@ -66,7 +66,9 @@ namespace Org.BouncyCastle.Tls.Crypto.Impl
             int msgLen)
         {
 #if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER
-            return CalculateMac(seqNo, type, Spans.FromNullableReadOnly(connectionID), msg.AsSpan(msgOff, msgLen));
+            var connIDSpan = connectionID == null ? Span<byte>.Empty : connectionID.AsSpan();
+
+            return CalculateMac(seqNo, type, connIDSpan, msg.AsSpan(msgOff, msgLen));
 #else
             ProtocolVersion serverVersion = m_cryptoParams.ServerVersion;
 
diff --git a/crypto/src/tls/crypto/impl/bc/BcTlsCrypto.cs b/crypto/src/tls/crypto/impl/bc/BcTlsCrypto.cs
index 39df32ed8..0686d8ece 100644
--- a/crypto/src/tls/crypto/impl/bc/BcTlsCrypto.cs
+++ b/crypto/src/tls/crypto/impl/bc/BcTlsCrypto.cs
@@ -156,8 +156,14 @@ namespace Org.BouncyCastle.Tls.Crypto.Impl.BC
 
         public override TlsNonceGenerator CreateNonceGenerator(byte[] additionalSeedMaterial)
         {
+            // TODO[api] Require non-null additionalSeedMaterial
+            //if (additionalSeedMaterial == null)
+            //    throw new ArgumentNullException(nameof(additionalSeedMaterial));
+
 #if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER
-            return CreateNonceGenerator(Spans.FromNullableReadOnly(additionalSeedMaterial));
+            var seed = additionalSeedMaterial == null ? Span<byte>.Empty : additionalSeedMaterial.AsSpan();
+
+            return CreateNonceGenerator(seed);
 #else
             int cryptoHashAlgorithm = CryptoHashAlgorithm.sha256;
             IDigest digest = CreateDigest(cryptoHashAlgorithm);