diff --git a/library/Osmocom_Types.ttcn b/library/Osmocom_Types.ttcn
index 16395df..e55f1d6 100644
--- a/library/Osmocom_Types.ttcn
+++ b/library/Osmocom_Types.ttcn
@@ -74,6 +74,12 @@
 		return ret;
 	}
 
+	/* return bitstring composed of random bits */
+	function f_rnd_bitstring(in integer len) return bitstring {
+		var octetstring oct := f_rnd_octstring(len / 8 + 1);
+		return substr(oct2bit(oct), 0, len);
+	}
+
 	function f_rnd_imsi(in hexstring prefix) return hexstring {
 		return prefix & f_rnd_hexstring(15 - lengthof(prefix), 9);
 	}
@@ -175,6 +181,14 @@
 	return str;
 }
 
+function f_pad_bit(bitstring str, integer len, BIT1 pad) return bitstring {
+	var integer strlen := lengthof(str);
+	for (var integer i := 0; i < len-strlen; i := i+1) {
+		str := str & pad;
+	}
+	return str;
+}
+
 function f_pad_bcd_number(hexstring number) return hexstring {
 	if (lengthof(number) mod 2 != 0) {
 		return number & 'F'H;
