强制GPGME中的GPG使用CAST5以外的密码

时间:2016-01-21 11:45:13

标签: c++ encryption gnupg gpgme

我想使用GPGME加密数据(无文件)并将数据保存在数据库中。我了解到使用OpenPGP作为协议的GPGME将使用GPG和CAST5加密数据。 CAST5,这是我的命令行告诉我,如果我检查gpg2:

LANG=C gpg2 --verbose --symmetric
gpg: using cipher CAST5

我不知道为什么它不使用new AES-128 default value。但我想我没有最新版本(我的debian系统中也没有包管理器)。

我真的想通过在herehomepage of GPG上提到的gpg.conf文件中设置相应的值,将GPG配置为使用AES进行加密。因此,我尝试使用gpgme_get_engine_info并查看home_dir来获取有关文件位置的信息,但此路径似乎为空。 file_nameusr/bin/gpg2。但是,没有gpg.conf。严格来说,我的系统中根本没有gpg.conf。 那么如果缺少这个文件我该怎么办?或者有没有办法用GPGME以编程方式设置值?我才发现

gpgme_ctx_set_engine_info (gpgme_ctx_t ctx, gpgme_protocol_t proto, const char *file_name, const char *home_dir)

所以我可以创建一个新配置并使用此功能设置路径。但这会假设我知道这个文件是怎么样的。可悲的是,我没有。

1 个答案:

答案 0 :(得分:1)

我找到了一个pgp.conf文件的good example,它显示了如何设置密码和散列函数的首选值。这是一段摘录:

# list of personal digest preferences. When multiple digests are supported by
# all recipients, choose the strongest one
personal-cipher-preferences AES256 AES192 AES CAST5

# list of personal digest preferences. When multiple ciphers are supported by
# all recipients, choose the strongest one
personal-digest-preferences SHA512 SHA384 SHA256 SHA224

# message digest algorithm used when signing a key
cert-digest-algo SHA512

# This preference list is used for new keys and becomes the default for
# "setpref" in the edit menu
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed