用于测试正确的证书数据库密码的脚本

时间:2009-12-15 13:48:49

标签: bash ssl certificate passwords

我正在尝试编写一个bash例程来测试用户的输入是否是我的证书数据库的正确密码。

最初我想象我首先在需要密码的证书数据库上执行良性certutil或pk12util操作。然后测试返回代码以查看它是否成功。

但是,certutil的密码参数需要一个密码文件(这是不可取的)。我可以使用pk12util导出一个certifcate和私钥进行测试(不太满意周围的额外pk12文件)。

有关其他方法测试数据库密码的建议吗?

PR

2 个答案:

答案 0 :(得分:1)

使用certutil的密码文件和mktemp(1)。这将生成一个临时文件,该文件只能由当前用户(可能是已知密码的人)读取。

还要在脚本中添加trap "rm $tmpfile" EXIT,以确保在脚本因任何原因退出时删除密码。

如果仍然不够安全,则必须编写一个在证书DB上运行的小型C程序。

答案 1 :(得分:0)

尝试使用Process Substitution。实施例

read -s -p "Enter Password: " pass
if certutil -f <(echo "$pass"); then
    # Password correct, do stuff here
else
    # Password incorrect, do stuff here
fi