diff options
author | vnugent <public@vaughnnugent.com> | 2024-02-04 21:22:48 -0500 |
---|---|---|
committer | vnugent <public@vaughnnugent.com> | 2024-02-04 21:22:48 -0500 |
commit | d9f4778896407ebe6e1b8bb439d2c175b4a22f45 (patch) | |
tree | 4ea8895e0270756ada68583aacac9656d4d0acd4 /lib/NVault.Crypto.Noscrypt/src/INostrCrypto.cs | |
parent | 87645bfad3943e1110e4cb2e038124083e8ae793 (diff) |
noscrypt impl prototype and some simple tests
Diffstat (limited to 'lib/NVault.Crypto.Noscrypt/src/INostrCrypto.cs')
-rw-r--r-- | lib/NVault.Crypto.Noscrypt/src/INostrCrypto.cs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/NVault.Crypto.Noscrypt/src/INostrCrypto.cs b/lib/NVault.Crypto.Noscrypt/src/INostrCrypto.cs new file mode 100644 index 0000000..11be0d0 --- /dev/null +++ b/lib/NVault.Crypto.Noscrypt/src/INostrCrypto.cs @@ -0,0 +1,32 @@ +// Copyright (C) 2024 Vaughn Nugent +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see <https://www.gnu.org/licenses/>. + +namespace NVault.Crypto.Noscrypt +{ + public interface INostrCrypto + { + void GetPublicKey(ref readonly NCSecretKey secretKey, ref NCPublicKey publicKey); + + bool ValidateSecretKey(ref readonly NCSecretKey secretKey); + + void SignData(ref readonly NCSecretKey secretKey, ref readonly byte random32, ref readonly byte data, nint dataSize, ref byte sig64); + + void VerifyData(ref readonly NCPublicKey pubKey, ref readonly byte data, nint dataSize, ref byte sig64); + + void Encrypt(ref readonly NCSecretKey secretKey, ref readonly NCPublicKey publicKey, ref readonly byte nonce, ref readonly byte plainText, ref byte cipherText, uint size); + + void Decrypt(ref readonly NCSecretKey secretKey, ref readonly NCPublicKey publicKey, ref readonly byte nonce, ref readonly byte cipherText, ref byte plainText, uint size); + } +} |