Кто знаком с сообщением pgp. Я пытался подписать этот код, но получил неправильный результат. Я могу дать вам дополнительную информацию, если это необходимо.
using Org.BouncyCastle.Bcpg;
using Org.BouncyCastle.Bcpg.OpenPgp;
public static string Sign(string data, PgpSecretKey pgpSecretKey, char[] pass)
{
bool isCertain = true;
var input = Encoding.ASCII.GetBytes(data);
MemoryStream memoryStream = new MemoryStream(input);
ArmoredInputStream aIn = new ArmoredInputStream(memoryStream);
MemoryStream sout = new MemoryStream();
PgpPrivateKey pgpPrivateKey = pgpSecretKey.ExtractPrivateKey(pass);
PgpSignatureGenerator sGen = new
PgpSignatureGenerator(pgpPrivateKey.PublicKeyPacket.Algorithm, HashAlgorithmTag.Sha1);
PgpSignatureSubpacketGenerator spGen = new PgpSignatureSubpacketGenerator();
sGen.InitSign(PgpSignature.CanonicalTextDocument, pgpPrivateKey);
byte[] line = LineSeparator;
spGen.Generate();
ArmoredOutputStream aOut = new ArmoredOutputStream(sout);
aOut.BeginClearText(HashAlgorithmTag.Sha1);
MemoryStream lineOut = new MemoryStream();
int lookAhead = ReadInputLine(lineOut, aIn);
ProcessLine(aOut, sGen, lineOut.ToArray());
if (lookAhead != -1)
{
do
{
lookAhead = ReadInputLine(lineOut, lookAhead, aIn);
sGen.Update((byte)'\r');
sGen.Update((byte)'\n');
ProcessLine(aOut, sGen, lineOut.ToArray());
} while (lookAhead != -1);
}
aOut.EndClearText();
BcpgOutputStream bOut = new BcpgOutputStream(aOut);
sGen.Generate().Encode(bOut);
aOut.Close();
byte[] asap = sout.ToArray();
string converted = Encoding.ASCII.GetString(asap, 0, asap.Length);
return converted;
}
Подписанное сообщение выглядит следующим образом
-----BEGIN PGP SIGNED MESSAGE-----\r\nHash: SHA1\r\n\r\n�\u0002\u000e\u0003��?>����\u0010\a�5�Z2>:\u0014h�̌\u0011M$Ua\b\u0018*����X��һ\u0013\n�\u001a�~s� |�m��Z����\f\n\u0011�4\a�\u0015۶��r�\u001c�1\b\f�yǟ\u000ex���(��\u007f�^\0�z�}��,\f,�s��v\tR����*��,s�ѱ��2^Lh\u0012�x\u001aw�,�a_a���y&3=������j����4l5@�=��V����ۻS���˷\u001bo\u0003�xs\u0004����(��c�]7�s_�M�\u0003��4W&��u\u001a��2<W\0�؛�\u001d�\u0006dS�R�\u000f���-\u001d�@��\u0019K'��V\u0012t�~�]��>XH�^�l\b\0�zK��'��Z\n_�iS���U�o�S�L���2�u#�}\u0012�E��#WR4��(eD�\\���F��Hr��GX\u001a��K��\u0019vjU�Ȋ��m\b�����{rXr��*��n��j�l��%��\u0015X�J��\r\v�7R\u0012[�(�B����q�?)HrQ����\u0018�\0��C��\u0014��ځ\u007f��n/�b�/��\u0018���1a�g[\u0014Ѝ*u/�\"�\u0003z8w��Sa��\u0005\vG���~ħl���F� \u0001��&�D�ތ��_�Y�0 b\r�?#\u0017\u001b\u0019;��&\n�@E�Q���h�\u001e\u0003\u0002��9҈\u0001E�U&��̚�\rwp���V �\u0004\u001c�C��U\u0004�n�\aX��\tڂ��Q�K\u001a\u0015���\v�B\u0006Pƅ��\"3'�GF��]�D��7�E��gېzHF����TԐb�8�<\u0005\u000f�nW|��_���?t�ˎt�\u0004��0h݁}\0�\u001d\u001e���\u0015r�O\f�-----BEGIN PGP SIGNATURE-----\r\nVersion: BCPG C# v1.8.5.0\r\n\r\niEYEARECAAYFAl5OftYACgkQflHkxBbbB4WI4gCffVMNrdwTl2G/OiDA5jd1Fjqc\r\nkmoAnis0W579VZ+fI28eGpM7OrKW"