diff options
Diffstat (limited to 'crypto/src/asn1/DLTaggedObject.cs')
-rw-r--r-- | crypto/src/asn1/DLTaggedObject.cs | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/crypto/src/asn1/DLTaggedObject.cs b/crypto/src/asn1/DLTaggedObject.cs index 30e3334e2..87705ea80 100644 --- a/crypto/src/asn1/DLTaggedObject.cs +++ b/crypto/src/asn1/DLTaggedObject.cs @@ -2,25 +2,25 @@ namespace Org.BouncyCastle.Asn1 { - internal class DLTaggedObject + public class DLTaggedObject : DerTaggedObject { - internal DLTaggedObject(int tagNo, Asn1Encodable obj) + public DLTaggedObject(int tagNo, Asn1Encodable obj) : base(tagNo, obj) { } - internal DLTaggedObject(int tagClass, int tagNo, Asn1Encodable obj) + public DLTaggedObject(int tagClass, int tagNo, Asn1Encodable obj) : base(tagClass, tagNo, obj) { } - internal DLTaggedObject(bool isExplicit, int tagNo, Asn1Encodable obj) + public DLTaggedObject(bool isExplicit, int tagNo, Asn1Encodable obj) : base(isExplicit, tagNo, obj) { } - internal DLTaggedObject(bool isExplicit, int tagClass, int tagNo, Asn1Encodable obj) + public DLTaggedObject(bool isExplicit, int tagClass, int tagNo, Asn1Encodable obj) : base(isExplicit, tagClass, tagNo, obj) { } @@ -30,23 +30,19 @@ namespace Org.BouncyCastle.Asn1 { } - internal override string Asn1Encoding - { - // TODO[asn1] Use DL encoding when supported - get { return Ber; } - } - internal override IAsn1Encoding GetEncoding(int encoding) { if (Asn1OutputStream.EncodingDer == encoding) return base.GetEncoding(encoding); + encoding = Asn1OutputStream.EncodingDL; + Asn1Object baseObject = GetBaseObject().ToAsn1Object(); if (!IsExplicit()) return baseObject.GetEncodingImplicit(encoding, TagClass, TagNo); - return new ConstructedDLEncoding(TagClass, TagNo, new IAsn1Encoding[]{ baseObject.GetEncoding(encoding) }); + return new TaggedDLEncoding(TagClass, TagNo, baseObject.GetEncoding(encoding)); } internal override IAsn1Encoding GetEncodingImplicit(int encoding, int tagClass, int tagNo) @@ -54,12 +50,14 @@ namespace Org.BouncyCastle.Asn1 if (Asn1OutputStream.EncodingDer == encoding) return base.GetEncodingImplicit(encoding, tagClass, tagNo); + encoding = Asn1OutputStream.EncodingDL; + Asn1Object baseObject = GetBaseObject().ToAsn1Object(); if (!IsExplicit()) return baseObject.GetEncodingImplicit(encoding, tagClass, tagNo); - return new ConstructedDLEncoding(tagClass, tagNo, new IAsn1Encoding[]{ baseObject.GetEncoding(encoding) }); + return new TaggedDLEncoding(tagClass, tagNo, baseObject.GetEncoding(encoding)); } internal override Asn1Sequence RebuildConstructed(Asn1Object asn1Object) |