diff --git a/mme/snow-3g.h b/mme/snow-3g.h
new file mode 100644
index 0000000..a5320bb
--- /dev/null
+++ b/mme/snow-3g.h
@@ -0,0 +1,68 @@
+#ifndef __SNOW_3G__
+#define __SNOW_3G__
+
+#include "ogs-core.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+typedef uint8_t u8;
+typedef uint32_t u32;
+typedef uint64_t u64;
+
+/* Initialization.
+* Input k[4]: Four 32-bit words making up 128-bit key.
+* Input IV[4]: Four 32-bit words making 128-bit initialization variable.
+* Output: All the LFSRs and FSM are initialized for key generation.
+* See Section 4.1.
+*/
+
+void snow_3g_initialize(u32 k[4], u32 IV[4]);
+
+/* Generation of Keystream.
+* input n: number of 32-bit words of keystream.
+* input z: space for the generated keystream, assumes
+* memory is allocated already.
+* output: generated keystream which is filled in z
+* See section 4.2.
+*/
+
+void snow_3g_generate_key_stream(u32 n, u32 *z);
+
+/* f8.
+* Input key: 128 bit Confidentiality Key.
+* Input count:32-bit Count, Frame dependent input.
+* Input bearer: 5-bit Bearer identity (in the LSB side).
+* Input dir:1 bit, direction of transmission.
+* Input data: length number of bits, input bit stream.
+* Input length: 32 bit Length, i.e., the number of bits to be encrypted or
+* decrypted.
+* Output data: Output bit stream. Assumes data is suitably memory
+* allocated.
+* Encrypts/decrypts blocks of data between 1 and 2^32 bits in length as
+* defined in Section 3.
+*/
+
+void snow_3g_f8( u8 *key, u32 count, u32 bearer, u32 dir,
+                  u8 *data, u32 length );
+
+/* f9.
+* Input key: 128 bit Integrity Key.
+* Input count:32-bit Count, Frame dependent input.
+* Input fresh: 32-bit Random number.
+* Input dir:1 bit, direction of transmission (in the LSB).
+* Input data: length number of bits, input bit stream.
+* Input length: 64 bit Length, i.e., the number of bits to be MAC'd.
+* Output : 32 bit block used as MAC
+* Generates 32-bit MAC using UIA2 algorithm as defined in Section 4.
+*/
+
+void snow_3g_f9( u8* key, u32 count, u32 fresh, u32 dir,
+                 u8 *data, u64 length, u8 *out);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __SNOW_3G__ */
