From 1c80e4fad04638b4e6f141f49d27a0caf915d624 Mon Sep 17 00:00:00 2001 From: Chris Hiszpanski Date: Tue, 4 May 2021 00:49:02 -0700 Subject: Adds ice-pwd and ice-ufrag to sdp answer Adds simple base64 encoder as pwd and ufrag are expected to be base64 encoded. Uses prng to generate random data. Is this secure? --- src/urtc.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/urtc.c') diff --git a/src/urtc.c b/src/urtc.c index f3ffa99..47c32b8 100644 --- a/src/urtc.c +++ b/src/urtc.c @@ -39,6 +39,7 @@ #include // socket #include +#include "b64.h" // b64_encode #include "err.h" #include "log.h" #include "mdns.h" // mdns_subscribe, mdns_unsubscribe @@ -426,6 +427,17 @@ int urtc_add_ice_candidate(struct peerconn *pc, const char *cand) { } int urtc_create_answer(struct peerconn *pc, char *answer, size_t size) { + char pwd[18]; // 24 base64 characters + char ufrag[3]; // 4 base64 characters + + prng(pwd, sizeof(pwd)); + prng(ufrag, sizeof(ufrag)); + + b64_encode(pc->ldesc.pwd, pwd, sizeof(pwd)); + b64_encode(pc->ldesc.ufrag, ufrag, sizeof(ufrag)); + + pc->ldesc.mode = SDP_MODE_SEND_ONLY; + return sdp_serialize(answer, size, &pc->ldesc); } -- cgit v1.2.3