我正在尝试以完全交互的方式在命令行上创建一个新的 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