1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-12-04 14:46:46 -05:00

Added /otr theirfp with hardcoded fingerprint

This commit is contained in:
James Booth 2014-01-11 19:10:00 +00:00
parent bc8532b79c
commit 03086c0384
7 changed files with 47 additions and 9 deletions

View File

@ -2312,8 +2312,23 @@ cmd_otr(gchar **args, struct cmd_help_t help)
otr_keygen(account); otr_keygen(account);
return TRUE; return TRUE;
} else if (strcmp(args[0], "myfp") == 0) { } else if (strcmp(args[0], "myfp") == 0) {
char *fingerprint = otr_get_fingerprint(); char *fingerprint = otr_get_my_fingerprint();
cons_show("Your fingerprint: %s", fingerprint); cons_show("Your fingerprint: %s", fingerprint);
free(fingerprint);
return TRUE;
} else if (strcmp(args[0], "theirfp") == 0) {
win_type_t win_type = ui_current_win_type();
if (win_type != WIN_CHAT) {
ui_current_print_line("You must be in a regular chat window to view a recipient's fingerprint.");
} else if (!ui_current_win_is_otr()) {
ui_current_print_line("You not currently in an OTR session with this recipient.");
} else {
char *recipient = ui_current_recipient();
char *fingerprint = otr_get_their_fingerprint(recipient);
ui_current_print_line("OTR fingerprint for %s: %s", recipient, fingerprint);
free(fingerprint);
}
return TRUE; return TRUE;
} else if (strcmp(args[0], "start") == 0) { } else if (strcmp(args[0], "start") == 0) {
win_type_t win_type = ui_current_win_type(); win_type_t win_type = ui_current_win_type();

View File

@ -333,7 +333,7 @@ otr_key_loaded(void)
} }
char * char *
otr_get_fingerprint(void) otr_get_my_fingerprint(void)
{ {
char fingerprint[45]; char fingerprint[45];
otrl_privkey_fingerprint(user_state, fingerprint, jid, "xmpp"); otrl_privkey_fingerprint(user_state, fingerprint, jid, "xmpp");
@ -342,6 +342,13 @@ otr_get_fingerprint(void)
return result; return result;
} }
char *
otr_get_their_fingerprint(char *recipient)
{
char *fingerprint = "1234 5678";
return strdup(fingerprint);
}
char * char *
otr_encrypt_message(const char * const to, const char * const message) otr_encrypt_message(const char * const to, const char * const message)
{ {

View File

@ -31,7 +31,8 @@ void otr_keygen(ProfAccount *account);
gboolean otr_key_loaded(void); gboolean otr_key_loaded(void);
char * otr_get_fingerprint(void); char * otr_get_my_fingerprint(void);
char * otr_get_their_fingerprint(char *recipient);
char * otr_encrypt_message(const char * const to, const char * const message); char * otr_encrypt_message(const char * const to, const char * const message);
char * otr_decrypt_message(const char * const from, const char * const message); char * otr_decrypt_message(const char * const from, const char * const message);

View File

@ -131,7 +131,7 @@ _cons_show_typing(const char * const barejid)
display_usr = barejid; display_usr = barejid;
} }
win_print_line(console, '-', COLOUR_TYPING, "!! %s is typing a message...", display_usr); win_vprint_line(console, '-', COLOUR_TYPING, "!! %s is typing a message...", display_usr);
wins_refresh_console(); wins_refresh_console();
cons_alert(); cons_alert();

View File

@ -746,8 +746,11 @@ _ui_current_print_line(const char * const msg, ...)
ProfWin *current = wins_get_current(); ProfWin *current = wins_get_current();
va_list arg; va_list arg;
va_start(arg, msg); va_start(arg, msg);
win_print_line(current, '-', 0, msg, arg); GString *fmt_msg = g_string_new(NULL);
g_string_vprintf(fmt_msg, msg, arg);
win_print_line(current, '-', 0, fmt_msg->str);
va_end(arg); va_end(arg);
g_string_free(fmt_msg, TRUE);
win_refresh(current); win_refresh(current);
} }
@ -775,7 +778,7 @@ _ui_print_error_from_recipient(const char * const from, const char *err_msg)
ProfWin *window = wins_get_by_recipient(from); ProfWin *window = wins_get_by_recipient(from);
if (window != NULL) { if (window != NULL) {
win_print_line(window, '-', COLOUR_ERROR, "%s", err_msg); win_vprint_line(window, '-', COLOUR_ERROR, "%s", err_msg);
if (wins_is_current(window)) { if (wins_is_current(window)) {
wins_refresh_current(); wins_refresh_current();
} }
@ -833,7 +836,7 @@ _ui_recipient_gone(const char * const barejid)
ProfWin *window = wins_get_by_recipient(barejid); ProfWin *window = wins_get_by_recipient(barejid);
if (window != NULL) { if (window != NULL) {
win_print_line(window, '!', COLOUR_GONE, "<- %s has left the conversation.", display_usr); win_vprint_line(window, '!', COLOUR_GONE, "<- %s has left the conversation.", display_usr);
if (wins_is_current(window)) { if (wins_is_current(window)) {
wins_refresh_current(); wins_refresh_current();
} }
@ -1329,7 +1332,7 @@ _ui_status_room(const char * const contact)
if (pcontact != NULL) { if (pcontact != NULL) {
win_show_contact(current, pcontact); win_show_contact(current, pcontact);
} else { } else {
win_print_line(current, '-', 0, "No such participant \"%s\" in room.", contact); win_vprint_line(current, '-', 0, "No such participant \"%s\" in room.", contact);
} }
} }

View File

@ -84,6 +84,16 @@ win_print_time(ProfWin* window, char show_char)
void void
win_print_line(ProfWin *window, const char show_char, int attrs, win_print_line(ProfWin *window, const char show_char, int attrs,
const char * const msg)
{
win_print_time(window, show_char);
wattron(window->win, attrs);
wprintw(window->win, "%s\n", msg);
wattroff(window->win, attrs);
}
void
win_vprint_line(ProfWin *window, const char show_char, int attrs,
const char * const msg, ...) const char * const msg, ...)
{ {
va_list arg; va_list arg;

View File

@ -58,8 +58,10 @@ typedef struct prof_win_t {
ProfWin* win_create(const char * const title, int cols, win_type_t type); ProfWin* win_create(const char * const title, int cols, win_type_t type);
void win_free(ProfWin *window); void win_free(ProfWin *window);
void win_print_line(ProfWin *self, const char show_char, int attrs, void win_vprint_line(ProfWin *self, const char show_char, int attrs,
const char * const msg, ...); const char * const msg, ...);
void win_print_line(ProfWin *self, const char show_char, int attrs,
const char * const msg);
void win_refresh(ProfWin *window); void win_refresh(ProfWin *window);
void win_page_off(ProfWin *window); void win_page_off(ProfWin *window);
void win_print_time(ProfWin *window, char show_char); void win_print_time(ProfWin *window, char show_char);