public override bool TrySign(ReadOnlySpan <byte> data, Span <byte> destination, out int bytesWritten) { if (data.IsEmpty) { ThrowHelper.ThrowArgumentNullException(ExceptionArgument.data); } if (_disposed) { ThrowHelper.ThrowObjectDisposedException(GetType()); } if (_canOnlyVerify) { ThrowHelper.ThrowInvalidOperationException_RequirePrivateKey(); } var rsa = _rsaPool.Get(); try { #if !NETSTANDARD2_0 && !NET461 return(rsa.TrySignData(data, destination, _hashAlgorithm, _signaturePadding, out bytesWritten)); #else var result = rsa.SignData(data.ToArray(), _hashAlgorithm, _signaturePadding); bytesWritten = result.Length; result.CopyTo(destination); return(true); #endif } finally { _rsaPool.Return(rsa); } }