Index: modules/security/src/main/java/common/org/apache/harmony/security/x509/CRLNumber.java =================================================================== --- modules/security/src/main/java/common/org/apache/harmony/security/x509/CRLNumber.java (revision 0) +++ modules/security/src/main/java/common/org/apache/harmony/security/x509/CRLNumber.java (revision 0) @@ -0,0 +1,86 @@ +/* + * Copyright 2006 The Apache Software Foundation or its licensors, as applicable. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.harmony.security.x509; + +import java.io.IOException; +import java.math.BigInteger; + +import org.apache.harmony.security.asn1.ASN1Integer; +import org.apache.harmony.security.asn1.ASN1Type; + +/** + * CRL Entry's CRL Number Extension (OID = 2.5.29.20). + *

+ *   id-ce-cRLNumber OBJECT IDENTIFIER ::= { id-ce 20 }

+ *

+ *   CRLNumber ::= INTEGER (0..MAX)

+ * 
+ * (as specified in RFC 3280 http://www.ietf.org/rfc/rfc3280.txt) + */ +public class CRLNumber extends ExtensionValue { + + // crl number value + private final BigInteger number; + + /** + * Constructs the object on the base of the invalidity date value. + */ + public CRLNumber(BigInteger number) { + this.number = number; + } + + /** + * Constructs the object on the base of its encoded form. + */ + public CRLNumber(byte[] encoding) throws IOException { + super(encoding); + number = new BigInteger((byte[]) ASN1.decode(encoding)); + } + + /** + * Returns the invalidity date. + */ + public BigInteger getNumber() { + return number; + } + + /** + * Returns ASN.1 encoded form of this X.509 CRLNumber value. + * @return a byte array containing ASN.1 encoded form. + */ + public byte[] getEncoded() { + if (encoding == null) { + encoding = ASN1.encode(number.toByteArray()); + } + return encoding; + } + + /** + * Places the string representation of extension value + * into the StringBuffer object. + */ + public void dumpValue(StringBuffer buffer, String prefix) { + buffer.append(prefix).append("CRL Number: [ ") + .append(number).append(" ]\n"); + } + + /** + * ASN.1 Encoder/Decoder. + */ + public static ASN1Type ASN1 = ASN1Integer.getInstance(); +} +