summaryrefslogtreecommitdiffstats
path: root/bcprov/src/main/java/org/bouncycastle/asn1/ASN1Set.java
diff options
context:
space:
mode:
Diffstat (limited to 'bcprov/src/main/java/org/bouncycastle/asn1/ASN1Set.java')
-rw-r--r--bcprov/src/main/java/org/bouncycastle/asn1/ASN1Set.java13
1 files changed, 4 insertions, 9 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/ASN1Set.java b/bcprov/src/main/java/org/bouncycastle/asn1/ASN1Set.java
index 895f002..b4d263a 100644
--- a/bcprov/src/main/java/org/bouncycastle/asn1/ASN1Set.java
+++ b/bcprov/src/main/java/org/bouncycastle/asn1/ASN1Set.java
@@ -481,22 +481,17 @@ public abstract class ASN1Set
return len == a.length;
}
- private byte[] getEncoded(
+ private byte[] getDEREncoded(
ASN1Encodable obj)
{
- ByteArrayOutputStream bOut = new ByteArrayOutputStream();
- ASN1OutputStream aOut = new ASN1OutputStream(bOut);
-
try
{
- aOut.writeObject(obj);
+ return obj.toASN1Primitive().getEncoded(ASN1Encoding.DER);
}
catch (IOException e)
{
throw new IllegalArgumentException("cannot encode object added to SET");
}
-
- return bOut.toByteArray();
}
protected void sort()
@@ -513,13 +508,13 @@ public abstract class ASN1Set
{
int index = 0;
int swapIndex = 0;
- byte[] a = getEncoded((ASN1Encodable)set.elementAt(0));
+ byte[] a = getDEREncoded((ASN1Encodable)set.elementAt(0));
swapped = false;
while (index != lastSwap)
{
- byte[] b = getEncoded((ASN1Encodable)set.elementAt(index + 1));
+ byte[] b = getDEREncoded((ASN1Encodable)set.elementAt(index + 1));
if (lessThanOrEqual(a, b))
{