繁体   English   中英

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

[英]BouncyCastle PGP textmode in Java implementation does not convert to CR/LF

有什么方法可以在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。 文字数据包(标签11)定义了在文本模式下,数据应使用<CR><LF>行尾进行编码:

文本数据与文本结尾(即,网络普通行结尾)一起存储。 这些应由接收软件转换为本地行尾。

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的PGPLiteralDataGenerator和其他称为类的源代码 ,我找不到BouncyCastle在执行此(必需)转换的单个跟踪。 我所能找到的就是他们将编码写入标头( tub )。 这是一个BouncyCastle错误。 如果您报告它,他们可能会解决它,否则(或直到那时),您必须自己添加回车符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM