summary refs log tree commit diff
path: root/crypto/src/bcpg/sig/SignerUserId.cs
blob: 6f812e210e1f4a632af8ada3d8a57b0ce19d5a6b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
namespace Org.BouncyCastle.Bcpg.Sig
{
    /**
    * packet giving the User ID of the signer.
    */
    public class SignerUserId
        : SignatureSubpacket
    {
        private static byte[] UserIdToBytes(
            string id)
        {
            byte[] idData = new byte[id.Length];

            for (int i = 0; i != id.Length; i++)
            {
                idData[i] = (byte)id[i];
            }

			return idData;
        }

        public SignerUserId(
            bool    critical,
            bool    isLongLength,
            byte[]  data)
            : base(SignatureSubpacketTag.SignerUserId, critical, isLongLength, data)
		{
		}

        public SignerUserId(
            bool    critical,
            string  userId)
            : base(SignatureSubpacketTag.SignerUserId, critical, false, UserIdToBytes(userId))
		{
        }

        public string GetId()
        {
            char[] chars = new char[data.Length];

			for (int i = 0; i != chars.Length; i++)
            {
                chars[i] = (char)(data[i] & 0xff);
            }

			return new string(chars);
        }
    }
}