summary refs log tree commit diff
path: root/crypto/src/asn1/DerBitString.cs
diff options
context:
space:
mode:
authorPeter Dettman <peter.dettman@bouncycastle.org>2021-11-18 16:31:12 +0700
committerPeter Dettman <peter.dettman@bouncycastle.org>2021-11-18 16:31:12 +0700
commit1ec8938ad4d5810c3f50957b85c7fe9a1e6a00b7 (patch)
tree7760d701bc4f114be2b18f02896cbfa0442f958b /crypto/src/asn1/DerBitString.cs
parentASN.1: Port of bc-java TYPE instances (diff)
downloadBouncyCastle.NET-ed25519-1ec8938ad4d5810c3f50957b85c7fe9a1e6a00b7.tar.xz
ASN:1 tagged object parser updates from bc-java
Diffstat (limited to 'crypto/src/asn1/DerBitString.cs')
-rw-r--r--crypto/src/asn1/DerBitString.cs23
1 files changed, 21 insertions, 2 deletions
diff --git a/crypto/src/asn1/DerBitString.cs b/crypto/src/asn1/DerBitString.cs
index 4596fbbc8..d3836b740 100644
--- a/crypto/src/asn1/DerBitString.cs
+++ b/crypto/src/asn1/DerBitString.cs
@@ -9,8 +9,8 @@ using Org.BouncyCastle.Utilities;
 namespace Org.BouncyCastle.Asn1
 {
 	public class DerBitString
-		: DerStringBase
-	{
+		: DerStringBase, Asn1BitStringParser
+    {
         internal class Meta : Asn1UniversalType
         {
             internal static readonly Asn1UniversalType Instance = new Meta();
@@ -309,6 +309,25 @@ namespace Org.BouncyCastle.Asn1
             return thisLastDer == thatLastDer;
         }
 
+        public Stream GetBitStream()
+        {
+            return new MemoryStream(contents, 1, contents.Length - 1, false);
+        }
+
+        public Stream GetOctetStream()
+        {
+            int padBits = contents[0] & 0xFF;
+            if (0 != padBits)
+                throw new IOException("expected octet-aligned bitstring, but found padBits: " + padBits);
+
+            return GetBitStream();
+        }
+
+        public Asn1BitStringParser Parser
+        {
+            get { return this; }
+        }
+
         public override string GetString()
 		{
 			byte[] str = GetDerEncoded();