标签: pgp

从VBA(MS Access)解密PGP加密文件的最简单方法

我需要编写从FTP位置获取PGP加密文件并处理它们的代码.这些文件将使用我的公钥加密(不是我还有一个).显然,我需要一个可以在Microsoft Access中使用的PGP库.你能推荐一款易于使用的产品吗?

我正在寻找一些不需要大量PKI知识的东西.理想情况下,可以轻松生成一次性私钥/公钥对,然后有一个简单的解密例程.

security encryption ms-access pgp

3
推荐指数
1
解决办法
1万
查看次数

修改控制PGP加密文本文件的好方法是什么?

什么是修订控制PGP加密文本文件的好方法?

目标是

  • 仅在本地存储库(工作副本)和远程存储库(逻辑上为"中央"存储库)中存储PGP加密(最好使用ASCII装甲)文本文件.

  • 通过PGP加密(例如,通过使用GnuPG)在存储修订历史的存储库中保护隐私

  • 尽可能减少存储开销

如果只是一个版本控制PGP加密和ASCII装甲文本文件,因为它的整个内容将在每次解密进行编辑时更改,然后在存储并提交到版本控制存储库之前进行加密,差异将大致与文件成比例大小,即使解密文本的变化很小,也会快速增长.

security version-control cryptography gnupg pgp

3
推荐指数
1
解决办法
286
查看次数

如何使用Bouncy Castle库在C#中使用PGP密钥对txt文件签名

有没有人举过一个例子,说明如何使用C#和Bouncy Castle库中的PGP密钥对txt文件进行签名。不加密文件,仅添加签名。

c# bouncycastle sign pgp

3
推荐指数
1
解决办法
4521
查看次数

使用BouncyCastle PGP解密文件的例外情况

我试图使用一个名为PgpDecrypt的类来解密客户端给出的这个示例文件.但是当代码出现在这一行时:

Stream clear = pbe.GetDataStream(privKey);
Run Code Online (Sandbox Code Playgroud)

它返回一个错误: 异常解密密钥

这是我的解密代码:

PgpDecrypt test = new PgpDecrypt(string.Concat(pathh, "TestDecryptionFile"),
                                             string.Concat(pathh, "mypgpprivatekey.key"),
                                             "mypassphrase",
                                             @"d:/test/",
                                             string.Concat(pathh, "clientpublickey.key"));

FileStream fs = File.Open(string.Concat(pathh, "TestDecryptionFile"), FileMode.Open);
test.Decrypt(fs, @"d:\test\");
Run Code Online (Sandbox Code Playgroud)

我使用BouncyCastle作为.NET的第三方库.

任何解决这个问题的想法都会有很大的帮助.提前致谢!

c# encryption bouncycastle pgp console-application

3
推荐指数
1
解决办法
2652
查看次数

BouncyCastle C# PublicKey 与 GnuPG 不同

我正在尝试从 GnuPG 使用 BouncyCastle C# 库创建的密钥环获取公共 PGP 密钥。我已经使用以下代码使其半工作。问题是它输出的公钥长度大约是真实公钥的一半,而且最后几个字节也不同。我只是想得到真正的钥匙。

更新:值得注意的是,我生成的密钥环只有一个公钥,但我从 bouncycastle 中得到了两个。我还发现,如果将第二个密钥插入到从末尾开始的前几个字符中,它会生成几乎原始的密钥。只有末尾的几个字符不同。那么为什么有两个钥匙,为什么会发生这种情况呢?我缺少什么?

GnuPG 密钥环不兼容吗?

另请注意,此处显示的代码仅获取最后一个密钥。我现在将每个添加到列表中。

这是我的代码:

public static string ReadKey(string pubkeyFile)
{
    string theKey;
    Stream fs = File.OpenRead(pubkeyFile);

    //
    // Read the public key rings
    //
    PgpPublicKeyRingBundle pubRings = new PgpPublicKeyRingBundle(PgpUtilities.GetDecoderStream(fs));
    fs.Close();

    foreach (PgpPublicKeyRing pgpPub in pubRings.GetKeyRings())
    {
        pgpPub.GetPublicKey();

        foreach (PgpPublicKey pgpKey in pgpPub.GetPublicKeys())
        {
            //AsymmetricKeyParameter pubKey = pgpKey.GetKey();
            //SubjectPublicKeyInfo k = SubjectPublicKeyInfoFactory.CreateSubjectPublicKeyInfo(pubKey);
            //byte[] keyData = k.ToAsn1Object().GetDerEncoded();
            //byte[] keyData = k.GetEncoded();
            byte[] keyData = pgpKey.GetEncoded();
            theKey = Convert.ToBase64String(keyData);
        }
    } …
Run Code Online (Sandbox Code Playgroud)

c# encryption bouncycastle pgp openpgp

3
推荐指数
1
解决办法
3670
查看次数

通过 Bouncy Castle 提取 GPG 密钥使用标志

看来,虽然PGPPublicKey该类提供了一种isEncryptionKey()方法来确定公钥的算法是否可以用于加密目的(RSA_GENERAL, RSA_ENCRYPT, ELGAMAL_GENERAL, ELGAMAL_ENCRYPT),但仅凭这一点还不足以选择有效的加密子密钥。

有关于存储在数据包中的公钥的预期用途的信息,如 GnuPG packet.h 中所示:

 41 /* Usage flags */
 42 #define PUBKEY_USAGE_SIG     GCRY_PK_USAGE_SIGN  /* Good for signatures. */
 43 #define PUBKEY_USAGE_ENC     GCRY_PK_USAGE_ENCR  /* Good for encryption. */
 44 #define PUBKEY_USAGE_CERT    GCRY_PK_USAGE_CERT  /* Also good to certify keys.*/
 45 #define PUBKEY_USAGE_AUTH    GCRY_PK_USAGE_AUTH  /* Good for authentication. */
 46 #define PUBKEY_USAGE_UNKNOWN GCRY_PK_USAGE_UNKN  /* Unknown usage flag. */
 47 #define PUBKEY_USAGE_NONE    256                 /* No usage given. */
Run Code Online (Sandbox Code Playgroud)

我的问题是,鉴于 Bouncy Castle …

java bouncycastle gnupg pgp

3
推荐指数
1
解决办法
787
查看次数

一个文件的几个pgp签名

file.txt登录GnuPG的基本选项是file.txt.asc签名.

在我们的工作流程中,我需要几个签名file.txt- 主要的例子是作者签名和验证者签名.

GnuPG的最佳用例是什么?我可以将这两个签名存储在一个asc文件中吗?或者我需要处理两个文件file.txt.authorname.ascfile.txt.checkername.asc?或者是其他东西?

gnupg pgp

3
推荐指数
1
解决办法
1677
查看次数

Pgp 签名+加密然后解密+验证

在使用符号加密然后解密和验证时,我在验证时不断在流中获取未知对象。消息完整性检查已通过,但是当我尝试在解密后的下一行进行验证时,出现上述错误。

    private static void encryptFile(
    String outFileName,
    OutputStream out,
    String fileName,
    PGPPublicKey encKey,
    String sKeyFileName,
    char[] passPhrase,
    boolean armor,
    boolean withIntegrityCheck)
    throws Exception
{
    if (armor)
    {
        out = new ArmoredOutputStream(out);
    }

    try
    {


        byte[] bytes = PGPKeyUtil.compressFile(fileName, CompressionAlgorithmTags.ZIP);


        PGPEncryptedDataGenerator encGen = new PGPEncryptedDataGenerator(
            PGPEncryptedData.CAST5, withIntegrityCheck, new SecureRandom(), "BC");
        encGen.addMethod(encKey);

        OutputStream cOut = encGen.open(out, bytes.length);

        cOut.write(bytes);
        cOut.close();
        out.close();

        cOut.close();


        if (armor)
        {
            out.close();
        }

        encGen.close();

    }
    catch (PGPException e)
    {
        System.err.println(e);
        if (e.getUnderlyingException() != null)
        {
            e.getUnderlyingException().printStackTrace();
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

java encryption bouncycastle sign pgp

3
推荐指数
1
解决办法
6649
查看次数

在 git 中签署提交使用错误的子键

我的主 PGP 密钥上有多个签名子密钥,因此我的笔记本电脑有一个,台式机有一个。但是,似乎两台计算机都尝试使用我的笔记本电脑的密钥,该密钥是最近创建的,而不是我的台式机的密钥。我在笔记本电脑和台式机上都将 user.signingkey 设置为各自的子键,但 git 仍然为我的笔记本电脑使用那个。

git signing gnupg pgp

3
推荐指数
2
解决办法
2004
查看次数

.gpg、.sig. 和 .asc 之间有什么有意义的区别?

我知道.asc签名作为文本文件输出,而.sig&.gpg是二进制文件。

一边说:

  1. .sig.gpg不同的扩展名相同的文件?如果没有,为什么要使用一个?
  2. 文本文件和二进制文件,有什么相对优势?安全性、效率、兼容性等。

gnupg pgp openpgp gpg-signature

3
推荐指数
1
解决办法
3885
查看次数