already added in svn upstream
--- cryptsetup-1.0.7.orig/lib/setup.c	2009-07-22 13:12:44.000000000 +0200
+++ cryptsetup-1.0.7/lib/setup.c	2009-08-22 15:10:32.000000000 +0200
@@ -542,7 +542,12 @@ static int __crypt_luks_open(int arg, st
 start:
 	mk=NULL;
 
-	if(get_key(prompt, &password, &passwordLen, 0, options->key_file, options->passphrase_fd, options->timeout, options->flags))
+	if(options->passphrase) {
+		passwordLen = strlen(options->passphrase);
+		password = safe_alloc(passwordLen + 1);
+		strncpy(password, options->passphrase, passwordLen + 1);
+		tries = 0;
+	} else if(get_key(prompt, &password, &passwordLen, 0, options->key_file, options->passphrase_fd, options->timeout, options->flags))
 		tries--;
 	else
 		tries = 0;
