diff --git a/src/Makefile b/src/Makefile
index 18ec5bb..8ce4186 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -5,7 +5,7 @@
 
 all: hnbgw
 
-hnbgw: hnbgw.o hnbgw_hnbap.o hnbap.o
+hnbgw: hnbgw.o hnbgw_hnbap.o hnbap.o asn1helpers.o
 	$(CC) $(LDFLAGS) -o $@ $^
 
 %.o: %.c
diff --git a/src/asn1helpers.c b/src/asn1helpers.c
new file mode 100644
index 0000000..fe886e3
--- /dev/null
+++ b/src/asn1helpers.c
@@ -0,0 +1,19 @@
+
+#include <string.h>
+
+#include <asn1defs.h>
+
+#include "asn1helpers.h"
+
+int asn1_strncpy(char *out, const ASN1String *in, size_t n)
+{
+	size_t cpylen = n;
+
+	if (in->len < cpylen)
+		cpylen = in->len;
+
+	strncpy(out, (char *)in->buf, cpylen);
+	out[n-1] = '\0';
+
+	return cpylen;
+}
diff --git a/src/asn1helpers.h b/src/asn1helpers.h
new file mode 100644
index 0000000..3861d13
--- /dev/null
+++ b/src/asn1helpers.h
@@ -0,0 +1,29 @@
+#pragma once
+
+#include <asn1defs.h>
+
+static inline uint16_t asn1str_to_u16(ASN1String *as)
+{
+	if (as->len < 2)
+		return 0;
+	else
+		return *(uint16_t *)as->buf;
+}
+
+static inline uint8_t asn1str_to_u8(ASN1String *as)
+{
+	if (as->len < 1)
+		return 0;
+	else
+		return *(uint8_t *)as->buf;
+}
+
+static inline uint8_t asn1bitstr_to_u32(ASN1BitString *as)
+{
+	if (as->len < 25)
+		return 0;
+	else
+		return *(uint32_t *)as->buf;
+}
+
+int asn1_strncpy(char *out, const ASN1String *in, size_t n);
diff --git a/src/hnbgw_hnbap.c b/src/hnbgw_hnbap.c
index fd3a328..8d9e1c8 100644
--- a/src/hnbgw_hnbap.c
+++ b/src/hnbgw_hnbap.c
@@ -4,6 +4,8 @@
 #include <unistd.h>
 #include <string.h>
 
+#include "asn1helpers.h"
+
 #include "hnbap.h"
 #include "hnbgw.h"
 #include "hnbap_const.h"
@@ -43,30 +45,6 @@
 	return NULL;
 }
 
-static inline uint16_t asn1str_to_u16(ASN1String *as)
-{
-	if (as->len < 2)
-		return 0;
-	else
-		return *(uint16_t *)as->buf;
-}
-
-static inline uint8_t asn1str_to_u8(ASN1String *as)
-{
-	if (as->len < 1)
-		return 0;
-	else
-		return *(uint8_t *)as->buf;
-}
-
-static inline uint8_t asn1bitstr_to_u32(ASN1BitString *as)
-{
-	if (as->len < 25)
-		return 0;
-	else
-		return *(uint32_t *)as->buf;
-}
-
 static int hnbgw_rx_hnb_register_req(struct hnb_context *ctx, struct HNBRegisterRequest *req)
 {
 	HNB_Identity *identity =
@@ -86,7 +64,7 @@
 		return -1;
 
 	/* copy all identity parameters from the message to ctx */
-	strncpy(ctx->identity_info, (const char *) identity->hNB_Identity_Info.buf,
+	asn1_strncpy(ctx->identity_info, &identity->hNB_Identity_Info,
 		sizeof(ctx->identity_info));
 	ctx->id.lac = asn1str_to_u16(lac);
 	ctx->id.sac = asn1str_to_u16(sac);
