13 Commits

Author SHA1 Message Date
Matt Nadareski
69dc21c814 Bump version 2024-10-01 13:32:24 -04:00
Matt Nadareski
4c07f24e3c Update IO to 1.4.12 2024-10-01 13:31:41 -04:00
Matt Nadareski
b6b43d9e1b Fix README location for package 2024-10-01 13:09:54 -04:00
Matt Nadareski
7c972c1ea2 Move project to subfolder 2024-10-01 13:07:45 -04:00
Matt Nadareski
7c40583898 Some old .NET simplification 2024-10-01 12:41:53 -04:00
Matt Nadareski
ef479c783a Remove Linq requirement from old .NET 2024-10-01 01:53:26 -04:00
Matt Nadareski
1ebd9f82ee Update IO to 1.4.11 2024-09-25 10:54:48 -04:00
Matt Nadareski
774597b17c Bump version 2024-04-26 21:22:20 -04:00
Matt Nadareski
29437475fb Make Linux publish script executable 2024-04-26 21:21:19 -04:00
Matt Nadareski
214d4e4f9e Add publish scripts 2024-04-26 21:20:50 -04:00
Matt Nadareski
06c742cd15 Update SabreTools.IO 2024-04-26 21:18:34 -04:00
Matt Nadareski
bc591f367f Bump version 2024-03-05 11:07:01 -05:00
Matt Nadareski
8c6b962bd6 Update SabreTools.IO 2024-03-05 10:47:16 -05:00
12 changed files with 113 additions and 8 deletions

View File

@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.ASN1", "SabreTools.ASN1.csproj", "{88EA40DD-E313-479C-94EA-0AB948DB4720}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.ASN1", "SabreTools.ASN1\SabreTools.ASN1.csproj", "{88EA40DD-E313-479C-94EA-0AB948DB4720}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution

View File

@@ -1,4 +1,8 @@
#if NET20 || NET35
using System.Collections.Generic;
#else
using System.Linq;
#endif
using System.Text;
#pragma warning disable CS0162 // Unreachable code detected
@@ -48,7 +52,17 @@ namespace SabreTools.ASN1
// Add trailing items as just values
nameBuilder.Append("/");
#if NET20 || NET35
var stringValues = new List<string>();
for (int i = index; i < values.Length; i++)
{
stringValues.Add(values[i].ToString());
}
nameBuilder.Append(string.Join("/", [.. stringValues]));
#else
nameBuilder.Append(string.Join("/", values.Skip(index).Select(v => v.ToString()).ToArray()));
#endif
// Create and return the string
return nameBuilder.ToString();

View File

@@ -1,4 +1,8 @@
#if NET20 || NET35
using System.Collections.Generic;
#else
using System.Linq;
#endif
using System.Text;
namespace SabreTools.ASN1
@@ -41,7 +45,17 @@ namespace SabreTools.ASN1
// Add trailing items as just values
nameBuilder.Append("/");
nameBuilder.Append(string.Join("/", values.Skip(index).Select(index => index.ToString()).ToArray()));
#if NET20 || NET35
var stringValues = new List<string>();
for (int i = index; i < values.Length; i++)
{
stringValues.Add(values[i].ToString());
}
nameBuilder.Append(string.Join("/", [.. stringValues]));
#else
nameBuilder.Append(string.Join("/", values.Skip(index).Select(v => v.ToString()).ToArray()));
#endif
// Create and return the string
return nameBuilder.ToString();

View File

@@ -1,4 +1,8 @@
#if NET20 || NET35
using System.Collections.Generic;
#else
using System.Linq;
#endif
namespace SabreTools.ASN1
{
@@ -18,7 +22,17 @@ namespace SabreTools.ASN1
if (values == null || values.Length == 0)
return null;
#if NET20 || NET35
var stringValues = new List<string>();
foreach (ulong value in values)
{
stringValues.Add(value.ToString());
}
return string.Join(".", [.. stringValues]);
#else
return string.Join(".", values.Select(v => v.ToString()).ToArray());
#endif
}
}
}

View File

@@ -7,7 +7,7 @@
<LangVersion>latest</LangVersion>
<Nullable>enable</Nullable>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<Version>1.3.0</Version>
<Version>1.3.3</Version>
<!-- Package Properties -->
<Authors>Matt Nadareski</Authors>
@@ -22,17 +22,16 @@
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath=""/>
<None Include="../README.md" Pack="true" PackagePath=""/>
</ItemGroup>
<!-- Support for old .NET versions -->
<ItemGroup Condition="$(TargetFramework.StartsWith(`net2`)) OR $(TargetFramework.StartsWith(`net3`))">
<PackageReference Include="Net30.LinqBridge" Version="1.3.0" />
<PackageReference Include="NetLegacySupport.Numerics" Version="1.0.1" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="SabreTools.IO" Version="1.3.0" />
<PackageReference Include="SabreTools.IO" Version="1.4.12" />
</ItemGroup>
</Project>

View File

@@ -1,9 +1,11 @@
using System;
using System.Collections.Generic;
#if NET40_OR_GREATER || NETCOREAPP
using System.Linq;
#endif
using System.Numerics;
using System.Text;
using SabreTools.IO;
using SabreTools.IO.Extensions;
namespace SabreTools.ASN1
{
@@ -149,7 +151,7 @@ namespace SabreTools.ASN1
case ASN1Type.V_ASN1_BIT_STRING:
// TODO: Read into a BitArray and print that out instead?
int unusedBits = valueAsByteArray[0];
formatBuilder.Append($", Value with {unusedBits} unused bits: {BitConverter.ToString(valueAsByteArray.Skip(1).ToArray()).Replace('-', ' ')}");
formatBuilder.Append($", Value with {unusedBits} unused bits: {BitConverter.ToString(valueAsByteArray, 1).Replace('-', ' ')}");
break;
/// <see href="https://learn.microsoft.com/en-us/windows/win32/seccertenroll/about-octet-string"/>

36
publish-nix.sh Executable file
View File

@@ -0,0 +1,36 @@
#! /bin/bash
# This batch file assumes the following:
# - .NET 8.0 (or newer) SDK is installed and in PATH
#
# If any of these are not satisfied, the operation may fail
# in an unpredictable way and result in an incomplete output.
# Optional parameters
NO_BUILD=false
while getopts "uba" OPTION
do
case $OPTION in
b)
NO_BUILD=true
;;
*)
echo "Invalid option provided"
exit 1
;;
esac
done
# Set the current directory as a variable
BUILD_FOLDER=$PWD
# Only build if requested
if [ $NO_BUILD = false ]
then
# Restore Nuget packages for all builds
echo "Restoring Nuget packages"
dotnet restore
# Create Nuget Package
dotnet pack SabreTools.ASN1/SabreTools.ASN1.csproj --output $BUILD_FOLDER
fi

26
publish-win.ps1 Normal file
View File

@@ -0,0 +1,26 @@
# This batch file assumes the following:
# - .NET 8.0 (or newer) SDK is installed and in PATH
#
# If any of these are not satisfied, the operation may fail
# in an unpredictable way and result in an incomplete output.
# Optional parameters
param(
[Parameter(Mandatory = $false)]
[Alias("NoBuild")]
[switch]$NO_BUILD
)
# Set the current directory as a variable
$BUILD_FOLDER = $PSScriptRoot
# Only build if requested
if (!$NO_BUILD.IsPresent)
{
# Restore Nuget packages for all builds
Write-Host "Restoring Nuget packages"
dotnet restore
# Create Nuget Package
dotnet pack SabreTools.ASN1\SabreTools.ASN1.csproj --output $BUILD_FOLDER
}