$OpenBSD: patch-ext_mcrypt_mcrypt_c,v 1.1 2016/02/06 23:30:25 sthen Exp $

mcrypt IV creation. no /dev/{u,}random? yes, it is using the last hunk.

--- ext/mcrypt/mcrypt.c.orig.port	Mon Feb  1 23:04:02 2016
+++ ext/mcrypt/mcrypt.c	Mon Feb  1 23:42:21 2016
@@ -1436,6 +1436,11 @@ PHP_FUNCTION(mcrypt_create_iv)
 	}
 	
 	iv = ecalloc(size + 1, 1);
+
+#if defined(__OpenBSD__)
+		arc4random_buf(iv, (size_t) size);
+		n = size;
+#else
 	
 	if (source == RANDOM || source == URANDOM) {
 #if PHP_WIN32
@@ -1481,6 +1486,7 @@ PHP_FUNCTION(mcrypt_create_iv)
 			iv[--size] = (char) (255.0 * php_rand(TSRMLS_C) / RAND_MAX);
 		}
 	}
+#endif /* openbsd */
 	RETURN_STRINGL(iv, n, 0);
 }
 /* }}} */
