nostril

A C cli tool for creating nostr events
git clone git://jb55.com/nostril
Log | Files | Refs | Submodules | README | LICENSE

nip44.h (1630B)


      1 
      2 #ifndef NDB_NIP44_H
      3 #define NDB_NIP44_H
      4 
      5 enum ndb_decrypt_result
      6 {
      7 	NIP44_OK = 0,
      8 	NIP44_ERR_UNSUPPORTED_ENCODING = 1,
      9 	NIP44_ERR_INVALID_PAYLOAD = 2,
     10 	NIP44_ERR_BASE64_DECODE = 3,
     11 	NIP44_ERR_SECKEY_VERIFY_FAILED = 4,
     12 	NIP44_ERR_PUBKEY_PARSE_FAILED = 5,
     13 	NIP44_ERR_ECDH_FAILED = 6,
     14 	NIP44_ERR_FILL_RANDOM_FAILED = 7,
     15 	NIP44_ERR_INVALID_MAC = 8,
     16 	NIP44_ERR_INVALID_PADDING = 9,
     17 	NIP44_ERR_BUFFER_TOO_SMALL = 10,
     18 };
     19 
     20 struct nip44_payload {
     21 	unsigned char version;
     22 	unsigned char *nonce;
     23 	unsigned char *ciphertext;
     24 	size_t ciphertext_len;
     25 	unsigned char *mac;
     26 };
     27 
     28 enum ndb_decrypt_result
     29 nip44_decrypt(void *secp_context,
     30 	      const unsigned char *sender_pubkey,
     31 	      const unsigned char *receiver_seckey,
     32 	      const char *payload, int payload_len,
     33 	      unsigned char *buf, size_t bufsize,
     34 	      unsigned char **decrypted, uint16_t *decrypted_len);
     35 
     36 enum ndb_decrypt_result
     37 nip44_encrypt(void *secp, const unsigned char *sender_seckey,
     38 	      const unsigned char *receiver_pubkey,
     39 	      const unsigned char *plaintext, uint16_t plaintext_size,
     40 	      unsigned char *buf, size_t bufsize,
     41 	      char **out, ssize_t *out_len);
     42 
     43 enum ndb_decrypt_result
     44 nip44_decrypt_raw(void *secp,
     45 	      const unsigned char *sender_pubkey,
     46 	      const unsigned char *receiver_seckey,
     47 	      struct nip44_payload *decoded,
     48 	      unsigned char **decrypted, uint16_t *decrypted_len);
     49 
     50 enum ndb_decrypt_result
     51 nip44_decode_payload(struct nip44_payload *decoded,
     52 		     unsigned char *buf, size_t bufsize,
     53 		     const char *payload, size_t payload_len);
     54 
     55 const char *nip44_err_msg(enum ndb_decrypt_result res);
     56 
     57 #endif /* NDB_METADATA_H */