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

index 000000000..c6a8dc574 --- /dev/null +++ b/crypto/src/bcpg/sig/SignatureTarget.cs
@@ -0,0 +1,30 @@ +using System; + +using Org.BouncyCastle.Utilities; + +namespace Org.BouncyCastle.Bcpg.Sig +{ + /** + * RFC 4880, Section 5.2.3.25 - Signature Target subpacket. + */ + public class SignatureTarget + : SignatureSubpacket + { + public SignatureTarget(bool critical, bool isLongLength, byte[] data) + : base(SignatureSubpacketTag.SignatureTarget, critical, isLongLength, data) + { + } + + public SignatureTarget(bool critical, int publicKeyAlgorithm, int hashAlgorithm, byte[] hashData) + : base(SignatureSubpacketTag.SignatureTarget, critical, false, + Arrays.Concatenate(new byte[]{ (byte)publicKeyAlgorithm, (byte)hashAlgorithm }, hashData)) + { + } + + public int PublicKeyAlgorithm => data[0]; + + public int HashAlgorithm => data[1]; + + public byte[] GetHashData() => Arrays.CopyOfRange(data, 2, data.Length); + } +}