diff --git a/src/bindings/swig/hammer.i b/src/bindings/swig/hammer.i
index 4dc966868011f693d504b0208448a151af641ca7..6c0d900e3f839a20362bdb579646fef1d7226073 100644
--- a/src/bindings/swig/hammer.i
+++ b/src/bindings/swig/hammer.i
@@ -136,11 +136,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*[] {