<PackageReference Include="BouncyCastle.Cryptography" Version="2.6.2" />

UserIdPacket

using Org.BouncyCastle.Utilities; using System.Text; namespace Org.BouncyCastle.Bcpg { public class UserIdPacket : ContainedPacket, IUserDataPacket { private readonly byte[] idData; public UserIdPacket(BcpgInputStream bcpgIn) { idData = bcpgIn.ReadAll(); } public UserIdPacket(string id) { idData = Encoding.UTF8.GetBytes(id); } public UserIdPacket(byte[] rawId) { idData = Arrays.Clone(rawId); } public string GetId() { return Encoding.UTF8.GetString(idData, 0, idData.Length); } public byte[] GetRawId() { return Arrays.Clone(idData); } public override bool Equals(object obj) { UserIdPacket userIdPacket = obj as UserIdPacket; if (userIdPacket == null) return false; return Arrays.AreEqual(idData, userIdPacket.idData); } public override int GetHashCode() { return Arrays.GetHashCode(idData); } public override void Encode(BcpgOutputStream bcpgOut) { bcpgOut.WritePacket(PacketTag.UserId, idData); } } }