diff --git a/src/bindings/swig/hammer.i b/src/bindings/swig/hammer.i
index 07ae79cc9b6b54bb1c3d98bb8581344367d1f00e..4f209a839be2f5a718aed84151f4ebb5ff468a62 100644
--- a/src/bindings/swig/hammer.i
+++ b/src/bindings/swig/hammer.i
@@ -5,11 +5,12 @@
 
 #if defined(SWIGPHP)
 %ignore HCountedArray_;
-%typemap(in) uint8_t* {
-
+%typemap(in) (uint8_t* input, size_t len) {
+  $1 = (uint8_t*)$input->value.str.val;
+  $2 = $input->value.str.len;
  }
-%typemap(out) uint8_t* {
-
+%typemap(out) (uint8_t* input, size_t len) {
+  RETVAL_STRINGL((char*)$1, $2, 1);
  }
 %typemap(in) void*[] {