Squashed 'third_party/rawrtc/rawrtc/' content from commit aa3ae4b24
Change-Id: I38a655a4259b62f591334e90a1315bd4e7e4d8ec
git-subtree-dir: third_party/rawrtc/rawrtc
git-subtree-split: aa3ae4b247275cc6e69c30613b3a4ba7fdc82d1b
diff --git a/src/dtls_parameters/utils.c b/src/dtls_parameters/utils.c
new file mode 100644
index 0000000..e79e4c5
--- /dev/null
+++ b/src/dtls_parameters/utils.c
@@ -0,0 +1,40 @@
+#include "parameters.h"
+#include "../dtls_fingerprint/fingerprint.h"
+#include <rawrtc/certificate.h>
+#include <rawrtc/dtls_fingerprint.h>
+#include <rawrtc/dtls_transport.h>
+#include <re.h>
+
+/*
+ * Print debug information for DTLS parameters.
+ */
+int rawrtc_dtls_parameters_debug(
+ struct re_printf* const pf, struct rawrtc_dtls_parameters const* const parameters) {
+ int err = 0;
+ struct rawrtc_dtls_fingerprints* fingerprints;
+ size_t i;
+
+ // Check arguments
+ if (!parameters) {
+ return 0;
+ }
+
+ err |= re_hprintf(pf, " DTLS Parameters <%p>:\n", parameters);
+
+ // Role
+ err |= re_hprintf(pf, " role=%s\n", rawrtc_dtls_role_to_str(parameters->role));
+
+ // Fingerprints
+ fingerprints = parameters->fingerprints;
+ err |= re_hprintf(pf, " Fingerprints <%p>:\n", fingerprints);
+ for (i = 0; i < fingerprints->n_fingerprints; ++i) {
+ // Fingerprint
+ err |= re_hprintf(
+ pf, " algorithm=%s value=%s\n",
+ rawrtc_certificate_sign_algorithm_to_str(fingerprints->fingerprints[i]->algorithm),
+ fingerprints->fingerprints[i]->value);
+ }
+
+ // Done
+ return err;
+}