如何在命令行上创建 veracrypt 卷(非交互方式)以及存储在 PKCS#11 令牌上的密钥文件

如何在命令行上创建 veracrypt 卷(非交互方式)以及存储在 PKCS#11 令牌上的密钥文件

我正在尝试以完全交互的方式在命令行上创建一个新的 veracrypt 容器。为了让事情变得更复杂,我需要将密钥文件存储在 PKCS#11 令牌上。

据我所知,在创建卷之前,我首先需要将密钥文件导入令牌。我尝试过命令

veracrypt --text --import-token-keyfiles --token-lib=/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so  --new-keyfiles=/tmp/keyfile.dat

veracrypt --text --import-token-keyfiles --token-lib=/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so  --keyfiles=/tmp/keyfile.dat

但两个命令都以交互方式请求密钥文件

Enter keyfile [none]:

答案1

看过之后源代码Veracrypt,但很遗憾,我所尝试实现的目标似乎无法实现。

void TextUserInterface::ImportSecurityTokenKeyfiles () const
    {
[...]
        shared_ptr <KeyfileList> keyfiles = AskKeyfiles();
[...]

相关功能只是以交互方式请求密钥文件,而无需注意命令行开关。

作为一个丑陋的解决方法,我发现这个命令有效:

echo "/tmp/keyfile.dat\n"|veracrypt --text --import-token-keyfiles --token-lib=/usr/lib/mypkcs11lib.so --token-pin=123456

相关内容