    001/*
    002 * $HeadURL: http://juliusdavies.ca/svn/not-yet-commons-ssl/tags/commons-ssl-0.3.15/src/java/org/apache/commons/ssl/ASN1Structure.java $
    003 * $Revision: 121 $
    004 * $Date: 2007-11-13 21:26:57 -0800 (Tue, 13 Nov 2007) $
    005 *
    006 * ====================================================================
    007 * Licensed to the Apache Software Foundation (ASF) under one
    008 * or more contributor license agreements.  See the NOTICE file
    009 * distributed with this work for additional information
    010 * regarding copyright ownership.  The ASF licenses this file
    011 * to you under the Apache License, Version 2.0 (the
    012 * "License"); you may not use this file except in compliance
    013 * with the License.  You may obtain a copy of the License at
    014 *
    015 *   http://www.apache.org/licenses/LICENSE-2.0
    016 *
    017 * Unless required by applicable law or agreed to in writing,
    018 * software distributed under the License is distributed on an
    019 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    020 * KIND, either express or implied.  See the License for the
    021 * specific language governing permissions and limitations
    022 * under the License.
    023 * ====================================================================
    024 *
    025 * This software consists of voluntary contributions made by many
    026 * individuals on behalf of the Apache Software Foundation.  For more
    027 * information on the Apache Software Foundation, please see
    028 * <http://www.apache.org/>.
    029 *
    030 */
    031
    032package org.apache.commons.ssl;
    033
    034import org.apache.commons.ssl.util.Hex;
    035
    036import java.util.Iterator;
    037import java.util.LinkedList;
    038import java.util.List;
    039import java.util.Set;
    040import java.util.TreeSet;
    041
    042/**
    043 * @author Credit Union Central of British Columbia
    044 * @author <a href="http://www.cucbc.com/">www.cucbc.com</a>
    045 * @author <a href="mailto:juliusdavies@cucbc.com">juliusdavies@cucbc.com</a>
    046 * @since 16-Nov-2005
    047 */
    048class ASN1Structure {
    049    List derIntegers = new LinkedList();
    050    Set oids = new TreeSet();
    051    String oid1;
    052    String oid2;
    053    String oid3;
    054    byte[] salt;
    055    byte[] iv;
    056    int iterationCount;
    057    int keySize;
    058    byte[] bigPayload;
    059    byte[] smallPayload;
    060
    061    public String toString() {
    062        StringBuffer buf = new StringBuffer(256);
    063        buf.append("------ ASN.1 PKCS Structure ------");
    064        buf.append("\noid1:    ");
    065        buf.append(oid1);
    066        if (oid2 != null) {
    067            buf.append("\noid2:    ");
    068            buf.append(oid2);
    069        }
    070        buf.append("\nsalt:   ");
    071        if (salt != null) {
    072            buf.append(Hex.encode(salt));
    073        } else {
    074            buf.append("[null]");
    075        }
    076        buf.append("\nic:      ");
    077        buf.append(Integer.toString(iterationCount));
    078        if (keySize != 0) {
    079            buf.append("\nkeySize: ");
    080            buf.append(Integer.toString(keySize * 8));
    081        }
    082        if (oid2 != null) {
    083            buf.append("\noid3:    ");
    084            buf.append(oid3);
    085        }
    086        if (oid2 != null) {
    087            buf.append("\niv:      ");
    088            if (iv != null) {
    089                buf.append(Hex.encode(iv));
    090            } else {
    091                buf.append("[null]");
    092            }
    093        }
    094        if (bigPayload != null) {
    095            buf.append("\nbigPayload-length:   ");
    096            buf.append(bigPayload.length);
    097        }
    098        if (smallPayload != null) {
    099            buf.append("\nsmallPayload-length: ");
    100            buf.append(smallPayload.length);
    101        }
    102        if (!oids.isEmpty()) {
    103            Iterator it = oids.iterator();
    104            buf.append("\nAll oids:");
    105            while (it.hasNext()) {
    106                buf.append("\n");
    107                buf.append((String) it.next());
    108            }
    109        }
    110        return buf.toString();
    111    }
    112}