diff options
-rw-r--r-- | toxcore/group.c | 20 | ||||
-rw-r--r-- | toxcore/group.h | 8 | ||||
-rw-r--r-- | toxcore/tox.c | 12 | ||||
-rw-r--r-- | toxcore/tox.h | 8 |
4 files changed, 48 insertions, 0 deletions
diff --git a/toxcore/group.c b/toxcore/group.c index 1a17e83a..329a9709 100644 --- a/toxcore/group.c +++ b/toxcore/group.c | |||
@@ -722,6 +722,26 @@ int del_groupchat(Group_Chats *g_c, int groupnumber) | |||
722 | return wipe_group_chat(g_c, groupnumber); | 722 | return wipe_group_chat(g_c, groupnumber); |
723 | } | 723 | } |
724 | 724 | ||
725 | /* Copy the public key of peernumber who is in groupnumber to pk. | ||
726 | * pk must be crypto_box_PUBLICKEYBYTES long. | ||
727 | * | ||
728 | * returns 0 on success | ||
729 | * returns -1 on failure | ||
730 | */ | ||
731 | int group_peer_pubkey(const Group_Chats *g_c, int groupnumber, int peernumber, uint8_t *pk) | ||
732 | { | ||
733 | Group_c *g = get_group_c(g_c, groupnumber); | ||
734 | |||
735 | if (!g) | ||
736 | return -1; | ||
737 | |||
738 | if ((uint32_t)peernumber >= g->numpeers) | ||
739 | return -1; | ||
740 | |||
741 | memcpy(pk, g->group[peernumber].real_pk, crypto_box_PUBLICKEYBYTES); | ||
742 | return 0; | ||
743 | } | ||
744 | |||
725 | /* Copy the name of peernumber who is in groupnumber to name. | 745 | /* Copy the name of peernumber who is in groupnumber to name. |
726 | * name must be at least MAX_NAME_LENGTH long. | 746 | * name must be at least MAX_NAME_LENGTH long. |
727 | * | 747 | * |
diff --git a/toxcore/group.h b/toxcore/group.h index f4d93c9a..8ae0e40e 100644 --- a/toxcore/group.h +++ b/toxcore/group.h | |||
@@ -192,6 +192,14 @@ int add_groupchat(Group_Chats *g_c, uint8_t type); | |||
192 | */ | 192 | */ |
193 | int del_groupchat(Group_Chats *g_c, int groupnumber); | 193 | int del_groupchat(Group_Chats *g_c, int groupnumber); |
194 | 194 | ||
195 | /* Copy the public key of peernumber who is in groupnumber to pk. | ||
196 | * pk must be crypto_box_PUBLICKEYBYTES long. | ||
197 | * | ||
198 | * returns 0 on success | ||
199 | * returns -1 on failure | ||
200 | */ | ||
201 | int group_peer_pubkey(const Group_Chats *g_c, int groupnumber, int peernumber, uint8_t *pk); | ||
202 | |||
195 | /* Copy the name of peernumber who is in groupnumber to name. | 203 | /* Copy the name of peernumber who is in groupnumber to name. |
196 | * name must be at least MAX_NAME_LENGTH long. | 204 | * name must be at least MAX_NAME_LENGTH long. |
197 | * | 205 | * |
diff --git a/toxcore/tox.c b/toxcore/tox.c index f73ac285..933f0f71 100644 --- a/toxcore/tox.c +++ b/toxcore/tox.c | |||
@@ -641,6 +641,18 @@ int tox_group_peername(const Tox *tox, int groupnumber, int peernumber, uint8_t | |||
641 | return group_peername(m->group_chat_object, groupnumber, peernumber, name); | 641 | return group_peername(m->group_chat_object, groupnumber, peernumber, name); |
642 | } | 642 | } |
643 | 643 | ||
644 | /* Copy the public key of peernumber who is in groupnumber to pk. | ||
645 | * pk must be TOX_CLIENT_ID_SIZE long. | ||
646 | * | ||
647 | * returns 0 on success | ||
648 | * returns -1 on failure | ||
649 | */ | ||
650 | int tox_group_peer_pubkey(const Tox *tox, int groupnumber, int peernumber, uint8_t *pk) | ||
651 | { | ||
652 | const Messenger *m = tox; | ||
653 | return group_peer_pubkey(m->group_chat_object, groupnumber, peernumber, pk); | ||
654 | } | ||
655 | |||
644 | /* invite friendnumber to groupnumber | 656 | /* invite friendnumber to groupnumber |
645 | * return 0 on success | 657 | * return 0 on success |
646 | * return -1 on failure | 658 | * return -1 on failure |
diff --git a/toxcore/tox.h b/toxcore/tox.h index 4caf4d26..5f3204e4 100644 --- a/toxcore/tox.h +++ b/toxcore/tox.h | |||
@@ -496,6 +496,14 @@ int tox_del_groupchat(Tox *tox, int groupnumber); | |||
496 | */ | 496 | */ |
497 | int tox_group_peername(const Tox *tox, int groupnumber, int peernumber, uint8_t *name); | 497 | int tox_group_peername(const Tox *tox, int groupnumber, int peernumber, uint8_t *name); |
498 | 498 | ||
499 | /* Copy the public key of peernumber who is in groupnumber to pk. | ||
500 | * pk must be TOX_CLIENT_ID_SIZE long. | ||
501 | * | ||
502 | * returns 0 on success | ||
503 | * returns -1 on failure | ||
504 | */ | ||
505 | int tox_group_peer_pubkey(const Tox *tox, int groupnumber, int peernumber, uint8_t *pk); | ||
506 | |||
499 | /* invite friendnumber to groupnumber | 507 | /* invite friendnumber to groupnumber |
500 | * return 0 on success | 508 | * return 0 on success |
501 | * return -1 on failure | 509 | * return -1 on failure |