Completed refactoring to separate nip files, and updating build.sh
This commit is contained in:
56
nostr_core/nip004.h
Normal file
56
nostr_core/nip004.h
Normal file
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* NIP-04: Encrypted Direct Message
|
||||
* https://github.com/nostr-protocol/nips/blob/master/04.md
|
||||
*/
|
||||
|
||||
#ifndef NOSTR_NIP004_H
|
||||
#define NOSTR_NIP004_H
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// NIP-04 constants
|
||||
// #define NOSTR_NIP04_MAX_PLAINTEXT_SIZE 65535
|
||||
// NIP-04 Constants
|
||||
// #define NOSTR_NIP04_MAX_PLAINTEXT_SIZE 16777216 // 16MB
|
||||
// #define NOSTR_NIP04_MAX_ENCRYPTED_SIZE 22369621 // ~21.3MB (accounts for base64 overhead + IV)
|
||||
/**
|
||||
* NIP-04: Encrypt a message using ECDH + AES-256-CBC
|
||||
*
|
||||
* @param sender_private_key 32-byte sender private key
|
||||
* @param recipient_public_key 32-byte recipient public key (x-only)
|
||||
* @param plaintext Message to encrypt
|
||||
* @param output Buffer for encrypted output (format: "ciphertext?iv=iv_base64")
|
||||
* @param output_size Size of output buffer
|
||||
* @return NOSTR_SUCCESS on success, error code on failure
|
||||
*/
|
||||
int nostr_nip04_encrypt(const unsigned char* sender_private_key,
|
||||
const unsigned char* recipient_public_key,
|
||||
const char* plaintext,
|
||||
char* output,
|
||||
size_t output_size);
|
||||
|
||||
/**
|
||||
* NIP-04: Decrypt a message using ECDH + AES-256-CBC
|
||||
*
|
||||
* @param recipient_private_key 32-byte recipient private key
|
||||
* @param sender_public_key 32-byte sender public key (x-only)
|
||||
* @param encrypted_data Encrypted message (format: "ciphertext?iv=iv_base64")
|
||||
* @param output Buffer for decrypted plaintext
|
||||
* @param output_size Size of output buffer
|
||||
* @return NOSTR_SUCCESS on success, error code on failure
|
||||
*/
|
||||
int nostr_nip04_decrypt(const unsigned char* recipient_private_key,
|
||||
const unsigned char* sender_public_key,
|
||||
const char* encrypted_data,
|
||||
char* output,
|
||||
size_t output_size);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // NOSTR_NIP004_H
|
||||
Reference in New Issue
Block a user