summary refs log tree commit diff
path: root/Crypto/src/bcpg/sig/SignerUserId.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Crypto/src/bcpg/sig/SignerUserId.cs')
-rw-r--r--Crypto/src/bcpg/sig/SignerUserId.cs52
1 files changed, 52 insertions, 0 deletions
diff --git a/Crypto/src/bcpg/sig/SignerUserId.cs b/Crypto/src/bcpg/sig/SignerUserId.cs
new file mode 100644

index 000000000..98cc808e7 --- /dev/null +++ b/Crypto/src/bcpg/sig/SignerUserId.cs
@@ -0,0 +1,52 @@ +using System; + + + +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, + byte[] data) + : base(SignatureSubpacketTag.SignerUserId, critical, data) + { + } + + public SignerUserId( + bool critical, + string userId) + : base(SignatureSubpacketTag.SignerUserId, critical, 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); + } + } +}