aboutsummaryrefslogtreecommitdiff
path: root/wrappers/dotnet/VNLib.Utils.Cryptography.Noscrypt/src/NoscryptExtensions.cs
diff options
context:
space:
mode:
authorLibravatar vnugent <public@vaughnnugent.com>2024-08-17 21:33:23 -0400
committerLibravatar vnugent <public@vaughnnugent.com>2024-08-17 21:33:23 -0400
commit2162178cb7e209e9f060748842e1c4782a2ab852 (patch)
tree830e67e28e2a6c366b1baaba4f8805489b4e0ff1 /wrappers/dotnet/VNLib.Utils.Cryptography.Noscrypt/src/NoscryptExtensions.cs
parent0925f5c786badb715d564e991d2306632c2aecad (diff)
refactor: cipher utils update and simplify
Diffstat (limited to 'wrappers/dotnet/VNLib.Utils.Cryptography.Noscrypt/src/NoscryptExtensions.cs')
-rw-r--r--wrappers/dotnet/VNLib.Utils.Cryptography.Noscrypt/src/NoscryptExtensions.cs162
1 files changed, 0 insertions, 162 deletions
diff --git a/wrappers/dotnet/VNLib.Utils.Cryptography.Noscrypt/src/NoscryptExtensions.cs b/wrappers/dotnet/VNLib.Utils.Cryptography.Noscrypt/src/NoscryptExtensions.cs
index ccae190..e96ff96 100644
--- a/wrappers/dotnet/VNLib.Utils.Cryptography.Noscrypt/src/NoscryptExtensions.cs
+++ b/wrappers/dotnet/VNLib.Utils.Cryptography.Noscrypt/src/NoscryptExtensions.cs
@@ -24,168 +24,6 @@ namespace VNLib.Utils.Cryptography.Noscrypt
public static class NoscryptExtensions
{
- public static void EncryptNip44(
- this INostrCrypto lib,
- ref readonly NCSecretKey secretKey,
- ref readonly NCPublicKey publicKey,
- ReadOnlySpan<byte> nonce32,
- ReadOnlySpan<byte> plainText,
- Span<byte> hmackKeyOut32,
- Span<byte> cipherText
- )
- {
- ArgumentNullException.ThrowIfNull(lib);
-
- //Chacha requires the output buffer to be at-least the size of the input buffer
- ArgumentOutOfRangeException.ThrowIfGreaterThan(plainText.Length, cipherText.Length, nameof(plainText));
-
- //Nonce must be exactly 32 bytes
- ArgumentOutOfRangeException.ThrowIfNotEqual(nonce32.Length, NC_ENCRYPTION_NONCE_SIZE, nameof(nonce32));
-
- ArgumentOutOfRangeException.ThrowIfNotEqual(hmackKeyOut32.Length, NC_HMAC_KEY_SIZE, nameof(hmackKeyOut32));
-
- //Encrypt data, use the plaintext buffer size as the data size
- lib.EncryptNip44(
- secretKey: in secretKey,
- publicKey: in publicKey,
- nonce32: in MemoryMarshal.GetReference(nonce32),
- plainText: in MemoryMarshal.GetReference(plainText),
- cipherText: ref MemoryMarshal.GetReference(cipherText),
- size: (uint)plainText.Length,
- hmacKeyOut32: ref MemoryMarshal.GetReference(hmackKeyOut32)
- );
- }
-
- public static unsafe void EncryptNip44(
- this INostrCrypto lib,
- ref NCSecretKey secretKey,
- ref NCPublicKey publicKey,
- void* nonce32,
- void* hmacKeyOut32,
- void* plainText,
- void* cipherText,
- uint size
- )
- {
- ArgumentNullException.ThrowIfNull(plainText);
- ArgumentNullException.ThrowIfNull(cipherText);
- ArgumentNullException.ThrowIfNull(nonce32);
-
- //Spans are easer to forward references from pointers without screwing up arguments
- lib.EncryptNip44(
- secretKey: in secretKey,
- publicKey: in publicKey,
- nonce32: in Unsafe.AsRef<byte>(nonce32),
- plainText: in Unsafe.AsRef<byte>(plainText),
- cipherText: ref Unsafe.AsRef<byte>(cipherText),
- size: size,
- hmacKeyOut32: ref Unsafe.AsRef<byte>(hmacKeyOut32)
- );
- }
-
-
- public static void DecryptNip44(
- this INostrCrypto lib,
- ref readonly NCSecretKey secretKey,
- ref readonly NCPublicKey publicKey,
- ReadOnlySpan<byte> nonce32,
- ReadOnlySpan<byte> cipherText,
- Span<byte> plainText
- )
- {
- ArgumentNullException.ThrowIfNull(lib);
-
- //Chacha requires the output buffer to be at-least the size of the input buffer
- ArgumentOutOfRangeException.ThrowIfGreaterThan(cipherText.Length, plainText.Length, nameof(cipherText));
-
- //Nonce must be exactly 32 bytes
- ArgumentOutOfRangeException.ThrowIfNotEqual(nonce32.Length, 32, nameof(nonce32));
-
- //Decrypt data, use the ciphertext buffer size as the data size
- lib.DecryptNip44(
- secretKey: in secretKey,
- publicKey: in publicKey,
- nonce32: in MemoryMarshal.GetReference(nonce32),
- cipherText: in MemoryMarshal.GetReference(cipherText),
- plainText: ref MemoryMarshal.GetReference(plainText),
- size: (uint)cipherText.Length
- );
- }
-
- public static unsafe void DecryptNip44(
- this INostrCrypto lib,
- ref readonly NCSecretKey secretKey,
- ref readonly NCPublicKey publicKey,
- void* nonce32,
- void* cipherText,
- void* plainText,
- uint size
- )
- {
- ArgumentNullException.ThrowIfNull(nonce32);
- ArgumentNullException.ThrowIfNull(cipherText);
- ArgumentNullException.ThrowIfNull(plainText);
-
- //Spans are easer to forward references from pointers without screwing up arguments
- DecryptNip44(
- lib: lib,
- secretKey: in secretKey,
- publicKey: in publicKey,
- nonce32: new Span<byte>(nonce32, NC_ENCRYPTION_NONCE_SIZE),
- cipherText: new Span<byte>(cipherText, (int)size),
- plainText: new Span<byte>(plainText, (int)size)
- );
- }
-
- public static bool VerifyMac(
- this INostrCrypto lib,
- ref readonly NCSecretKey secretKey,
- ref readonly NCPublicKey publicKey,
- ReadOnlySpan<byte> nonce32,
- ReadOnlySpan<byte> mac32,
- ReadOnlySpan<byte> payload
- )
- {
- ArgumentNullException.ThrowIfNull(lib);
- ArgumentOutOfRangeException.ThrowIfZero(payload.Length, nameof(payload));
- ArgumentOutOfRangeException.ThrowIfNotEqual(nonce32.Length, NC_ENCRYPTION_NONCE_SIZE, nameof(nonce32));
- ArgumentOutOfRangeException.ThrowIfNotEqual(mac32.Length, NC_ENCRYPTION_MAC_SIZE, nameof(mac32));
-
- //Verify the HMAC
- return lib.VerifyMac(
- secretKey: in secretKey,
- publicKey: in publicKey,
- nonce32: in MemoryMarshal.GetReference(nonce32),
- mac32: in MemoryMarshal.GetReference(mac32),
- payload: in MemoryMarshal.GetReference(payload),
- payloadSize: (uint)payload.Length
- );
- }
-
- public static unsafe bool VerifyMac(
- this INostrCrypto lib,
- ref readonly NCSecretKey secretKey,
- ref readonly NCPublicKey publicKey,
- void* nonce32,
- void* mac32,
- void* payload,
- uint payloadSize
- )
- {
- ArgumentNullException.ThrowIfNull(nonce32);
- ArgumentNullException.ThrowIfNull(mac32);
- ArgumentNullException.ThrowIfNull(payload);
-
- return lib.VerifyMac(
- secretKey: in secretKey,
- publicKey: in publicKey,
- nonce32: in Unsafe.AsRef<byte>(nonce32),
- mac32: in Unsafe.AsRef<byte>(mac32),
- payload: in Unsafe.AsRef<byte>(payload),
- payloadSize: payloadSize
- );
- }
-
public static void SignData(
this INostrCrypto lib,
ref readonly NCSecretKey secKey,