diff options
author | Sergio Giro <sgiro@google.com> | 2016-02-01 18:52:42 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2016-02-01 18:52:42 +0000 |
commit | 9218edabd1ef9852bc2f13115dcadc81b442dd6c (patch) | |
tree | 8229ff72c8cbb06f49dce3a8382930919fa6fc2b /bcprov/src/main/java/org/bouncycastle/asn1/test/EqualsAndHashCodeTest.java | |
parent | 9b30eb05e5be69d51881a0d1b31e503e97acd784 (diff) | |
parent | 397d32894b89b506dc318e0f83446187c9b76ebe (diff) | |
download | android_external_bouncycastle-9218edabd1ef9852bc2f13115dcadc81b442dd6c.tar.gz android_external_bouncycastle-9218edabd1ef9852bc2f13115dcadc81b442dd6c.tar.bz2 android_external_bouncycastle-9218edabd1ef9852bc2f13115dcadc81b442dd6c.zip |
Merge "Merge remote-tracking branch 'aosp/upstream-master' into merge-152-from-upstream"
Diffstat (limited to 'bcprov/src/main/java/org/bouncycastle/asn1/test/EqualsAndHashCodeTest.java')
-rw-r--r-- | bcprov/src/main/java/org/bouncycastle/asn1/test/EqualsAndHashCodeTest.java | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/bcprov/src/main/java/org/bouncycastle/asn1/test/EqualsAndHashCodeTest.java b/bcprov/src/main/java/org/bouncycastle/asn1/test/EqualsAndHashCodeTest.java new file mode 100644 index 0000000..3da4e6a --- /dev/null +++ b/bcprov/src/main/java/org/bouncycastle/asn1/test/EqualsAndHashCodeTest.java @@ -0,0 +1,127 @@ +package org.bouncycastle.asn1.test; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.util.Date; + +import org.bouncycastle.asn1.ASN1Boolean; +import org.bouncycastle.asn1.ASN1Enumerated; +import org.bouncycastle.asn1.ASN1InputStream; +import org.bouncycastle.asn1.ASN1Integer; +import org.bouncycastle.asn1.ASN1ObjectIdentifier; +import org.bouncycastle.asn1.ASN1OutputStream; +import org.bouncycastle.asn1.ASN1Primitive; +import org.bouncycastle.asn1.BERConstructedOctetString; +import org.bouncycastle.asn1.BERSequence; +import org.bouncycastle.asn1.BERSet; +import org.bouncycastle.asn1.BERTaggedObject; +import org.bouncycastle.asn1.DERApplicationSpecific; +import org.bouncycastle.asn1.DERBMPString; +import org.bouncycastle.asn1.DERBitString; +import org.bouncycastle.asn1.DERGeneralString; +import org.bouncycastle.asn1.DERGeneralizedTime; +import org.bouncycastle.asn1.DERIA5String; +import org.bouncycastle.asn1.DERNull; +import org.bouncycastle.asn1.DERNumericString; +import org.bouncycastle.asn1.DEROctetString; +import org.bouncycastle.asn1.DERPrintableString; +import org.bouncycastle.asn1.DERSequence; +import org.bouncycastle.asn1.DERSet; +import org.bouncycastle.asn1.DERT61String; +import org.bouncycastle.asn1.DERTaggedObject; +import org.bouncycastle.asn1.DERUTCTime; +import org.bouncycastle.asn1.DERUTF8String; +import org.bouncycastle.asn1.DERUniversalString; +import org.bouncycastle.asn1.DERVisibleString; +import org.bouncycastle.util.test.SimpleTestResult; +import org.bouncycastle.util.test.Test; +import org.bouncycastle.util.test.TestResult; + +public class EqualsAndHashCodeTest + implements Test +{ + public TestResult perform() + { + byte[] data = { 0, 1, 0, 1, 0, 0, 1 }; + + ASN1Primitive values[] = { + new BERConstructedOctetString(data), + new BERSequence(new DERPrintableString("hello world")), + new BERSet(new DERPrintableString("hello world")), + new BERTaggedObject(0, new DERPrintableString("hello world")), + new DERApplicationSpecific(0, data), + new DERBitString(data), + new DERBMPString("hello world"), + new ASN1Boolean(true), + new ASN1Boolean(false), + new ASN1Enumerated(100), + new DERGeneralizedTime("20070315173729Z"), + new DERGeneralString("hello world"), + new DERIA5String("hello"), + new ASN1Integer(1000), + new DERNull(), + new DERNumericString("123456"), + new ASN1ObjectIdentifier("1.1.1.10000.1"), + new DEROctetString(data), + new DERPrintableString("hello world"), + new DERSequence(new DERPrintableString("hello world")), + new DERSet(new DERPrintableString("hello world")), + new DERT61String("hello world"), + new DERTaggedObject(0, new DERPrintableString("hello world")), + new DERUniversalString(data), + new DERUTCTime(new Date()), + new DERUTF8String("hello world"), + new DERVisibleString("hello world") + }; + + try + { + ByteArrayOutputStream bOut = new ByteArrayOutputStream(); + ASN1OutputStream aOut = new ASN1OutputStream(bOut); + + for (int i = 0; i != values.length; i++) + { + aOut.writeObject(values[i]); + } + + ASN1Primitive[] readValues = new ASN1Primitive[values.length]; + + ByteArrayInputStream bIn = new ByteArrayInputStream(bOut.toByteArray()); + ASN1InputStream aIn = new ASN1InputStream(bIn); + + for (int i = 0; i != values.length; i++) + { + ASN1Primitive o = aIn.readObject(); + if (!o.equals(values[i])) + { + return new SimpleTestResult(false, getName() + ": Failed equality test for " + o.getClass()); + } + + if (o.hashCode() != values[i].hashCode()) + { + return new SimpleTestResult(false, getName() + ": Failed hashCode test for " + o.getClass()); + } + } + } + catch (Exception e) + { + return new SimpleTestResult(false, getName() + ": Failed - exception " + e.toString(), e); + } + + return new SimpleTestResult(true, getName() + ": Okay"); + } + + public String getName() + { + return "EqualsAndHashCode"; + } + + public static void main( + String[] args) + { + EqualsAndHashCodeTest test = new EqualsAndHashCodeTest(); + TestResult result = test.perform(); + + System.out.println(result); + } +} |