diff options
author | Peter Dettman <peter.dettman@bouncycastle.org> | 2023-04-13 15:31:46 +0700 |
---|---|---|
committer | Peter Dettman <peter.dettman@bouncycastle.org> | 2023-04-13 15:31:46 +0700 |
commit | 4fac9a2bcbbc8622f0ca9823507ae7a56e6061b5 (patch) | |
tree | 1e0de5bbccae89d38375a5531c1a2296e9b3b9ed | |
parent | Asn1OctetString constructor from Span<byte> (copying) (diff) | |
download | BouncyCastle.NET-ed25519-4fac9a2bcbbc8622f0ca9823507ae7a56e6061b5.tar.xz |
Round out Span-based Pack methods
-rw-r--r-- | crypto/src/crypto/util/Pack.cs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/crypto/src/crypto/util/Pack.cs b/crypto/src/crypto/util/Pack.cs index dc87cf7d8..99c15484c 100644 --- a/crypto/src/crypto/util/Pack.cs +++ b/crypto/src/crypto/util/Pack.cs @@ -710,6 +710,12 @@ namespace Org.BouncyCastle.Crypto.Utilities } [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static uint BE_To_UInt32(ReadOnlySpan<byte> bs, int off) + { + return BinaryPrimitives.ReadUInt32BigEndian(bs[off..]); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] internal static void BE_To_UInt32(ReadOnlySpan<byte> bs, Span<uint> ns) { for (int i = 0; i < ns.Length; ++i) @@ -746,6 +752,12 @@ namespace Org.BouncyCastle.Crypto.Utilities } [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static ulong BE_To_UInt64(ReadOnlySpan<byte> bs, int off) + { + return BinaryPrimitives.ReadUInt64BigEndian(bs[off..]); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] internal static void BE_To_UInt64(ReadOnlySpan<byte> bs, Span<ulong> ns) { for (int i = 0; i < ns.Length; ++i) @@ -820,6 +832,12 @@ namespace Org.BouncyCastle.Crypto.Utilities } [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static ulong LE_To_UInt64(ReadOnlySpan<byte> bs, int off) + { + return BinaryPrimitives.ReadUInt64LittleEndian(bs[off..]); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] internal static void LE_To_UInt64(ReadOnlySpan<byte> bs, Span<ulong> ns) { for (int i = 0; i < ns.Length; ++i) |