diff --git a/tests/auc/Makefile.am b/tests/auc/Makefile.am
index 1d506a7..761396b 100644
--- a/tests/auc/Makefile.am
+++ b/tests/auc/Makefile.am
@@ -1,3 +1,5 @@
+SUBDIRS = gen_ts_55_205_test_sets
+
 AM_CPPFLAGS = \
 	$(all_includes) \
 	-I$(top_srcdir)/src \
@@ -16,10 +18,14 @@
 EXTRA_DIST = \
 	auc_3g_test.ok \
 	auc_3g_test.err \
+	auc_ts_55_205_test_sets.ok \
+	auc_ts_55_205_test_sets.err \
 	$(NULL)
 
+
 noinst_PROGRAMS = \
 	auc_3g_test \
+	auc_ts_55_205_test_sets \
 	$(NULL)
 
 auc_3g_test_SOURCES = \
@@ -32,3 +38,18 @@
 	$(LIBOSMOCORE_LIBS) \
 	$(LIBOSMOGSM_LIBS) \
 	$(NULL)
+
+auc_ts_55_205_test_sets_SOURCES = \
+	$(builddir)/auc_ts_55_205_test_sets.c \
+	$(NULL)
+
+auc_ts_55_205_test_sets_LDADD = \
+	$(top_srcdir)/src/auc.c \
+	$(top_srcdir)/src/logging.c \
+	$(LIBOSMOCORE_LIBS) \
+	$(LIBOSMOGSM_LIBS) \
+	$(NULL)
+
+auc_ts_55_205_test_sets.c: $(top_srcdir)/tests/auc/gen_ts_55_205_test_sets/*
+	$(top_srcdir)/tests/auc/gen_ts_55_205_test_sets/pdftxt_2_c.py > $@
+
diff --git a/tests/auc/auc_3g_test.c b/tests/auc/auc_3g_test.c
index bfca39f..0923a27 100644
--- a/tests/auc/auc_3g_test.c
+++ b/tests/auc/auc_3g_test.c
@@ -20,6 +20,7 @@
 
 #include <stdio.h>
 #include <string.h>
+#include <inttypes.h>
 
 #include <osmocom/core/application.h>
 #include <osmocom/core/utils.h>
@@ -39,7 +40,7 @@
 		OSMO_ASSERT((val) expect_op); \
 	} while (0);
 
-const char *vec_str(const struct osmo_auth_vector *vec)
+char *vec_str(const struct osmo_auth_vector *vec)
 {
 	static char buf[1024];
 	char *pos = buf;
@@ -67,7 +68,7 @@
 }
 
 #define VEC_IS(vec, expect) do { \
-		const char *_is = vec_str(vec); \
+		char *_is = vec_str(vec); \
 		fprintf(stderr, "auth vector ==\n%s\n", _is); \
 	        if (strcmp(_is, expect)) { \
 			fprintf(stderr, "MISMATCH! expected ==\n%s\n", \
@@ -78,7 +79,7 @@
 				if (*a != *b) { \
 					while (a > _is && *(a-1) != '\n') a--; \
 					fprintf(stderr, "mismatch at %d:\n" \
-						"%s", a - _is, a); \
+						"%s", (int)(a - _is), a); \
 					break; \
 				} \
 			} \
@@ -112,13 +113,13 @@
 	osmo_hexparse("EB215756028D60E3275E613320AEC880",
 		      aud2g.u.gsm.ki, sizeof(aud2g.u.gsm.ki));
 
-	aud3g = (struct osmo_sub_auth_data){ {0} };
+	aud3g = (struct osmo_sub_auth_data){ 0 };
 
 	osmo_hexparse("39fa2f4e3d523d8619a73b4f65c3e14d",
 		      fake_rand, sizeof(fake_rand));
 
 	vec = (struct osmo_auth_vector){ {0} };
-	VERBOSE_ASSERT(aud3g.u.umts.sqn, == 0, "%d");
+	VERBOSE_ASSERT(aud3g.u.umts.sqn, == 0, "%"PRIu64);
 	rc = auc_compute_vectors(&vec, 1, &aud2g, &aud3g, NULL, NULL);
 	VERBOSE_ASSERT(rc, == 1, "%d");
 
@@ -134,7 +135,7 @@
 	       "  auth_types: 01000000\n"
 	      );
 
-	VERBOSE_ASSERT(aud3g.u.umts.sqn, == 0, "%d");
+	VERBOSE_ASSERT(aud3g.u.umts.sqn, == 0, "%"PRIu64);
 
 	/* even though vec is not zero-initialized, it should produce the same
 	 * result (regardless of the umts sequence nr) */
@@ -188,7 +189,7 @@
 		      fake_rand, sizeof(fake_rand));
 
 	vec = (struct osmo_auth_vector){ {0} };
-	VERBOSE_ASSERT(aud3g.u.umts.sqn, == 0, "%d");
+	VERBOSE_ASSERT(aud3g.u.umts.sqn, == 0, "%"PRIu64);
 	rc = auc_compute_vectors(&vec, 1, &aud2g, &aud3g, NULL, NULL);
 	VERBOSE_ASSERT(rc, == 1, "%d");
 
@@ -204,15 +205,15 @@
 	       "  auth_types: 03000000\n"
 	      );
 
-	VERBOSE_ASSERT(aud3g.u.umts.sqn, == 1, "%d");
+	VERBOSE_ASSERT(aud3g.u.umts.sqn, == 1, "%"PRIu64);
 
 	/* even though vec is not zero-initialized, it should produce the same
 	 * result with the same sequence nr */
 	aud3g.u.umts.sqn = 0;
-	VERBOSE_ASSERT(aud3g.u.umts.sqn, == 0, "%d");
+	VERBOSE_ASSERT(aud3g.u.umts.sqn, == 0, "%"PRIu64);
 	rc = auc_compute_vectors(&vec, 1, &aud2g, &aud3g, NULL, NULL);
 	VERBOSE_ASSERT(rc, == 1, "%d");
-	VERBOSE_ASSERT(aud3g.u.umts.sqn, == 1, "%d");
+	VERBOSE_ASSERT(aud3g.u.umts.sqn, == 1, "%"PRIu64);
 
 	VEC_IS(&vec,
 	       "  rand: 39fa2f4e3d523d8619a73b4f65c3e14d\n"
@@ -254,7 +255,7 @@
 		      fake_rand, sizeof(fake_rand));
 
 	vec = (struct osmo_auth_vector){ {0} };
-	VERBOSE_ASSERT(aud3g.u.umts.sqn, == 0, "%d");
+	VERBOSE_ASSERT(aud3g.u.umts.sqn, == 0, "%"PRIu64);
 	rc = auc_compute_vectors(&vec, 1, &aud2g, &aud3g, NULL, NULL);
 	VERBOSE_ASSERT(rc, == 1, "%d");
 
@@ -280,15 +281,15 @@
 	 * hence expecting kc: 059a4f668f6fbe39
 	 */
 
-	VERBOSE_ASSERT(aud3g.u.umts.sqn, == 1, "%d");
+	VERBOSE_ASSERT(aud3g.u.umts.sqn, == 1, "%"PRIu64);
 
 	/* even though vec is not zero-initialized, it should produce the same
 	 * result with the same sequence nr */
 	aud3g.u.umts.sqn = 0;
-	VERBOSE_ASSERT(aud3g.u.umts.sqn, == 0, "%d");
+	VERBOSE_ASSERT(aud3g.u.umts.sqn, == 0, "%"PRIu64);
 	rc = auc_compute_vectors(&vec, 1, &aud2g, &aud3g, NULL, NULL);
 	VERBOSE_ASSERT(rc, == 1, "%d");
-	VERBOSE_ASSERT(aud3g.u.umts.sqn, == 1, "%d");
+	VERBOSE_ASSERT(aud3g.u.umts.sqn, == 1, "%"PRIu64);
 
 	VEC_IS(&vec,
 	       "  rand: 39fa2f4e3d523d8619a73b4f65c3e14d\n"
diff --git a/tests/auc/auc_ts_55_205_test_sets.err b/tests/auc/auc_ts_55_205_test_sets.err
new file mode 100644
index 0000000..9a26922
--- /dev/null
+++ b/tests/auc/auc_ts_55_205_test_sets.err
@@ -0,0 +1,304 @@
+
+===== test_set_1
+aud3g.u.umts.sqn == 0
+DAUC rand 23553cbe9637a89d218ae64dae47bf35
+DAUC compute vector [0]/1: 3G only
+rc == 1
+auth vector ==
+  rand: 23553cbe9637a89d218ae64dae47bf35
+  ck: b40ba9a3c58b2a05bbf0d987b21bf8cb
+  ik: f769bcd751044604127672711c6d3441
+  res: a54211d5e3ba50bf0000000000000000
+  kc: eae4be823af9a08b
+  sres: 46f8416a
+
+===== test_set_1: SUCCESS
+
+
+===== test_set_2
+aud3g.u.umts.sqn == 0
+DAUC rand 9f7c8d021accf4db213ccff0c7f71a6a
+DAUC compute vector [0]/1: 3G only
+rc == 1
+auth vector ==
+  rand: 9f7c8d021accf4db213ccff0c7f71a6a
+  ck: 5dbdbb2954e8f3cde665b046179a5098
+  ik: 59a92d3b476a0443487055cf88b2307b
+  res: 8011c48c0c214ed20000000000000000
+  kc: aa01739b8caa976d
+  sres: 8c308a5e
+
+===== test_set_2: SUCCESS
+
+
+===== test_set_3
+aud3g.u.umts.sqn == 0
+DAUC rand ce83dbc54ac0274a157c17f80d017bd6
+DAUC compute vector [0]/1: 3G only
+rc == 1
+auth vector ==
+  rand: ce83dbc54ac0274a157c17f80d017bd6
+  ck: e203edb3971574f5a94b0d61b816345d
+  ik: 0c4524adeac041c4dd830d20854fc46b
+  res: f365cd683cd92e960000000000000000
+  kc: 9a8ec95f408cc507
+  sres: cfbce3fe
+
+===== test_set_3: SUCCESS
+
+
+===== test_set_4
+aud3g.u.umts.sqn == 0
+DAUC rand 74b0cd6031a1c8339b2b6ce2b8c4a186
+DAUC compute vector [0]/1: 3G only
+rc == 1
+auth vector ==
+  rand: 74b0cd6031a1c8339b2b6ce2b8c4a186
+  ck: 7657766b373d1c2138f307e3de9242f9
+  ik: 1c42e960d89b8fa99f2744e0708ccb53
+  res: 5860fc1bce351e7e0000000000000000
+  kc: cdc1dc0841b81a22
+  sres: 9655e265
+
+===== test_set_4: SUCCESS
+
+
+===== test_set_5
+aud3g.u.umts.sqn == 0
+DAUC rand ee6466bc96202c5a557abbeff8babf63
+DAUC compute vector [0]/1: 3G only
+rc == 1
+auth vector ==
+  rand: ee6466bc96202c5a557abbeff8babf63
+  ck: 3f8c7587fe8e4b233af676aede30ba3b
+  ik: a7466cc1e6b2a1337d49d3b66e95d7b4
+  res: 16c8233f05a0ac280000000000000000
+  kc: df75bc5ea899879f
+  sres: 13688f17
+
+===== test_set_5: SUCCESS
+
+
+===== test_set_6
+aud3g.u.umts.sqn == 0
+DAUC rand 194aa756013896b74b4a2a3b0af4539e
+DAUC compute vector [0]/1: 3G only
+rc == 1
+auth vector ==
+  rand: 194aa756013896b74b4a2a3b0af4539e
+  ck: 4cd0846020f8fa0731dd47cbdc6be411
+  ik: 88ab80a415f15c73711254a1d388f696
+  res: 8c25a16cd918a1df0000000000000000
+  kc: 84b417ae3aeab4f3
+  sres: 553d00b3
+
+===== test_set_6: SUCCESS
+
+
+===== test_set_7
+aud3g.u.umts.sqn == 0
+DAUC rand 3a4c2b3245c50eb5c71d08639395764d
+DAUC compute vector [0]/1: 3G only
+rc == 1
+auth vector ==
+  rand: 3a4c2b3245c50eb5c71d08639395764d
+  ck: 10f05bab75a99a5fbb98a9c287679c3b
+  ik: f9ec0865eb32f22369cade40c59c3a44
+  res: a63241e1ffc3e5ab0000000000000000
+  kc: 3b4e244cdc60ce03
+  sres: 59f1a44a
+
+===== test_set_7: SUCCESS
+
+
+===== test_set_8
+aud3g.u.umts.sqn == 0
+DAUC rand f761e5e93d603feb730e27556cb8a2ca
+DAUC compute vector [0]/1: 3G only
+rc == 1
+auth vector ==
+  rand: f761e5e93d603feb730e27556cb8a2ca
+  ck: 71236b7129f9b22ab77ea7a54c96da22
+  ik: 90527ebaa5588968db41727325a04d9e
+  res: 4a90b2171ac83a760000000000000000
+  kc: 8d4ec01de597acfe
+  sres: 50588861
+
+===== test_set_8: SUCCESS
+
+
+===== test_set_9
+aud3g.u.umts.sqn == 0
+DAUC rand 08eff828b13fdb562722c65c7f30a9b2
+DAUC compute vector [0]/1: 3G only
+rc == 1
+auth vector ==
+  rand: 08eff828b13fdb562722c65c7f30a9b2
+  ck: 08cef6d004ec61471a3c3cda048137fa
+  ik: ed0318ca5deb9206272f6e8fa64ba411
+  res: 4bc2212d8624910a0000000000000000
+  kc: d8debc4ffbcd60aa
+  sres: cde6b027
+
+===== test_set_9: SUCCESS
+
+
+===== test_set_10
+aud3g.u.umts.sqn == 0
+DAUC rand 679ac4dbacd7d233ff9d6806f4149ce3
+DAUC compute vector [0]/1: 3G only
+rc == 1
+auth vector ==
+  rand: 679ac4dbacd7d233ff9d6806f4149ce3
+  ck: 69b1cae7c7429d975e245cacb05a517c
+  ik: 74f24e8c26df58e1b38d7dcd4f1b7fbd
+  res: 6fc30fee6d1235230000000000000000
+  kc: f0eaa50a1edcebb7
+  sres: 02d13acd
+
+===== test_set_10: SUCCESS
+
+
+===== test_set_11
+aud3g.u.umts.sqn == 0
+DAUC rand 4c47eb3076dc55fe5106cb2034b8cd78
+DAUC compute vector [0]/1: 3G only
+rc == 1
+auth vector ==
+  rand: 4c47eb3076dc55fe5106cb2034b8cd78
+  ck: 908c43f0569cb8f74bc971e706c36c5f
+  ik: c251df0d888dd9329bcf46655b226e40
+  res: aefa357beac2a87a0000000000000000
+  kc: 82dbab7f83f063da
+  sres: 44389d01
+
+===== test_set_11: SUCCESS
+
+
+===== test_set_12
+aud3g.u.umts.sqn == 0
+DAUC rand 311c4c929744d675b720f3b7e9b1cbd0
+DAUC compute vector [0]/1: 3G only
+rc == 1
+auth vector ==
+  rand: 311c4c929744d675b720f3b7e9b1cbd0
+  ck: 44c0f23c5493cfd241e48f197e1d1012
+  ik: 0c9fb81613884c2535dd0eabf3b440d8
+  res: 98dbbd099b3b408d0000000000000000
+  kc: 3c66cb98cab2d33d
+  sres: 03e0fd84
+
+===== test_set_12: SUCCESS
+
+
+===== test_set_13
+aud3g.u.umts.sqn == 0
+DAUC rand cf7d0ab1d94306950bf12018fbd46887
+DAUC compute vector [0]/1: 3G only
+rc == 1
+auth vector ==
+  rand: cf7d0ab1d94306950bf12018fbd46887
+  ck: 5af86b80edb70df5292cc1121cbad50c
+  ik: 7f4d6ae7440e18789a8b75ad3f42f03a
+  res: af4a411e1139f2c20000000000000000
+  kc: 9612b5d88a4130bb
+  sres: be73b3dc
+
+===== test_set_13: SUCCESS
+
+
+===== test_set_14
+aud3g.u.umts.sqn == 0
+DAUC rand 1f0f8578464fd59b64bed2d09436b57a
+DAUC compute vector [0]/1: 3G only
+rc == 1
+auth vector ==
+  rand: 1f0f8578464fd59b64bed2d09436b57a
+  ck: 3f8c3f3ccf7625bf77fc94bcfd22fd26
+  ik: abcbae8fd46115e9961a55d0da5f2078
+  res: 7bffa5c2f41fbc050000000000000000
+  kc: 75a150df3c6aed08
+  sres: 8fe019c7
+
+===== test_set_14: SUCCESS
+
+
+===== test_set_15
+aud3g.u.umts.sqn == 0
+DAUC rand 59b75f14251c75031d0bcbac1c2c04c7
+DAUC compute vector [0]/1: 3G only
+rc == 1
+auth vector ==
+  rand: 59b75f14251c75031d0bcbac1c2c04c7
+  ck: d42b2d615e49a03ac275a5aef97af892
+  ik: 0b3f8d024fe6bfafaa982b8f82e319c2
+  res: 7e3f44c7591f6f450000000000000000
+  kc: b7f92e426a36fec5
+  sres: 27202b82
+
+===== test_set_15: SUCCESS
+
+
+===== test_set_16
+aud3g.u.umts.sqn == 0
+DAUC rand f69b78f300a0568bce9f0cb93c4be4c9
+DAUC compute vector [0]/1: 3G only
+rc == 1
+auth vector ==
+  rand: f69b78f300a0568bce9f0cb93c4be4c9
+  ck: 6edaf99e5bd9f85d5f36d91c1272fb4b
+  ik: d61c853c280dd9c46f297baec386de17
+  res: 70f6bdb9ad21525f0000000000000000
+  kc: 88d9de10a22004c5
+  sres: ddd7efe6
+
+===== test_set_16: SUCCESS
+
+
+===== test_set_17
+aud3g.u.umts.sqn == 0
+DAUC rand b120f1c1a0102a2f507dd543de68281f
+DAUC compute vector [0]/1: 3G only
+rc == 1
+auth vector ==
+  rand: b120f1c1a0102a2f507dd543de68281f
+  ck: 66195dbed0313274c5ca7766615fa25e
+  ik: 66bec707eb2afc476d7408a8f2927b36
+  res: 479dd25c20792d630000000000000000
+  kc: a819e577a8d6175b
+  sres: 67e4ff3f
+
+===== test_set_17: SUCCESS
+
+
+===== test_set_18
+aud3g.u.umts.sqn == 0
+DAUC rand 81e92b6c0ee0e12ebceba8d92a99dfa5
+DAUC compute vector [0]/1: 3G only
+rc == 1
+auth vector ==
+  rand: 81e92b6c0ee0e12ebceba8d92a99dfa5
+  ck: 5349fbe098649f948f5d2e973a81c00f
+  ik: 9744871ad32bf9bbd1dd5ce54e3e2e5a
+  res: 28d7b0f2a2ec3de50000000000000000
+  kc: 9a8d0e883ff0887a
+  sres: 8a3b8d17
+
+===== test_set_18: SUCCESS
+
+
+===== test_set_19
+aud3g.u.umts.sqn == 0
+DAUC rand 9fddc72092c6ad036b6e464789315b78
+DAUC compute vector [0]/1: 3G only
+rc == 1
+auth vector ==
+  rand: 9fddc72092c6ad036b6e464789315b78
+  ck: b5f2da03883b69f96bf52e029ed9ac45
+  ik: b4721368bc16ea67875c5598688bb0ef
+  res: a95100e2760952cd0000000000000000
+  kc: ed29b2f1c27f9f34
+  sres: df58522f
+
+===== test_set_19: SUCCESS
+
diff --git a/tests/auc/auc_ts_55_205_test_sets.ok b/tests/auc/auc_ts_55_205_test_sets.ok
new file mode 100644
index 0000000..4eed389
--- /dev/null
+++ b/tests/auc/auc_ts_55_205_test_sets.ok
@@ -0,0 +1,2 @@
+3GPP TS 55.205 Test Sets
+Done
diff --git a/tests/auc/gen_ts_55_205_test_sets/Makefile.am b/tests/auc/gen_ts_55_205_test_sets/Makefile.am
new file mode 100644
index 0000000..3225384
--- /dev/null
+++ b/tests/auc/gen_ts_55_205_test_sets/Makefile.am
@@ -0,0 +1,6 @@
+EXTRA_DIST = \
+	func_template.c \
+	main_template.c \
+	pdftxt_2_c.py \
+	ts55_205_test_sets.txt \
+	$(NULL)
diff --git a/tests/auc/gen_ts_55_205_test_sets/func_template.c b/tests/auc/gen_ts_55_205_test_sets/func_template.c
new file mode 100644
index 0000000..36926eb
--- /dev/null
+++ b/tests/auc/gen_ts_55_205_test_sets/func_template.c
@@ -0,0 +1,64 @@
+/* gen_ts_55_205_test_sets/func_template.c: Template to generate test code
+ * from 3GPP TS 55.205 test sets */
+
+/* (C) 2016 by sysmocom s.f.m.c. GmbH <info@sysmocom.de>
+ *
+ * All Rights Reserved
+ *
+ * Author: Neels Hofmeyr <nhofmeyr@sysmocom.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+static void {func_name}(void)
+{{
+        struct osmo_sub_auth_data aud2g;
+        struct osmo_sub_auth_data aud3g;
+        struct osmo_auth_vector vec;
+        int rc;
+
+        comment_start();
+
+        aud2g = (struct osmo_sub_auth_data){{ 0 }};
+
+        aud3g = (struct osmo_sub_auth_data){{
+                .type = OSMO_AUTH_TYPE_UMTS,
+                .algo = OSMO_AUTH_ALG_MILENAGE,
+        }};
+
+        osmo_hexparse("{Ki}",
+                      aud3g.u.umts.k, sizeof(aud3g.u.umts.k));
+        osmo_hexparse("{OPc}",
+                      aud3g.u.umts.opc, sizeof(aud3g.u.umts.opc));
+
+        osmo_hexparse("{RAND}",
+                      fake_rand, sizeof(fake_rand));
+
+        vec = (struct osmo_auth_vector){{ {{0}} }};
+	VERBOSE_ASSERT(aud3g.u.umts.sqn, == 0, "%"PRIu64);
+        rc = auc_compute_vectors(&vec, 1, &aud2g, &aud3g, NULL, NULL);
+        VERBOSE_ASSERT(rc, == 1, "%d");
+
+        VEC_IS(&vec,
+               "  rand: {RAND}\n"
+               "  ck: {MIL3G-CK}\n"
+               "  ik: {MIL3G-IK}\n"
+               "  res: {MIL3G-RES}0000000000000000\n"
+               "  kc: {Kc}\n"
+               "  sres: {SRES#1}\n"
+              );
+
+	comment_end();
+}}
diff --git a/tests/auc/gen_ts_55_205_test_sets/main_template.c b/tests/auc/gen_ts_55_205_test_sets/main_template.c
new file mode 100644
index 0000000..c03b820
--- /dev/null
+++ b/tests/auc/gen_ts_55_205_test_sets/main_template.c
@@ -0,0 +1,115 @@
+/* gen_ts_55_205_test_sets/main_template.c: Template to generate test code
+ * from 3GPP TS 55.205 test sets */
+
+/* (C) 2016 by sysmocom s.f.m.c. GmbH <info@sysmocom.de>
+ *
+ * All Rights Reserved
+ *
+ * Author: Neels Hofmeyr <nhofmeyr@sysmocom.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <inttypes.h>
+
+#include <osmocom/core/application.h>
+#include <osmocom/core/utils.h>
+#include <osmocom/core/logging.h>
+
+#include <osmocom/crypt/auth.h>
+
+#include "logging.h"
+#include "auc.h"
+
+#define comment_start() fprintf(stderr, "\n===== %s\n", __func__);
+#define comment_end() fprintf(stderr, "===== %s: SUCCESS\n\n", __func__);
+
+#define VERBOSE_ASSERT(val, expect_op, fmt) \
+	do { \
+		fprintf(stderr, #val " == " fmt "\n", (val)); \
+		OSMO_ASSERT((val) expect_op); \
+	} while (0);
+
+char *vec_str(const struct osmo_auth_vector *vec)
+{
+	static char buf[1024];
+	char *pos = buf;
+	char *end = buf + sizeof(buf);
+
+#define append(what) \
+	if (pos >= end) \
+		return buf; \
+	pos += snprintf(pos, sizeof(buf) - (pos - buf), \
+                        "  " #what ": %s\n", \
+			osmo_hexdump_nospc((void*)&vec->what, sizeof(vec->what)))
+
+	append(rand);
+	append(ck);
+	append(ik);
+	append(res);
+	append(kc);
+	append(sres);
+#undef append
+
+	return buf;
+}
+
+#define VEC_IS(vec, expect) do { \
+		char *_is = vec_str(vec); \
+		fprintf(stderr, "auth vector ==\n%s\n", _is); \
+	        if (strcmp(_is, expect)) { \
+			fprintf(stderr, "MISMATCH! expected ==\n%s\n", \
+				expect); \
+			char *a = _is; \
+			char *b = expect; \
+			for (; *a && *b; a++, b++) { \
+				if (*a != *b) { \
+					while (a > _is && *(a-1) != '\n') a--; \
+					fprintf(stderr, "mismatch at %d:\n" \
+						"%s", (int)(a - _is), a); \
+					break; \
+				} \
+			} \
+			OSMO_ASSERT(false); \
+		} \
+	} while (0)
+
+uint8_t fake_rand[16] = { 0 };
+
+int rand_get(uint8_t *rand, unsigned int len)
+{
+	OSMO_ASSERT(len <= sizeof(fake_rand));
+	memcpy(rand, fake_rand, len);
+	return len;
+}
+
+FUNCTIONS
+
+int main()
+{
+	printf("3GPP TS 55.205 Test Sets\n");
+	osmo_init_logging(&hlr_log_info);
+	log_set_print_filename(osmo_stderr_target, 0);
+	log_set_print_timestamp(osmo_stderr_target, 0);
+	log_set_use_color(osmo_stderr_target, 0);
+	log_set_print_category(osmo_stderr_target, 1);
+
+FUNCTION_CALLS
+
+	printf("Done\n");
+	return 0;
+}
diff --git a/tests/auc/gen_ts_55_205_test_sets/pdftxt_2_c.py b/tests/auc/gen_ts_55_205_test_sets/pdftxt_2_c.py
new file mode 100755
index 0000000..0efa7ac
--- /dev/null
+++ b/tests/auc/gen_ts_55_205_test_sets/pdftxt_2_c.py
@@ -0,0 +1,99 @@
+#!/usr/bin/env python3
+ 
+# Convert test sets pasted from 3GPP TS 55.205 to C code.
+ 
+# (C) 2016 by sysmocom s.f.m.c. GmbH <info@sysmocom.de>
+#
+# All Rights Reserved
+#
+# Author: Neels Hofmeyr <nhofmeyr@sysmocom.de>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import sys, os
+
+script_dir = sys.path[0]
+
+fields = (
+  'Ki',
+  'RAND',
+  'OP',
+  'OPc',
+  'MIL3G-RES',
+  'SRES#1',
+  'SRES#2',
+  'MIL3G-CK',
+  'MIL3G-IK',
+  'Kc',
+)
+
+test_sets_lines = []
+test_set_lines = None
+
+for line in [l.strip() for l in open(os.path.join(script_dir, 'ts55_205_test_sets.txt'), 'r')]:
+  if line.startswith('Test Set'):
+    if test_set_lines:
+      test_sets_lines.append(test_set_lines)
+    test_set_lines = []
+  elif len(line) == 8:
+    try:
+      is_hex = int(line, 16)
+      test_set_lines.append(line)
+    except ValueError:
+      pass
+
+if test_set_lines:
+  test_sets_lines.append(test_set_lines)
+
+# Magic fixups for PDF-to-text uselessness
+idx = (( 0, 10, 15, 19),
+       ( 1, 11, 16, 20),
+       ( 2, 12, 17, 21),
+       ( 3, 13, 18, 22),
+       ( 4, 14),
+       ( 5, ),
+       ( 6, ),
+       ( 7, 23, 26, 28),
+       ( 8, 24, 27, 29),
+       ( 9, 25 ),
+      )
+
+test_sets = []
+for l in test_sets_lines:
+  test_sets.append( [ ''.join([l[i] for i in li]) for li in idx ] )
+
+func_templ = open(os.path.join(script_dir, 'func_template.c'), 'r').read()
+
+funcs = []
+func_calls = []
+nr = 0
+for test_set in test_sets:
+  nr += 1
+  func_name = 'test_set_%d' % nr
+  kwargs = dict(zip(fields, test_set))
+  kwargs['func_name'] = func_name
+
+  func_calls.append('\t%s();' % func_name)
+  funcs.append(func_templ.format(**kwargs))
+
+templ = open(os.path.join(script_dir, 'main_template.c')).read()
+
+code = templ.replace('FUNCTIONS', '\n'.join(funcs)).replace('FUNCTION_CALLS', '\n'.join(func_calls))
+
+print('''
+/***** DO NOT EDIT THIS FILE -- THIS CODE IS GENERATED *****
+ ***** by gen_ts_55_205_test_sets/pdftxt_2_c.py        *****/
+''')
+print(code)
+
diff --git a/tests/auc/gen_ts_55_205_test_sets/ts55_205_test_sets.txt b/tests/auc/gen_ts_55_205_test_sets/ts55_205_test_sets.txt
new file mode 100644
index 0000000..0d4d14b
--- /dev/null
+++ b/tests/auc/gen_ts_55_205_test_sets/ts55_205_test_sets.txt
@@ -0,0 +1,972 @@
+
+Test Set 1
+Ki
+RAND
+OP
+OPc
+MIL3G-RES
+SRES#1
+SRES#2
+MIL3G-CK
+MIL3G-IK
+Kc
+
+465b5ce8
+23553cbe
+cdc202d5
+cd63cb71
+a54211d5
+46f8416a
+a54211d5
+b40ba9a3
+f769bcd7
+eae4be82
+
+b199b49f
+9637a89d
+123e20f6
+954a9f4e
+e3ba50bf
+
+aa5f0a2e
+218ae64d
+2b6d676a
+48a5994e
+
+e238a6bc
+ae47bf35
+c72cb318
+37a02baf
+
+c58b2a05
+51044604
+3af9a08b
+
+bbf0d987
+12767271
+
+b21bf8cb
+1c6d3441
+
+Test Set 2
+Ki
+RAND
+OP
+OPc
+MIL3G-RES
+SRES#1
+SRES#2
+MIL3G-CK
+MIL3G-IK
+Kc
+
+fec86ba6
+9f7c8d02
+dbc59adc
+1006020f
+8011c48c
+8c308a5e
+8011c48c
+5dbdbb29
+59a92d3b
+aa01739b
+
+eb707ed0
+1accf4db
+b6f9a0ef
+0a478bf6
+0c214ed2
+
+8905757b
+213ccff0
+735477b7
+b699f15c
+
+1bb44b8f
+c7f71a6a
+fadf8374
+062e42b3
+
+54e8f3cd
+476a0443
+8caa976d
+
+e665b046
+487055cf
+
+179a5098
+88b2307b
+
+ETSI
+
+3GPP TS 55.205 version 6.2.0 Release 6
+
+10
+
+ETSI TS 155 205 V6.2.0 (2006-03)
+
+Test Set 3
+Ki
+RAND
+OP
+OPc
+MIL3G-RES
+SRES#1
+SRES#2
+MIL3G-CK
+MIL3G-IK
+Kc
+
+9e5944ae
+ce83dbc5
+223014c5
+a64a507a
+f365cd68
+cfbce3fe
+f365cd68
+e203edb3
+0c4524ad
+9a8ec95f
+
+a94b8116
+4ac0274a
+806694c0
+e1a2a98b
+3cd92e96
+
+5c82fbf9
+157c17f8
+07ca1eee
+b88eb421
+
+f32db751
+0d017bd6
+f57f004f
+0135dc87
+
+971574f5
+eac041c4
+408cc507
+
+a94b0d61
+dd830d20
+
+b816345d
+854fc46b
+
+Test Set 4
+Ki
+RAND
+OP
+OPc
+MIL3G-RES
+SRES#1
+SRES#2
+MIL3G-CK
+MIL3G-IK
+Kc
+
+4ab1deb0
+74b0cd60
+2d16c5cd
+dcf07cbd
+5860fc1b
+9655e265
+5860fc1b
+7657766b
+1c42e960
+cdc1dc08
+
+5ca6ceb0
+31a1c833
+1fdf6b22
+51855290
+ce351e7e
+
+51fc98e7
+9b2b6ce2
+383584e3
+b92a07a9
+
+7d026a84
+b8c4a186
+bef2a8d8
+891e523e
+
+373d1c21
+d89b8fa9
+41b81a22
+
+38f307e3
+9f2744e0
+
+de9242f9
+708ccb53
+
+Test Set 5
+Ki
+RAND
+OP
+OPc
+MIL3G-RES
+SRES#1
+SRES#2
+MIL3G-CK
+MIL3G-IK
+Kc
+
+6c38a116
+ee6466bc
+1ba00a1a
+3803ef53
+16c8233f
+13688f17
+16c8233f
+3f8c7587
+a7466cc1
+df75bc5e
+
+ac280c45
+96202c5a
+7c6700ac
+63b947c6
+05a0ac28
+
+4f59332e
+557abbef
+8c3ff3e9
+aaa225e5
+
+e35c8c4f
+f8babf63
+6ad08725
+8fae3934
+
+fe8e4b23
+e6b2a133
+a899879f
+
+3af676ae
+7d49d3b6
+
+de30ba3b
+6e95d7b4
+
+Test Set 6
+Ki
+RAND
+OP
+OPc
+MIL3G-RES
+SRES#1
+SRES#2
+MIL3G-CK
+MIL3G-IK
+Kc
+
+2d609d4d
+194aa756
+460a4838
+c35a0ab0
+8c25a16c
+553d00b3
+8c25a16c
+4cd08460
+88ab80a4
+84b417ae
+
+b0ac5bf0
+013896b7
+5427aa39
+bcbfc925
+d918a1df
+
+d2c0de26
+4b4a2a3b
+264aac8e
+2caff15f
+
+7014de0d
+0af4539e
+fc9e73e8
+24efbde0
+
+20f8fa07
+15f15c73
+3aeab4f3
+
+31dd47cb
+711254a1
+
+dc6be411
+d388f696
+
+ETSI
+
+3GPP TS 55.205 version 6.2.0 Release 6
+
+11
+
+ETSI TS 155 205 V6.2.0 (2006-03)
+
+Test Set 7
+Ki
+RAND
+OP
+OPc
+MIL3G-RES
+SRES#1
+SRES#2
+MIL3G-CK
+MIL3G-IK
+Kc
+
+a530a7fe
+3a4c2b32
+511c6c4e
+27953e49
+a63241e1
+59f1a44a
+a63241e1
+10f05bab
+f9ec0865
+3b4e244c
+
+428fad10
+45c50eb5
+83e38c89
+bc8af6dc
+ffc3e5ab
+
+82c45edd
+c71d0863
+b1c5d8dd
+c6e730eb
+
+fce13884
+9395764d
+e62426fa
+80286be3
+
+75a99a5f
+eb32f223
+dc60ce03
+
+bb98a9c2
+69cade40
+
+87679c3b
+c59c3a44
+
+Test Set 8
+Ki
+RAND
+OP
+OPc
+MIL3G-RES
+SRES#1
+SRES#2
+MIL3G-CK
+MIL3G-IK
+Kc
+
+d9151cf0
+f761e5e9
+75fc2233
+c4c93eff
+4a90b217
+50588861
+4a90b217
+71236b71
+90527eba
+8d4ec01d
+
+4896e258
+3d603feb
+a44294ee
+e8a08138
+1ac83a76
+
+30bf2e08
+730e2755
+8e6de25c
+c203d4c2
+
+267b8360
+6cb8a2ca
+4353d26b
+7ce4e3d9
+
+29f9b22a
+a5588968
+e597acfe
+
+b77ea7a5
+db417273
+
+4c96da22
+25a04d9e
+
+Test Set 9
+Ki
+RAND
+OP
+OPc
+MIL3G-RES
+SRES#1
+SRES#2
+MIL3G-CK
+MIL3G-IK
+Kc
+
+a0e2971b
+08eff828
+323792fa
+82a26f22
+4bc2212d
+cde6b027
+4bc2212d
+08cef6d0
+ed0318ca
+d8debc4f
+
+6822e8d3
+b13fdb56
+ca21fb4d
+bba9e948
+8624910a
+
+54a18cc2
+2722c65c
+5d6f13c1
+8f949a10
+
+35624ecb
+7f30a9b2
+45a9d2c1
+d98e9cc4
+
+04ec6147
+5deb9206
+fbcd60aa
+
+1a3c3cda
+272f6e8f
+
+048137fa
+a64ba411
+
+Test Set 10
+Ki
+RAND
+OP
+OPc
+MIL3G-RES
+SRES#1
+SRES#2
+MIL3G-CK
+MIL3G-IK
+Kc
+
+0da6f7ba
+679ac4db
+4b9a26fa
+0db1071f
+6fc30fee
+02d13acd
+6fc30fee
+69b1cae7
+74f24e8c
+f0eaa50a
+
+86d5eac8
+acd7d233
+459e3acb
+8767562c
+6d123523
+
+a19cf563
+ff9d6806
+ff36f401
+a43a0a64
+
+ac58642d
+f4149ce3
+5de3bdc1
+c41e8d08
+
+c7429d97
+26df58e1
+1edcebb7
+
+5e245cac
+b38d7dcd
+
+b05a517c
+4f1b7fbd
+
+ETSI
+
+3GPP TS 55.205 version 6.2.0 Release 6
+
+12
+
+ETSI TS 155 205 V6.2.0 (2006-03)
+
+Test Set 11
+Ki
+RAND
+OP
+OPc
+MIL3G-RES
+SRES#1
+SRES#2
+MIL3G-CK
+MIL3G-IK
+Kc
+
+77b45843
+4c47eb30
+bf3286c7
+d483afae
+aefa357b
+44389d01
+aefa357b
+908c43f0
+c251df0d
+82dbab7f
+
+c88e58c1
+76dc55fe
+a51409ce
+562409a3
+eac2a87a
+
+0d202684
+5106cb20
+95724d50
+26b5bb0b
+
+515ed430
+34b8cd78
+3bfe6e70
+20c4d762
+
+569cb8f7
+888dd932
+83f063da
+
+4bc971e7
+9bcf4665
+
+06c36c5f
+5b226e40
+
+Test Set 12
+Ki
+RAND
+OP
+OPc
+MIL3G-RES
+SRES#1
+SRES#2
+MIL3G-CK
+MIL3G-IK
+Kc
+
+729b1772
+311c4c92
+d04c9c35
+228c2f2f
+98dbbd09
+03e0fd84
+98dbbd09
+44c0f23c
+0c9fb816
+3c66cb98
+
+9270dd87
+9744d675
+bd2262fa
+06ac3268
+9b3b408d
+
+ccdf1bfe
+b720f3b7
+810d2924
+a9e616ee
+
+29b4e9bb
+e9b1cbd0
+d036fd13
+16db4ba1
+
+5493cfd2
+13884c25
+cab2d33d
+
+41e48f19
+35dd0eab
+
+7e1d1012
+f3b440d8
+
+Test Set 13
+Ki
+RAND
+OP
+OPc
+MIL3G-RES
+SRES#1
+SRES#2
+MIL3G-CK
+MIL3G-IK
+Kc
+
+d32dd23e
+cf7d0ab1
+fe75905b
+d22a4b41
+af4a411e
+be73b3dc
+af4a411e
+5af86b80
+7f4d6ae7
+9612b5d8
+
+89dc6623
+d9430695
+9da47d35
+80a53257
+1139f2c2
+
+54ca12eb
+0bf12018
+6236d031
+08a5ff70
+
+79dd32fa
+fbd46887
+4e09c32e
+d9f67ec7
+
+edb70df5
+440e1878
+8a4130bb
+
+292cc112
+9a8b75ad
+
+1cbad50c
+3f42f03a
+
+Test Set 14
+Ki
+RAND
+OP
+OPc
+MIL3G-RES
+SRES#1
+SRES#2
+MIL3G-CK
+MIL3G-IK
+Kc
+
+af7c65e1
+1f0f8578
+0c7acb8d
+a4cf5c81
+7bffa5c2
+8fe019c7
+7bffa5c2
+3f8c3f3c
+abcbae8f
+75a150df
+
+927221de
+464fd59b
+95b7d4a3
+55c08a7e
+f41fbc05
+
+591187a2
+64bed2d0
+1c5aca6d
+ff418e54
+
+c5987a53
+9436b57a
+26345a88
+43b98e55
+
+cf7625bf
+d46115e9
+3c6aed08
+
+77fc94bc
+961a55d0
+
+fd22fd26
+da5f2078
+
+ETSI
+
+3GPP TS 55.205 version 6.2.0 Release 6
+
+13
+
+ETSI TS 155 205 V6.2.0 (2006-03)
+
+Test Set 15
+Ki
+RAND
+OP
+OPc
+MIL3G-RES
+SRES#1
+SRES#2
+MIL3G-CK
+MIL3G-IK
+Kc
+
+5bd7ecd3
+59b75f14
+f967f760
+76089d3c
+7e3f44c7
+27202b82
+7e3f44c7
+d42b2d61
+0b3f8d02
+b7f92e42
+
+d3127a41
+251c7503
+38b920a9
+0ff3efdc
+591f6f45
+
+d12539be
+1d0bcbac
+cd25e10c
+6e36721d
+
+d4e7cf71
+1c2c04c7
+08b49924
+4fceb747
+
+5e49a03a
+4fe6bfaf
+6a36fec5
+
+c275a5ae
+aa982b8f
+
+f97af892
+82e319c2
+
+Test Set 16
+Ki
+RAND
+OP
+OPc
+MIL3G-RES
+SRES#1
+SRES#2
+MIL3G-CK
+MIL3G-IK
+Kc
+
+6cd1c6ce
+f69b78f3
+078bfca9
+a219dc37
+70f6bdb9
+ddd7efe6
+70f6bdb9
+6edaf99e
+d61c853c
+88d9de10
+
+b1e01e14
+00a0568b
+564659ec
+f1dc7d66
+ad21525f
+
+f1b82316
+ce9f0cb9
+d8851e84
+738b5843
+
+a90b7f3d
+3c4be4c9
+e6c59b48
+c799f206
+
+5bd9f85d
+280dd9c4
+a22004c5
+
+5f36d91c
+6f297bae
+
+1272fb4b
+c386de17
+
+Test Set 17
+Ki
+RAND
+OP
+OPc
+MIL3G-RES
+SRES#1
+SRES#2
+MIL3G-CK
+MIL3G-IK
+Kc
+
+b73a90cb
+b120f1c1
+b672047e
+df0c6786
+479dd25c
+67e4ff3f
+479dd25c
+66195dbe
+66bec707
+a819e577
+
+cf3afb62
+a0102a2f
+003bb952
+8fa25f74
+20792d63
+
+2dba83c5
+507dd543
+dca6cb8a
+8b7044c6
+
+8a8415df
+de68281f
+f0e5b779
+e7c245b8
+
+d0313274
+eb2afc47
+a8d6175b
+
+c5ca7766
+6d7408a8
+
+615fa25e
+f2927b36
+
+Test Set 18
+Ki
+RAND
+OP
+OPc
+MIL3G-RES
+SRES#1
+SRES#2
+MIL3G-CK
+MIL3G-IK
+Kc
+
+51222502
+81e92b6c
+c9e87632
+981d464c
+28d7b0f2
+8a3b8d17
+28d7b0f2
+5349fbe0
+9744871a
+9a8d0e88
+
+14c33e72
+0ee0e12e
+86b5b9ff
+7c52eb6e
+a2ec3de5
+
+3a5dd523
+bceba8d9
+bdf56e12
+50362349
+
+fc145fc0
+2a99dfa5
+97d0887b
+84ad0bcf
+
+98649f94
+d32bf9bb
+3ff0887a
+
+8f5d2e97
+d1dd5ce5
+
+3a81c00f
+4e3e2e5a
+
+ETSI
+
+3GPP TS 55.205 version 6.2.0 Release 6
+
+Test Set 19
+Ki
+RAND
+OP
+OPc
+MIL3G-RES
+SRES#1
+SRES#2
+MIL3G-CK
+MIL3G-IK
+Kc
+
+90dca4ed
+9fddc720
+3ffcfe5b
+cb9cccc4
+a95100e2
+df58522f
+a95100e2
+b5f2da03
+b4721368
+ed29b2f1
+
+14
+
+ETSI TS 155 205 V6.2.0 (2006-03)
+
+a45b53cf
+92c6ad03
+7b111158
+b9258e6d
+760952cd
+
+0f12d7c9
+6b6e4647
+9920d352
+ca476037
+
+c3bc6a89
+89315b78
+8e84e655
+9fb82581
+
+883b69f9
+bc16ea67
+c27f9f34
+
+6bf52e02
+875c5598
+
+9ed9ac45
+688bb0ef
+
diff --git a/tests/testsuite.at b/tests/testsuite.at
index b782074..dc1de33 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -7,3 +7,10 @@
 cat $abs_srcdir/auc/auc_3g_test.err > experr
 AT_CHECK([$abs_top_builddir/tests/auc/auc_3g_test], [], [expout], [experr])
 AT_CLEANUP
+
+AT_SETUP([auc_ts_55_205_test_sets])
+AT_KEYWORDS([auc_ts_55_205_test_sets])
+cat $abs_srcdir/auc/auc_ts_55_205_test_sets.ok > expout
+cat $abs_srcdir/auc/auc_ts_55_205_test_sets.err > experr
+AT_CHECK([$abs_top_builddir/tests/auc/auc_ts_55_205_test_sets], [], [expout], [experr])
+AT_CLEANUP
