diff options
author | Peter Dettman <peter.dettman@bouncycastle.org> | 2022-10-29 18:57:05 +0700 |
---|---|---|
committer | Peter Dettman <peter.dettman@bouncycastle.org> | 2022-10-29 18:57:05 +0700 |
commit | 7c718c3952a341cac0f38e18ddb3e4f82cc9f8b8 (patch) | |
tree | 871ef215c63025dfea08a4cdd99120ad8a07fa45 | |
parent | Use correct OID (diff) | |
download | BouncyCastle.NET-ed25519-7c718c3952a341cac0f38e18ddb3e4f82cc9f8b8.tar.xz |
Release preparations
-rw-r--r-- | .gitlab-ci.yml | 9 | ||||
-rw-r--r-- | README.md | 14 | ||||
-rw-r--r-- | crypto/src/BouncyCastle.Crypto.csproj | 38 | ||||
-rw-r--r-- | crypto/test/BouncyCastle.Crypto.Tests.csproj | 14 | ||||
-rw-r--r-- | crypto/test/src/crypto/prng/test/CtrDrbgTest.cs | 2 | ||||
-rw-r--r-- | crypto/test/src/crypto/prng/test/TestEntropySourceProvider.cs | 2 | ||||
-rw-r--r-- | crypto/test/src/crypto/test/AesX86Test.cs | 6 | ||||
-rw-r--r-- | crypto/test/src/crypto/test/BlockCipherMonteCarloTest.cs | 2 | ||||
-rw-r--r-- | crypto/test/src/crypto/test/BlockCipherVectorTest.cs | 2 | ||||
-rw-r--r-- | crypto/test/src/crypto/test/DigestTest.cs | 4 | ||||
-rw-r--r-- | crypto/test/src/crypto/test/Haraka256DigestTest.cs | 2 | ||||
-rw-r--r-- | crypto/test/src/crypto/test/Haraka512DigestTest.cs | 2 | ||||
-rw-r--r-- | crypto/test/src/crypto/test/TupleHashTest.cs | 4 | ||||
-rw-r--r-- | crypto/test/src/security/test/SecureRandomTest.cs | 8 |
14 files changed, 76 insertions, 33 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7506e65b6..f20669e90 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,12 +7,17 @@ net462-job: # This job runs in the test stage. script: - "dotnet test --framework net462 -v:normal -l \"console;verbosity=detailed\" crypto\\test\\BouncyCastle.Crypto.Tests.csproj" +net472-job: + stage: test + script: + - "dotnet test --framework net462 -v:normal -l \"console;verbosity=detailed\" crypto\\test\\BouncyCastle.Crypto.Tests.csproj" + net60-job: stage: test script: - "dotnet test --framework net6.0 -v:normal -l \"console;verbosity=detailed\" crypto\\test\\BouncyCastle.Crypto.Tests.csproj" -netcoreapp21-job: +netcoreapp31-job: stage: test script: - - "dotnet test --framework netcoreapp2.1 -v:normal -l \"console;verbosity=detailed\" crypto\\test\\BouncyCastle.Crypto.Tests.csproj" + - "dotnet test --framework netcoreapp3.1 -v:normal -l \"console;verbosity=detailed\" crypto\\test\\BouncyCastle.Crypto.Tests.csproj" diff --git a/README.md b/README.md index 1cdac08cf..e7c8270a9 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,14 @@ # The Bouncy Castle Crypto Package For C Sharp -The Bouncy Castle Crypto package is a C\# implementation of cryptographic algorithms and protocols, it was developed by the Legion of the Bouncy Castle, a registered Australian Charity, with a little help! The Legion, and the latest goings on with this package, can be found at [https://www.bouncycastle.org](https://www.bouncycastle.org). In addition to providing basic cryptography algorithms, the package also provides support for CMS, TSP, X.509 certificate generation and a variety of other standards such as OpenPGP. +The Bouncy Castle Crypto package is a C\# implementation of cryptographic algorithms and protocols, it was developed by the Legion of the Bouncy Castle, a registered Australian Charity, with a little help! The Legion, and the latest goings on with this package, can be found at [https://www.bouncycastle.org](https://www.bouncycastle.org). -The Legion also gratefully acknowledges the contributions made to this package by others (see [here](https://www.bouncycastle.org/csharp/contributors.html) for the current list). If you would like to contribute to our efforts please feel free to get in touch with us or visit our [donations page](https://www.bouncycastle.org/donate), sponsor some specific work, or purchase a support contract through [Crypto Workshop](https://www.cryptoworkshop.com). +In addition to providing basic cryptography algorithms, the package also provides support for CMS, OpenPGP, (D)TLS, TSP, X.509 certificate generation and more. In particular, the package includes implementations of all the NIST Post-Quantum Cryptography Standardization Round 3 submissions. These should all be considered EXPERIMENTAL and subject to change or removal. -Except where otherwise stated, this software is distributed under a license based on the MIT X Consortium license. To view the license, [see here](https://www.bouncycastle.org/licence.html). The OpenPGP library also includes a modified BZIP2 library which is licensed under the [Apache Software License, Version 2.0](http://www.apache.org/licenses/). +The Legion also gratefully acknowledges the contributions made to this package by others (see [here](https://www.bouncycastle.org/csharp/contributors.html) for the current list). If you would like to contribute to our efforts please feel free to get in touch with us or visit our [donations page](https://www.bouncycastle.org/donate), sponsor some specific work, or purchase a [support contract](https://www.keyfactor.com/platform/bouncy-castle-support/). -**Note**: this source tree is not the FIPS version of the APIs - if you are interested in our FIPS version please contact us directly at [office@bouncycastle.org](mailto:office@bouncycastle.org). +Except where otherwise stated, this software is distributed under a license based on the MIT X Consortium license. To view the license, [see here](https://www.bouncycastle.org/licence.html). This software includes a modified Bzip2 library, which is licensed under the [Apache Software License, Version 2.0](http://www.apache.org/licenses/). + +**Note**: This source tree is not the FIPS version of the APIs - if you are interested in our FIPS version please visit us [here](https://www.bouncycastle.org/fips-csharp) or contact us directly at [office@bouncycastle.org](mailto:office@bouncycastle.org). ## Mailing Lists @@ -17,13 +19,13 @@ For those who are interested, there are 2 mailing lists for participation in thi * [dev-crypto-csharp-request@bouncycastle.org](mailto:dev-crypto-csharp-request@bouncycastle.org) This mailing list is for discussion of development of the package. This includes bugs, comments, requests for enhancements, questions about use or operation. -**NOTE:**You need to be subscribed to send mail to the above mailing list. +**NOTE:** You need to be subscribed to send mail to the above mailing list. ## Feedback If you want to provide feedback directly to the members of **The Legion** then please use [feedback-crypto@bouncycastle.org](mailto:feedback-crypto@bouncycastle.org), if you want to help this project survive please consider [donating](https://www.bouncycastle.org/donate). -For bug reporting/requests you can report issues here on github, via feedback-crypto if required. We will accept pull requests based on this repository as well, but only on the basis that any code included may be distributed under the [Bouncy Castle License](https://www.bouncycastle.org/licence.html). +For bug reporting/requests you can report issues on [github](https://github.com/bcgit/bc-csharp), or via feedback-crypto if required. We will accept pull requests based on this repository as well, but only on the basis that any code included may be distributed under the [Bouncy Castle License](https://www.bouncycastle.org/licence.html). ## Finally diff --git a/crypto/src/BouncyCastle.Crypto.csproj b/crypto/src/BouncyCastle.Crypto.csproj index ee977cce8..44925aebd 100644 --- a/crypto/src/BouncyCastle.Crypto.csproj +++ b/crypto/src/BouncyCastle.Crypto.csproj @@ -1,17 +1,36 @@ <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> - <TargetFrameworks>net6.0;netstandard2.0;net451</TargetFrameworks> + <TargetFrameworks>net6.0;netstandard2.0;net462</TargetFrameworks> <RootNamespace>Org.BouncyCastle</RootNamespace> <AssemblyOriginatorKeyFile>..\..\BouncyCastle.snk</AssemblyOriginatorKeyFile> <SignAssembly>true</SignAssembly> + <NoWarn>1591</NoWarn> + + <Authors /> + <Company>Legion of the Bouncy Castle Inc.</Company> + <Copyright>Copyright © Legion of the Bouncy Castle Inc. 2000-2022</Copyright> + <DebugType>embedded</DebugType> + <Description>BouncyCastle.NET is a popular cryptography library for .NET</Description> + <EmbedUntrackedSources>true</EmbedUntrackedSources> + <PackageIconUrl>https://www.bouncycastle.org/images/csharp_logo.gif</PackageIconUrl> + <PackageId>BouncyCastle.Cryptography</PackageId> + <PackageLicenseFile>License.html</PackageLicenseFile> + <PackageProjectUrl>https://www.bouncycastle.org/csharp/</PackageProjectUrl> + <PackageReleaseNotes>https://www.bouncycastle.org/csharp/</PackageReleaseNotes> + <PackageTags>bouncycastle cryptography dtls encryption security tls</PackageTags> + <Product>BouncyCastle.NET</Product> + <!--<PublishRepositoryUrl>true</PublishRepositoryUrl>--> + <RepositoryType>git</RepositoryType> + <RepositoryUrl>https://github.com/bcgit/bc-csharp</RepositoryUrl> + <Title>BouncyCastle.NET Cryptography</Title> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> + <PropertyGroup Condition="'$(Configuration)'=='Debug'"> <DefineConstants>DEBUG;TRACE</DefineConstants> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'"> + <PropertyGroup Condition="'$(Configuration)'=='Release'"> <DefineConstants /> <GenerateDocumentationFile>true</GenerateDocumentationFile> </PropertyGroup> @@ -20,12 +39,23 @@ <None Remove="**\*.properties" /> <EmbeddedResource Include="**\*.properties" /> </ItemGroup> + + <ItemGroup> + <None Include="..\License.html"> + <Pack>True</Pack> + <PackagePath>\</PackagePath> + </None> + </ItemGroup> <ItemGroup> + <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3"> + <PrivateAssets>all</PrivateAssets> + <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> + </PackageReference> <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> - <PackageReference Include="Nerdbank.GitVersioning" Version="3.5.113"> + <PackageReference Include="Nerdbank.GitVersioning" Version="3.5.119"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> diff --git a/crypto/test/BouncyCastle.Crypto.Tests.csproj b/crypto/test/BouncyCastle.Crypto.Tests.csproj index 1b752ad5c..3c9b88328 100644 --- a/crypto/test/BouncyCastle.Crypto.Tests.csproj +++ b/crypto/test/BouncyCastle.Crypto.Tests.csproj @@ -1,7 +1,7 @@ <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> - <TargetFrameworks>net6.0;netcoreapp2.1;net462</TargetFrameworks> + <TargetFrameworks>net6.0;netcoreapp3.1;net472;net462</TargetFrameworks> <IsPackable>false</IsPackable> <AssemblyOriginatorKeyFile>..\..\BouncyCastle.snk</AssemblyOriginatorKeyFile> <SignAssembly>true</SignAssembly> @@ -9,11 +9,11 @@ <NoWarn>1591</NoWarn> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> + <PropertyGroup Condition="'$(Configuration)'=='Debug'"> <DefineConstants>DEBUG;TRACE</DefineConstants> </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'"> + <PropertyGroup Condition="'$(Configuration)'=='Release'"> <DefineConstants>DEBUG;TRACE</DefineConstants> </PropertyGroup> @@ -23,10 +23,16 @@ </ItemGroup> <ItemGroup> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.2" /> + <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3"> + <PrivateAssets>all</PrivateAssets> + <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> + </PackageReference> <PackageReference Include="NUnit" Version="3.13.3" /> <PackageReference Include="NUnit3TestAdapter" Version="4.2.1" /> </ItemGroup> <ItemGroup> - <ProjectReference Include="..\src\BouncyCastle.Crypto.csproj" /> + <ProjectReference Include="..\src\BouncyCastle.Crypto.csproj"> + <SetTargetFramework Condition="'$(TargetFramework)' == 'net472'">TargetFramework=netstandard2.0</SetTargetFramework> + </ProjectReference> </ItemGroup> </Project> diff --git a/crypto/test/src/crypto/prng/test/CtrDrbgTest.cs b/crypto/test/src/crypto/prng/test/CtrDrbgTest.cs index 047405c77..23dabf7cb 100644 --- a/crypto/test/src/crypto/prng/test/CtrDrbgTest.cs +++ b/crypto/test/src/crypto/prng/test/CtrDrbgTest.cs @@ -507,7 +507,7 @@ namespace Org.BouncyCastle.Crypto.Prng.Test return cipher.ProcessBlock(input, inOff, output, outOff); } - // NOTE: .NET Core 2.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. + // NOTE: .NET Core 3.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. //#if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER #if NET6_0_OR_GREATER || NETSTANDARD2_1_OR_GREATER public int ProcessBlock(ReadOnlySpan<byte> input, Span<byte> output) diff --git a/crypto/test/src/crypto/prng/test/TestEntropySourceProvider.cs b/crypto/test/src/crypto/prng/test/TestEntropySourceProvider.cs index 9ebbb7ccd..ae80b3dbe 100644 --- a/crypto/test/src/crypto/prng/test/TestEntropySourceProvider.cs +++ b/crypto/test/src/crypto/prng/test/TestEntropySourceProvider.cs @@ -48,7 +48,7 @@ namespace Org.BouncyCastle.Crypto.Prng.Test return rv; } - // NOTE: .NET Core 2.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. + // NOTE: .NET Core 3.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. //#if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER #if NET6_0_OR_GREATER || NETSTANDARD2_1_OR_GREATER int IEntropySource.GetEntropy(Span<byte> output) diff --git a/crypto/test/src/crypto/test/AesX86Test.cs b/crypto/test/src/crypto/test/AesX86Test.cs index 9610c4baa..fc5a92545 100644 --- a/crypto/test/src/crypto/test/AesX86Test.cs +++ b/crypto/test/src/crypto/test/AesX86Test.cs @@ -1,6 +1,6 @@ -#if NETCOREAPP3_0_OR_GREATER -using System; - +// NOTE: .NET Core 3.1 is tested against our .NET Standard 2.0 assembly. +//#if NETCOREAPP3_0_OR_GREATER +#if NET6_0_OR_GREATER using NUnit.Framework; using Org.BouncyCastle.Crypto.Engines; diff --git a/crypto/test/src/crypto/test/BlockCipherMonteCarloTest.cs b/crypto/test/src/crypto/test/BlockCipherMonteCarloTest.cs index 1a7f04702..dea6e66b1 100644 --- a/crypto/test/src/crypto/test/BlockCipherMonteCarloTest.cs +++ b/crypto/test/src/crypto/test/BlockCipherMonteCarloTest.cs @@ -77,7 +77,7 @@ namespace Org.BouncyCastle.Crypto.Tests Fail("failed reversal"); } - // NOTE: .NET Core 2.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. + // NOTE: .NET Core 3.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. //#if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER #if NET6_0_OR_GREATER || NETSTANDARD2_1_OR_GREATER cipher.Init(true, param); diff --git a/crypto/test/src/crypto/test/BlockCipherVectorTest.cs b/crypto/test/src/crypto/test/BlockCipherVectorTest.cs index 58a138982..b1a2c3051 100644 --- a/crypto/test/src/crypto/test/BlockCipherVectorTest.cs +++ b/crypto/test/src/crypto/test/BlockCipherVectorTest.cs @@ -71,7 +71,7 @@ namespace Org.BouncyCastle.Crypto.Tests Fail("failed reversal got " + Hex.ToHexString(outBytes)); } - // NOTE: .NET Core 2.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. + // NOTE: .NET Core 3.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. //#if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER #if NET6_0_OR_GREATER || NETSTANDARD2_1_OR_GREATER cipher.Init(true, param); diff --git a/crypto/test/src/crypto/test/DigestTest.cs b/crypto/test/src/crypto/test/DigestTest.cs index 1809c07fb..dddd19cad 100644 --- a/crypto/test/src/crypto/test/DigestTest.cs +++ b/crypto/test/src/crypto/test/DigestTest.cs @@ -185,7 +185,7 @@ namespace Org.BouncyCastle.Crypto.Tests internal static void SpanConsistencyTests(SimpleTest test, IDigest digest) { - // NOTE: .NET Core 2.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. + // NOTE: .NET Core 3.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. //#if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER #if NET6_0_OR_GREATER || NETSTANDARD2_1_OR_GREATER @@ -204,7 +204,7 @@ namespace Org.BouncyCastle.Crypto.Tests internal static void SpanConsistencyTest(SimpleTest test, IDigest digest, byte[] buf, int off, int len) { - // NOTE: .NET Core 2.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. + // NOTE: .NET Core 3.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. //#if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER #if NET6_0_OR_GREATER || NETSTANDARD2_1_OR_GREATER digest.Reset(); diff --git a/crypto/test/src/crypto/test/Haraka256DigestTest.cs b/crypto/test/src/crypto/test/Haraka256DigestTest.cs index 18ff65ddc..08cae6d57 100644 --- a/crypto/test/src/crypto/test/Haraka256DigestTest.cs +++ b/crypto/test/src/crypto/test/Haraka256DigestTest.cs @@ -200,7 +200,7 @@ namespace Org.BouncyCastle.Crypto.Tests private void SpanConsistencyTests() { - // NOTE: .NET Core 2.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. + // NOTE: .NET Core 3.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. //#if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER #if NET6_0_OR_GREATER || NETSTANDARD2_1_OR_GREATER // Span-based API consistency checks diff --git a/crypto/test/src/crypto/test/Haraka512DigestTest.cs b/crypto/test/src/crypto/test/Haraka512DigestTest.cs index 1ef178222..5f84a6328 100644 --- a/crypto/test/src/crypto/test/Haraka512DigestTest.cs +++ b/crypto/test/src/crypto/test/Haraka512DigestTest.cs @@ -202,7 +202,7 @@ namespace Org.BouncyCastle.Crypto.Tests private void SpanConsistencyTests() { - // NOTE: .NET Core 2.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. + // NOTE: .NET Core 3.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. //#if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER #if NET6_0_OR_GREATER || NETSTANDARD2_1_OR_GREATER // Span-based API consistency checks diff --git a/crypto/test/src/crypto/test/TupleHashTest.cs b/crypto/test/src/crypto/test/TupleHashTest.cs index 8eaa97e5c..a492dd58c 100644 --- a/crypto/test/src/crypto/test/TupleHashTest.cs +++ b/crypto/test/src/crypto/test/TupleHashTest.cs @@ -118,7 +118,7 @@ namespace Org.BouncyCastle.Crypto.Tests internal void SpanConsistencyTests() { - // NOTE: .NET Core 2.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. + // NOTE: .NET Core 3.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. //#if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER #if NET6_0_OR_GREATER || NETSTANDARD2_1_OR_GREATER IDigest digest1 = new TupleHash(128, new byte[0]); @@ -139,7 +139,7 @@ namespace Org.BouncyCastle.Crypto.Tests internal void SpanConsistencyTest(IDigest digest1, IDigest digest2, byte[] buf, int off, int len) { - // NOTE: .NET Core 2.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. + // NOTE: .NET Core 3.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. //#if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER #if NET6_0_OR_GREATER || NETSTANDARD2_1_OR_GREATER digest1.Reset(); diff --git a/crypto/test/src/security/test/SecureRandomTest.cs b/crypto/test/src/security/test/SecureRandomTest.cs index 11ebeb276..caba7a37a 100644 --- a/crypto/test/src/security/test/SecureRandomTest.cs +++ b/crypto/test/src/security/test/SecureRandomTest.cs @@ -143,7 +143,7 @@ namespace Org.BouncyCastle.Security.Tests return false; } - // NOTE: .NET Core 2.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. + // NOTE: .NET Core 3.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. //#if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER #if NET6_0_OR_GREATER || NETSTANDARD2_1_OR_GREATER { @@ -226,7 +226,7 @@ namespace Org.BouncyCastle.Security.Tests return chi2; } - // NOTE: .NET Core 2.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. + // NOTE: .NET Core 3.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. //#if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER #if NET6_0_OR_GREATER || NETSTANDARD2_1_OR_GREATER private static double MeasureChiSquaredSpan(SecureRandom random, int rounds) @@ -314,7 +314,7 @@ namespace Org.BouncyCastle.Security.Tests public abstract void NextBytes(byte[] bytes, int start, int len); - // NOTE: .NET Core 2.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. + // NOTE: .NET Core 3.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. //#if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER #if NET6_0_OR_GREATER || NETSTANDARD2_1_OR_GREATER public abstract void NextBytes(Span<byte> bytes); @@ -336,7 +336,7 @@ namespace Org.BouncyCastle.Security.Tests Arrays.Fill(bytes, start, start + len, b); } - // NOTE: .NET Core 2.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. + // NOTE: .NET Core 3.1 has Span<T>, but is tested against our .NET Standard 2.0 assembly. //#if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER #if NET6_0_OR_GREATER || NETSTANDARD2_1_OR_GREATER public override void NextBytes(Span<byte> bytes) |