1 /**
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one or more
4 * contributor license agreements. See the NOTICE file distributed with
5 * this work for additional information regarding copyright ownership.
6 * The ASF licenses this file to You under the Apache License, Version 2.0
7 * (the "License"); you may not use this file except in compliance with
8 * the License. You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18
19 package org.apache.geronimo.util.asn1;
20
21 import java.io.ByteArrayOutputStream;
22 import java.io.IOException;
23
24 public abstract class ASN1Encodable
25 implements DEREncodable
26 {
27 public byte[] getEncoded()
28 throws IOException
29 {
30 ByteArrayOutputStream bOut = new ByteArrayOutputStream();
31 ASN1OutputStream aOut = new ASN1OutputStream(bOut);
32
33 aOut.writeObject(this);
34
35 return bOut.toByteArray();
36 }
37
38 public int hashCode()
39 {
40 return this.toASN1Object().hashCode();
41 }
42
43 public boolean equals(
44 Object o)
45 {
46 if ((o == null) || !(o instanceof ASN1Encodable))
47 {
48 return false;
49 }
50
51 ASN1Encodable other = (ASN1Encodable)o;
52
53 return this.toASN1Object().equals(other.toASN1Object());
54 }
55
56 public DERObject getDERObject()
57 {
58 return this.toASN1Object();
59 }
60
61 public abstract DERObject toASN1Object();
62 }