mirrored from https://www.bouncycastle.org/repositories/bc-csharp
-
Notifications
You must be signed in to change notification settings - Fork 602
Expand file tree
/
Copy pathDLSet.cs
More file actions
93 lines (74 loc) · 2.68 KB
/
Copy pathDLSet.cs
File metadata and controls
93 lines (74 loc) · 2.68 KB
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
using System;
using System.Collections.Generic;
using Org.BouncyCastle.Utilities.Collections;
namespace Org.BouncyCastle.Asn1
{
public class DLSet
: DerSet
{
public static new readonly DLSet Empty = new DLSet();
public static new DLSet FromCollection(IReadOnlyCollection<Asn1Encodable> elements)
{
return elements.Count < 1 ? Empty : new DLSet(elements);
}
public static new DLSet FromElement(Asn1Encodable element) => new DLSet(element);
public static new DLSet FromVector(Asn1EncodableVector elementVector)
{
return elementVector.Count < 1 ? Empty : new DLSet(elementVector);
}
public static new DLSet Map<T>(T[] ts, Func<T, Asn1Encodable> func)
{
return ts.Length < 1 ? Empty : new DLSet(isSorted: false, CollectionUtilities.Map(ts, func));
}
public static new DLSet Map<T>(IReadOnlyCollection<T> c, Func<T, Asn1Encodable> func)
{
return c.Count < 1 ? Empty : new DLSet(isSorted: false, CollectionUtilities.Map(c, func));
}
public DLSet()
: base()
{
}
public DLSet(Asn1Encodable element)
: base(element)
{
}
public DLSet(params Asn1Encodable[] elements)
: base(elements, doSort: false)
{
}
public DLSet(Asn1EncodableVector elementVector)
: base(elementVector, doSort: false)
{
}
public DLSet(IReadOnlyCollection<Asn1Encodable> elements)
: base(elements, doSort: false)
{
}
public DLSet(Asn1Sequence sequence)
: base(sequence)
{
}
public DLSet(Asn1Set asn1Set)
: base(asn1Set)
{
}
internal DLSet(bool isSorted, Asn1Encodable[] elements)
: base(isSorted, elements)
{
}
internal override IAsn1Encoding GetEncoding(int encoding)
{
if (Asn1OutputStream.EncodingDer == encoding)
return base.GetEncoding(encoding);
return new ConstructedDLEncoding(Asn1Tags.Universal, Asn1Tags.Set,
Asn1OutputStream.GetContentsEncodings(Asn1OutputStream.EncodingDL, m_elements));
}
internal override IAsn1Encoding GetEncodingImplicit(int encoding, int tagClass, int tagNo)
{
if (Asn1OutputStream.EncodingDer == encoding)
return base.GetEncodingImplicit(encoding, tagClass, tagNo);
return new ConstructedDLEncoding(tagClass, tagNo,
Asn1OutputStream.GetContentsEncodings(Asn1OutputStream.EncodingDL, m_elements));
}
}
}