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 */