@@ -509,6 +509,10 @@ static int action_open_bitlk(void)
509509 r = crypt_activate_by_volume_key (cd , activated_name ,
510510 key , keysize , activate_flags );
511511 } else {
512+ r = crypt_activate_by_passphrase (cd , activated_name , CRYPT_ANY_SLOT , NULL , 0 , activate_flags );
513+ if (r != - EPERM )
514+ goto out ;
515+
512516 tries = set_tries_tty (false);
513517 do {
514518 r = tools_get_key (NULL , & password , & passwordLen ,
@@ -617,14 +621,19 @@ static int bitlkDump_with_volume_key(struct crypt_device *cd)
617621 if (!vk )
618622 return - ENOMEM ;
619623
620- r = tools_get_key (NULL , & password , & passwordLen ,
621- ARG_UINT64 (OPT_KEYFILE_OFFSET_ID ), ARG_UINT32 (OPT_KEYFILE_SIZE_ID ), ARG_STR (OPT_KEY_FILE_ID ),
622- ARG_UINT32 (OPT_TIMEOUT_ID ), 0 , 0 , cd );
623- if (r < 0 )
624- goto out ;
625-
626624 r = crypt_volume_key_get (cd , CRYPT_ANY_SLOT , vk , & vk_size ,
627- password , passwordLen );
625+ password , passwordLen );
626+ if (r < 0 ) {
627+ r = tools_get_key (NULL , & password , & passwordLen ,
628+ ARG_UINT64 (OPT_KEYFILE_OFFSET_ID ), ARG_UINT32 (OPT_KEYFILE_SIZE_ID ), ARG_STR (OPT_KEY_FILE_ID ),
629+ ARG_UINT32 (OPT_TIMEOUT_ID ), 0 , 0 , cd );
630+ if (r < 0 )
631+ goto out ;
632+
633+ r = crypt_volume_key_get (cd , CRYPT_ANY_SLOT , vk , & vk_size ,
634+ password , passwordLen );
635+ }
636+
628637 tools_passphrase_msg (r );
629638 check_signal (& r );
630639 if (r < 0 )
0 commit comments