<p>laforge has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/libosmocore/+/25495">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res<br><br>This is useful when debugging IMS Authentication which uses<br>RFC3310 representation of the nonce and expected result.<br><br>Change-Id: Ibfa72410d8ff8e5b42063f1a12bff69ad2bebbb8<br>---<br>M utils/Makefile.am<br>M utils/osmo-auc-gen.c<br>2 files changed, 29 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/95/25495/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/utils/Makefile.am b/utils/Makefile.am</span><br><span>index 3f2b13f..f8fe895 100644</span><br><span>--- a/utils/Makefile.am</span><br><span>+++ b/utils/Makefile.am</span><br><span>@@ -2,8 +2,8 @@</span><br><span> bin_PROGRAMS =</span><br><span> noinst_PROGRAMS =</span><br><span> AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include $(TALLOC_CFLAGS)</span><br><span style="color: hsl(0, 100%, 40%);">-AM_CFLAGS = -Wall $(PTHREAD_CFLAGS)</span><br><span style="color: hsl(0, 100%, 40%);">-LDADD = $(top_builddir)/src/libosmocore.la $(top_builddir)/src/gsm/libosmogsm.la $(PTHREAD_LIBS)</span><br><span style="color: hsl(120, 100%, 40%);">+AM_CFLAGS = -Wall $(PTHREAD_CFLAGS) $(LIBGNUTLS_CFLAGS)</span><br><span style="color: hsl(120, 100%, 40%);">+LDADD = $(top_builddir)/src/libosmocore.la $(top_builddir)/src/gsm/libosmogsm.la $(PTHREAD_LIBS) $(LIBGNUTLS_LIBS)</span><br><span> </span><br><span> if ENABLE_UTILITIES</span><br><span> EXTRA_DIST = conv_gen.py conv_codes_gsm.py</span><br><span>diff --git a/utils/osmo-auc-gen.c b/utils/osmo-auc-gen.c</span><br><span>index eb6c65b..f0c733e 100644</span><br><span>--- a/utils/osmo-auc-gen.c</span><br><span>+++ b/utils/osmo-auc-gen.c</span><br><span>@@ -36,6 +36,24 @@</span><br><span> #include <osmocom/core/utils.h></span><br><span> #include <osmocom/gsm/gsm_utils.h></span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#include "../config.h"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef USE_GNUTLS</span><br><span style="color: hsl(120, 100%, 40%);">+#include <gnutls/gnutls.h></span><br><span style="color: hsl(120, 100%, 40%);">+static void print_base64(const char *fmt, const uint8_t *data, unsigned int len)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+        gnutls_datum_t in, out;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     in.data = (uint8_t *)data;</span><br><span style="color: hsl(120, 100%, 40%);">+    in.size = len;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      gnutls_base64_encode2(&in, &out);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   printf(fmt, out.data);</span><br><span style="color: hsl(120, 100%, 40%);">+        gnutls_free(out.data);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+#endif /* USE_GNUTLS */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static void dump_triplets_dat(struct osmo_auth_vector *vec)</span><br><span> {</span><br><span>     if (vec->auth_types & OSMO_AUTH_TYPE_UMTS) {</span><br><span>@@ -57,6 +75,15 @@</span><br><span>             printf("IK:\t%s\n", osmo_hexdump_nospc(vec->ik, sizeof(vec->ik)));</span><br><span>           printf("CK:\t%s\n", osmo_hexdump_nospc(vec->ck, sizeof(vec->ck)));</span><br><span>           printf("RES:\t%s\n", osmo_hexdump_nospc(vec->res, vec->res_len));</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#ifdef USE_GNUTLS</span><br><span style="color: hsl(120, 100%, 40%);">+#include <gnutls/gnutls.h></span><br><span style="color: hsl(120, 100%, 40%);">+              uint8_t inbuf[sizeof(vec->rand) + sizeof(vec->autn)];</span><br><span style="color: hsl(120, 100%, 40%);">+           memcpy(inbuf, vec->rand, sizeof(vec->rand));</span><br><span style="color: hsl(120, 100%, 40%);">+            memcpy(inbuf + sizeof(vec->rand), vec->autn, sizeof(vec->autn));</span><br><span style="color: hsl(120, 100%, 40%);">+             print_base64("IMS nonce:\t%s\n", inbuf, sizeof(inbuf));</span><br><span style="color: hsl(120, 100%, 40%);">+             print_base64("IMS res:\t%s\n", vec->res, vec->res_len);</span><br><span style="color: hsl(120, 100%, 40%);">+#endif /* USE_GNUTLS */</span><br><span>     }</span><br><span> </span><br><span>        if (vec->auth_types & OSMO_AUTH_TYPE_GSM) {</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmocore/+/25495">change 25495</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/libosmocore/+/25495"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libosmocore </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ibfa72410d8ff8e5b42063f1a12bff69ad2bebbb8 </div>
<div style="display:none"> Gerrit-Change-Number: 25495 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>