diff --git a/.gitignore b/.gitignore
index 17c4737..2e78dfa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
 *.o
 *.db
+*.pyc
 .*.sw?
 .version
 Makefile
@@ -25,3 +26,5 @@
 
 tests/testsuite
 tests/auc/auc_3g_test
+tests/auc/auc_ts_55_205_test_sets.c
+tests/auc/auc_ts_55_205_test_sets
diff --git a/configure.ac b/configure.ac
index fbc1326..bfda9c5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -48,4 +48,5 @@
 	sql/Makefile
 	tests/Makefile
 	tests/auc/Makefile
+	tests/auc/gen_ts_55_205_test_sets/Makefile
 	)
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
