Skip to content

Commit 597763e

Browse files
committed
refactor: chacha20 and salsa20
1 parent e1d836e commit 597763e

File tree

5 files changed

+423
-361
lines changed

5 files changed

+423
-361
lines changed

.github/workflows/CI.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,27 @@ jobs:
4848
working-directory: test/${{ env.ProjectName }}.Tests
4949
run: dotnet test -c Release
5050

51+
- name: Run tests (Disable AVX)
52+
if: matrix.os != 'macos-latest'
53+
working-directory: test/${{ env.ProjectName }}.Tests
54+
run: dotnet test -c Release
55+
env:
56+
DOTNET_EnableAVX: 0
57+
58+
- name: Run tests (Disable SSE)
59+
if: matrix.os != 'macos-latest'
60+
working-directory: test/${{ env.ProjectName }}.Tests
61+
run: dotnet test -c Release
62+
env:
63+
DOTNET_EnableSSE: 0
64+
65+
- name: Run tests (Disable HWIntrinsic)
66+
if: matrix.os != 'macos-latest'
67+
working-directory: test/${{ env.ProjectName }}.Tests
68+
run: dotnet test -c Release
69+
env:
70+
DOTNET_EnableHWIntrinsic: 0
71+
5172
build:
5273
needs: [check_format, test]
5374
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}

src/CryptoBase/SymmetricCryptos/BlockCryptoModes/CTR/CTR128StreamModeBlock4X86.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ public CTR128StreamModeBlock4X86(IBlockCrypto crypto, ReadOnlySpan<byte> iv)
3232
_counter = ArrayPool<byte>.Shared.Rent(BlockSize4);
3333
_keyStream = ArrayPool<byte>.Shared.Rent(BlockSize4);
3434

35-
_iCounter = Unsafe.As<byte, Vector128<byte>>(ref MemoryMarshal.GetReference(iv)).ReverseEndianness128();
35+
ref Vector128<byte> v = ref Unsafe.As<byte, Vector128<byte>>(ref MemoryMarshal.GetReference(iv));
36+
_iCounter = v.ReverseEndianness128();
3637

3738
Reset();
3839
}

src/CryptoBase/SymmetricCryptos/BlockCryptoModes/CTR/CTR128StreamModeBlock8X86.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ public CTR128StreamModeBlock8X86(IBlockCrypto crypto, ReadOnlySpan<byte> iv)
3535
_counter = ArrayPool<byte>.Shared.Rent(BlockSize8);
3636
_keyStream = ArrayPool<byte>.Shared.Rent(BlockSize8);
3737

38-
_iCounter = Unsafe.As<byte, Vector128<byte>>(ref MemoryMarshal.GetReference(iv)).ReverseEndianness128();
38+
ref Vector128<byte> v = ref Unsafe.As<byte, Vector128<byte>>(ref MemoryMarshal.GetReference(iv));
39+
_iCounter = v.ReverseEndianness128();
3940

4041
Reset();
4142
}

0 commit comments

Comments
 (0)