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/attributes.c b/src/dtls_parameters/attributes.c
new file mode 100644
index 0000000..e8a6a30
--- /dev/null
+++ b/src/dtls_parameters/attributes.c
@@ -0,0 +1,39 @@
+#include "parameters.h"
+#include <rawrtc/dtls_fingerprint.h>
+#include <rawrtc/dtls_parameters.h>
+#include <rawrtc/dtls_transport.h>
+#include <rawrtcc/code.h>
+#include <re.h>
+
+/*
+ * Get the DTLS parameter's role value.
+ */
+enum rawrtc_code rawrtc_dtls_parameters_get_role(
+    enum rawrtc_dtls_role* rolep,  // de-referenced
+    struct rawrtc_dtls_parameters* const parameters) {
+    // Check arguments
+    if (!rolep || !parameters) {
+        return RAWRTC_CODE_INVALID_ARGUMENT;
+    }
+
+    // Set value
+    *rolep = parameters->role;
+    return RAWRTC_CODE_SUCCESS;
+}
+
+/*
+ * Get the DTLS parameter's fingerprint array.
+ * `*fingerprintsp` must be unreferenced.
+ */
+enum rawrtc_code rawrtc_dtls_parameters_get_fingerprints(
+    struct rawrtc_dtls_fingerprints** const fingerprintsp,  // de-referenced
+    struct rawrtc_dtls_parameters* const parameters) {
+    // Check arguments
+    if (!fingerprintsp || !parameters) {
+        return RAWRTC_CODE_INVALID_ARGUMENT;
+    }
+
+    // Set pointer (and reference)
+    *fingerprintsp = mem_ref(parameters->fingerprints);
+    return RAWRTC_CODE_SUCCESS;
+}