{"action":"created","comment":{"url":"https://api.github.com/repos/EricssonResearch/openwebrtc/pulls/comments/40291433","id":40291433,"diff_hunk":"@@ -0,0 +1,228 @@\n+/*\n+ * Copyright (c) 2015, Ericsson AB. All rights reserved.\n+ *\n+ * Redistribution and use in source and binary forms, with or without modification,\n+ * are permitted provided that the following conditions are met:\n+ *\n+ * 1. Redistributions of source code must retain the above copyright notice, this\n+ * list of conditions and the following disclaimer.\n+ *\n+ * 2. Redistributions in binary form must reproduce the above copyright notice, this\n+ * list of conditions and the following disclaimer in the documentation and/or other\n+ * materials provided with the distribution.\n+ *\n+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY\n+ * OF SUCH DAMAGE.\n+ */\n+\n+/*/\n+\\*\\ Owr crypto utils\n+/*/\n+\n+/**\n+ * \n+ *\n+ * Functions to get certificate, fingerprint and private key.\n+ */\n+\n+#ifdef HAVE_CONFIG_H\n+#include \"config.h\"\n+#endif\n+\n+#include \"owr_crypto_utils.h\"\n+#include \"owr_private.h\"\n+#include \"owr_utils.h\"\n+\n+\n+#ifdef OWR_STATIC\n+#include <stdlib.h>\n+#endif\n+\n+#ifdef __APPLE__\n+#include <TargetConditionals.h>\n+#endif\n+\n+#ifdef __ANDROID__\n+#include <android/log.h>\n+#endif\n+\n+#include <openssl/ssl.h>\n+#include <openssl/evp.h>\n+#include <openssl/rsa.h>\n+\n+/* PUBLIC */\n+\n+/**\n+ * owr_crypto_create_crypto_data:\n+ * @types:\n+ * @callback: (scope async):\n+ */\n+\n+/**\n+ * OwrCaptureSourcesCallback:\n+ * @privatekey: (transfer none)\n+ * @certificate: (transfer none)\n+ * @user_data: (allow-none): \n+ *\n+ * Prototype for the callback passed to owr_get_capture_sources()\n+ */\n+\n+\n+void owr_crypto_create_crypto_data(OwrCryptoDataCallback callback)\n+{\n+\n+  GClosure *closure;\n+\n+  g_return_if_fail(callback);\n+\n+  closure = g_cclosure_new(G_CALLBACK(callback), NULL, NULL);\n+  g_closure_set_marshal(closure, g_cclosure_marshal_generic);\n+\n+  X509 *cert;\n+\n+  X509_NAME *name = NULL;\n+\n+\n+  EVP_PKEY *key_pair;\n+ \n+  RSA *rsa;\n+\n+  #define GST_DTLS_BIO_BUFFER_SIZE 4096\n+  BIO *bio_cert;\n+  gchar buffer_cert[GST_DTLS_BIO_BUFFER_SIZE] = { 0 };\n+  gint len_cert;\n+  gchar *pem_cert = NULL;\n+  BIO *bio_key;\n+  gchar buffer_key[GST_DTLS_BIO_BUFFER_SIZE] = { 0 };\n+  gint len_key;\n+  gchar *pem_key = NULL;\n+\n+  gboolean errorDetected = FALSE;\n+\n+  bio_cert = BIO_new (BIO_s_mem ());\n+  bio_key = BIO_new (BIO_s_mem ());\n+\n+  GString *string_fprint = NULL;\n+  gchar *char_fprint = NULL;\n+  guint j;\n+  const EVP_MD *fprint_type = NULL;\n+  fprint_type = EVP_sha256();\n+  guchar fprint[EVP_MAX_MD_SIZE];\n+\n+  guint fprint_size;\n+\n+  cert = X509_new ();\n+\n+  key_pair = EVP_PKEY_new ();\n+\n+  rsa = RSA_generate_key (2048, RSA_F4, NULL, NULL);\n+\n+  EVP_PKEY_assign_RSA (key_pair, rsa);\n+\n+  X509_set_version (cert, 2);\n+  ASN1_INTEGER_set (X509_get_serialNumber (cert), 0);\n+  X509_gmtime_adj (X509_get_notBefore (cert), 0);\n+  X509_gmtime_adj (X509_get_notAfter (cert), 31536000L);  /* A year */\n+  X509_set_pubkey (cert, key_pair);\n+\n+  name = X509_get_subject_name (cert);\n+  X509_NAME_add_entry_by_txt (name, \"C\", MBSTRING_ASC, (unsigned char *) \"SE\",\n+      -1, -1, 0);\n+  X509_NAME_add_entry_by_txt (name, \"CN\", MBSTRING_ASC,\n+      (unsigned char *) \"OpenWebRTC\", -1, -1, 0);\n+  X509_set_issuer_name (cert, name);\n+  name = NULL;\n+\n+  X509_sign (cert, key_pair, EVP_sha256 ());\n+\n+  if (!X509_digest(cert, fprint_type, fprint, &fprint_size)) {\n+    GST_DEBUG(\"Error, could not create certificate fingerprint\");\n+    errorDetected = TRUE;\n+  }\n+\n+  string_fprint = g_string_new (NULL);\n+\n+  for (j=0; j < fprint_size; j++) { \n+    g_string_append_printf(string_fprint, \"%02X%c\", fprint[j], (j+1 == fprint_size) ?'\\n':':'); \n+  }\n+\n+  char_fprint = g_string_free(string_fprint, FALSE);\n+\n+  if (!PEM_write_bio_X509 (bio_cert, (X509 *) cert)) {\n+    GST_DEBUG(\"Error, could not write certificate bio\");","path":"transport/owr_crypto_utils.c","position":160,"original_position":160,"commit_id":"a939f9bffaaf3d9a5a79f110623b31aa9b0390b1","original_commit_id":"a939f9bffaaf3d9a5a79f110623b31aa9b0390b1","user":{"login":"superdump","id":302146,"avatar_url":"https://avatars.githubusercontent.com/u/302146?v=3","gravatar_id":"","url":"https://api.github.com/users/superdump","html_url":"https://github.com/superdump","followers_url":"https://api.github.com/users/superdump/followers","following_url":"https://api.github.com/users/superdump/following{/other_user}","gists_url":"https://api.github.com/users/superdump/gists{/gist_id}","starred_url":"https://api.github.com/users/superdump/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/superdump/subscriptions","organizations_url":"https://api.github.com/users/superdump/orgs","repos_url":"https://api.github.com/users/superdump/repos","events_url":"https://api.github.com/users/superdump/events{/privacy}","received_events_url":"https://api.github.com/users/superdump/received_events","type":"User","site_admin":false},"body":"GST_ERROR()","created_at":"2015-09-24T07:24:43Z","updated_at":"2015-09-24T07:24:43Z","html_url":"https://github.com/EricssonResearch/openwebrtc/pull/427#discussion_r40291433","pull_request_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/pulls/427","_links":{"self":{"href":"https://api.github.com/repos/EricssonResearch/openwebrtc/pulls/comments/40291433"},"html":{"href":"https://github.com/EricssonResearch/openwebrtc/pull/427#discussion_r40291433"},"pull_request":{"href":"https://api.github.com/repos/EricssonResearch/openwebrtc/pulls/427"}}},"pull_request":{"url":"https://api.github.com/repos/EricssonResearch/openwebrtc/pulls/427","id":38960808,"html_url":"https://github.com/EricssonResearch/openwebrtc/pull/427","diff_url":"https://github.com/EricssonResearch/openwebrtc/pull/427.diff","patch_url":"https://github.com/EricssonResearch/openwebrtc/pull/427.patch","issue_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/issues/427","number":427,"state":"open","locked":false,"title":"Making fingerprint part of SDP created by createOffer/Answer","user":{"login":"stefhak","id":1180334,"avatar_url":"https://avatars.githubusercontent.com/u/1180334?v=3","gravatar_id":"","url":"https://api.github.com/users/stefhak","html_url":"https://github.com/stefhak","followers_url":"https://api.github.com/users/stefhak/followers","following_url":"https://api.github.com/users/stefhak/following{/other_user}","gists_url":"https://api.github.com/users/stefhak/gists{/gist_id}","starred_url":"https://api.github.com/users/stefhak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stefhak/subscriptions","organizations_url":"https://api.github.com/users/stefhak/orgs","repos_url":"https://api.github.com/users/stefhak/repos","events_url":"https://api.github.com/users/stefhak/events{/privacy}","received_events_url":"https://api.github.com/users/stefhak/received_events","type":"User","site_admin":false},"body":"First cut. The key and certificate is hard coded. Tested to work with FF (sending the SDPs from createO/A).","created_at":"2015-07-01T08:56:21Z","updated_at":"2015-09-24T07:24:43Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b0d76895aed29c3e2e7c7d589b803e37ec374cc0","assignee":{"login":"Rugvip","id":4984472,"avatar_url":"https://avatars.githubusercontent.com/u/4984472?v=3","gravatar_id":"","url":"https://api.github.com/users/Rugvip","html_url":"https://github.com/Rugvip","followers_url":"https://api.github.com/users/Rugvip/followers","following_url":"https://api.github.com/users/Rugvip/following{/other_user}","gists_url":"https://api.github.com/users/Rugvip/gists{/gist_id}","starred_url":"https://api.github.com/users/Rugvip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Rugvip/subscriptions","organizations_url":"https://api.github.com/users/Rugvip/orgs","repos_url":"https://api.github.com/users/Rugvip/repos","events_url":"https://api.github.com/users/Rugvip/events{/privacy}","received_events_url":"https://api.github.com/users/Rugvip/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/pulls/427/commits","review_comments_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/pulls/427/comments","review_comment_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/issues/427/comments","statuses_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/statuses/a939f9bffaaf3d9a5a79f110623b31aa9b0390b1","head":{"label":"stefhak:earlyfingerprint","ref":"earlyfingerprint","sha":"a939f9bffaaf3d9a5a79f110623b31aa9b0390b1","user":{"login":"stefhak","id":1180334,"avatar_url":"https://avatars.githubusercontent.com/u/1180334?v=3","gravatar_id":"","url":"https://api.github.com/users/stefhak","html_url":"https://github.com/stefhak","followers_url":"https://api.github.com/users/stefhak/followers","following_url":"https://api.github.com/users/stefhak/following{/other_user}","gists_url":"https://api.github.com/users/stefhak/gists{/gist_id}","starred_url":"https://api.github.com/users/stefhak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stefhak/subscriptions","organizations_url":"https://api.github.com/users/stefhak/orgs","repos_url":"https://api.github.com/users/stefhak/repos","events_url":"https://api.github.com/users/stefhak/events{/privacy}","received_events_url":"https://api.github.com/users/stefhak/received_events","type":"User","site_admin":false},"repo":{"id":36233384,"name":"openwebrtc","full_name":"stefhak/openwebrtc","owner":{"login":"stefhak","id":1180334,"avatar_url":"https://avatars.githubusercontent.com/u/1180334?v=3","gravatar_id":"","url":"https://api.github.com/users/stefhak","html_url":"https://github.com/stefhak","followers_url":"https://api.github.com/users/stefhak/followers","following_url":"https://api.github.com/users/stefhak/following{/other_user}","gists_url":"https://api.github.com/users/stefhak/gists{/gist_id}","starred_url":"https://api.github.com/users/stefhak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stefhak/subscriptions","organizations_url":"https://api.github.com/users/stefhak/orgs","repos_url":"https://api.github.com/users/stefhak/repos","events_url":"https://api.github.com/users/stefhak/events{/privacy}","received_events_url":"https://api.github.com/users/stefhak/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/stefhak/openwebrtc","description":"A mobile-first WebRTC client framework for building native apps","fork":true,"url":"https://api.github.com/repos/stefhak/openwebrtc","forks_url":"https://api.github.com/repos/stefhak/openwebrtc/forks","keys_url":"https://api.github.com/repos/stefhak/openwebrtc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/stefhak/openwebrtc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/stefhak/openwebrtc/teams","hooks_url":"https://api.github.com/repos/stefhak/openwebrtc/hooks","issue_events_url":"https://api.github.com/repos/stefhak/openwebrtc/issues/events{/number}","events_url":"https://api.github.com/repos/stefhak/openwebrtc/events","assignees_url":"https://api.github.com/repos/stefhak/openwebrtc/assignees{/user}","branches_url":"https://api.github.com/repos/stefhak/openwebrtc/branches{/branch}","tags_url":"https://api.github.com/repos/stefhak/openwebrtc/tags","blobs_url":"https://api.github.com/repos/stefhak/openwebrtc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/stefhak/openwebrtc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/stefhak/openwebrtc/git/refs{/sha}","trees_url":"https://api.github.com/repos/stefhak/openwebrtc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/stefhak/openwebrtc/statuses/{sha}","languages_url":"https://api.github.com/repos/stefhak/openwebrtc/languages","stargazers_url":"https://api.github.com/repos/stefhak/openwebrtc/stargazers","contributors_url":"https://api.github.com/repos/stefhak/openwebrtc/contributors","subscribers_url":"https://api.github.com/repos/stefhak/openwebrtc/subscribers","subscription_url":"https://api.github.com/repos/stefhak/openwebrtc/subscription","commits_url":"https://api.github.com/repos/stefhak/openwebrtc/commits{/sha}","git_commits_url":"https://api.github.com/repos/stefhak/openwebrtc/git/commits{/sha}","comments_url":"https://api.github.com/repos/stefhak/openwebrtc/comments{/number}","issue_comment_url":"https://api.github.com/repos/stefhak/openwebrtc/issues/comments{/number}","contents_url":"https://api.github.com/repos/stefhak/openwebrtc/contents/{+path}","compare_url":"https://api.github.com/repos/stefhak/openwebrtc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/stefhak/openwebrtc/merges","archive_url":"https://api.github.com/repos/stefhak/openwebrtc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/stefhak/openwebrtc/downloads","issues_url":"https://api.github.com/repos/stefhak/openwebrtc/issues{/number}","pulls_url":"https://api.github.com/repos/stefhak/openwebrtc/pulls{/number}","milestones_url":"https://api.github.com/repos/stefhak/openwebrtc/milestones{/number}","notifications_url":"https://api.github.com/repos/stefhak/openwebrtc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/stefhak/openwebrtc/labels{/name}","releases_url":"https://api.github.com/repos/stefhak/openwebrtc/releases{/id}","created_at":"2015-05-25T13:41:05Z","updated_at":"2015-05-25T13:41:05Z","pushed_at":"2015-09-23T17:48:07Z","git_url":"git://github.com/stefhak/openwebrtc.git","ssh_url":"git@github.com:stefhak/openwebrtc.git","clone_url":"https://github.com/stefhak/openwebrtc.git","svn_url":"https://github.com/stefhak/openwebrtc","homepage":"www.openwebrtc.io","size":1420,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"EricssonResearch:master","ref":"master","sha":"32ae7af09e49b664795b07c5577675fb3767fc28","user":{"login":"EricssonResearch","id":611464,"avatar_url":"https://avatars.githubusercontent.com/u/611464?v=3","gravatar_id":"","url":"https://api.github.com/users/EricssonResearch","html_url":"https://github.com/EricssonResearch","followers_url":"https://api.github.com/users/EricssonResearch/followers","following_url":"https://api.github.com/users/EricssonResearch/following{/other_user}","gists_url":"https://api.github.com/users/EricssonResearch/gists{/gist_id}","starred_url":"https://api.github.com/users/EricssonResearch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EricssonResearch/subscriptions","organizations_url":"https://api.github.com/users/EricssonResearch/orgs","repos_url":"https://api.github.com/users/EricssonResearch/repos","events_url":"https://api.github.com/users/EricssonResearch/events{/privacy}","received_events_url":"https://api.github.com/users/EricssonResearch/received_events","type":"Organization","site_admin":false},"repo":{"id":24327512,"name":"openwebrtc","full_name":"EricssonResearch/openwebrtc","owner":{"login":"EricssonResearch","id":611464,"avatar_url":"https://avatars.githubusercontent.com/u/611464?v=3","gravatar_id":"","url":"https://api.github.com/users/EricssonResearch","html_url":"https://github.com/EricssonResearch","followers_url":"https://api.github.com/users/EricssonResearch/followers","following_url":"https://api.github.com/users/EricssonResearch/following{/other_user}","gists_url":"https://api.github.com/users/EricssonResearch/gists{/gist_id}","starred_url":"https://api.github.com/users/EricssonResearch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EricssonResearch/subscriptions","organizations_url":"https://api.github.com/users/EricssonResearch/orgs","repos_url":"https://api.github.com/users/EricssonResearch/repos","events_url":"https://api.github.com/users/EricssonResearch/events{/privacy}","received_events_url":"https://api.github.com/users/EricssonResearch/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/EricssonResearch/openwebrtc","description":"A mobile-first WebRTC client framework for building native apps","fork":false,"url":"https://api.github.com/repos/EricssonResearch/openwebrtc","forks_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/forks","keys_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/teams","hooks_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/hooks","issue_events_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/issues/events{/number}","events_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/events","assignees_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/assignees{/user}","branches_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/branches{/branch}","tags_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/tags","blobs_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/git/refs{/sha}","trees_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/statuses/{sha}","languages_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/languages","stargazers_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/stargazers","contributors_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/contributors","subscribers_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/subscribers","subscription_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/subscription","commits_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/commits{/sha}","git_commits_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/git/commits{/sha}","comments_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/comments{/number}","issue_comment_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/issues/comments{/number}","contents_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/contents/{+path}","compare_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/merges","archive_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/downloads","issues_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/issues{/number}","pulls_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/pulls{/number}","milestones_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/milestones{/number}","notifications_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/labels{/name}","releases_url":"https://api.github.com/repos/EricssonResearch/openwebrtc/releases{/id}","created_at":"2014-09-22T12:23:46Z","updated_at":"2015-09-23T05:58:25Z","pushed_at":"2015-09-24T07:22:32Z","git_url":"git://github.com/EricssonResearch/openwebrtc.git","ssh_url":"git@github.com:EricssonResearch/openwebrtc.git","clone_url":"https://github.com/EricssonResearch/openwebrtc.git","svn_url":"https://github.com/EricssonResearch/openwebrtc","homepage":"www.openwebrtc.io","size":5768,"stargazers_count":711,"watchers_count":711,"language":"C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":307,"mirror_url":null,"open_issues_count":121,"forks":307,"open_issues":121,"watchers":711,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/EricssonResearch/openwebrtc/pulls/427"},"html":{"href":"https://github.com/EricssonResearch/openwebrtc/pull/427"},"issue":{"href":"https://api.github.com/repos/EricssonResearch/openwebrtc/issues/427"},"comments":{"href":"https://api.github.com/repos/EricssonResearch/openwebrtc/issues/427/comments"},"review_comments":{"href":"https://api.github.com/repos/EricssonResearch/openwebrtc/pulls/427/comments"},"review_comment":{"href":"https://api.github.com/repos/EricssonResearch/openwebrtc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/EricssonResearch/openwebrtc/pulls/427/commits"},"statuses":{"href":"https://api.github.com/repos/EricssonResearch/openwebrtc/statuses/a939f9bffaaf3d9a5a79f110623b31aa9b0390b1"}}}}