gpt4 book ai didi

java - Java 实现中的 BouncyCaSTLe PGP 文本模式不会转换为 CR/LF

转载 作者:行者123 更新时间:2023-12-01 09:21:22 25 4
gpt4 key购买 nike

有没有办法在 BouncyCaSTLe PGP 加密 Java 实现中指定文本模式?

我尝试了这个,但没有成功(使用 UNIX 行结尾加密并在 Windows 中解密):

PGPLiteralDataGenerator pgpldg = new PGPLiteralDataGenerator(false);
OutputStream ldout = pgpldg.open(compout, PGPLiteralData.TEXT, name, data.length, PGPLiteralData.NOW);

最佳答案

RFC 4880, OpenPGP, 5.9. Literal Data Packet (Tag 11)定义在文本模式下,数据应使用 <CR><LF> 进行编码行结尾:

Text data is stored with text endings (i.e., network-normal line endings). These should be converted to native lineendings by the receiving software.

GnuPG 正在这样做(--compress-algo 0 禁用压缩,--store 只是将输入包装在文字数据包中):

$ echo -e "foo\nbar" | gpg2 --textmode --compress-algo 0 --store | hexdump -c
0000000 � 020 t \0 X \b � u f o o \r \n b a r
0000010 \r \n
0000012

通读BouncyCastle's source code for PGPLiteralDataGenerator 和其他调用的类,我找不到 BouncyCaSTLe 正在执行此(必需)转换的任何痕迹。我所能找到的就是他们将编码写入 header ( tub )。这是 BouncyCaSTLe 的错误。如果您报告它,他们可能会修复它,否则(或在那之前),您必须自己添加回车符。

关于java - Java 实现中的 BouncyCaSTLe PGP 文本模式不会转换为 CR/LF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40144840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com