// --- BEGIN COPYRIGHT BLOCK --- // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; version 2 of the License. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License along // with this program; if not, write to the Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. // // (C) 2007 Red Hat, Inc. // All rights reserved. // --- END COPYRIGHT BLOCK --- package com.netscape.cmstools; import java.io.FileInputStream; import java.io.IOException; import netscape.security.util.DerOutputStream; import netscape.security.util.DerValue; import com.netscape.cmsutil.util.Utils; /** * This program joins a sequence of extensions together * so that the final output can be used in configuration * wizard for specifing extra extensions in default * certificates (i.e. CA certificate, SSL certificate). * * Usage: * *
* ExtJoiner \ * <ext_file0> <ext_file1> ... <ext_fileN> * * where, * <ext_file> is a file that has the base64 * encoded DER encoding of an X509 Extension * * ExtensionSequence ::= SEQUENCE OF Extension; * * 0 30 142: SEQUENCE { * 3 30 69: SEQUENCE { * 5 06 3: OBJECT IDENTIFIER issuerAltName (2 5 29 18) * 10 04 62: OCTET STRING * : 30 3C 82 01 61 82 01 61 A4 10 30 0E 31 0C 30 0A * : 06 03 55 04 03 13 03 64 73 61 87 04 01 01 01 01 * : 86 01 61 81 14 74 68 6F 6D 61 73 6B 40 6E 65 74 * : 73 63 61 70 65 2E 63 6F 6D 88 03 29 01 01 * : } * 74 30 69: SEQUENCE { * 76 06 3: OBJECT IDENTIFIER subjectAltName (2 5 29 17) * 81 04 62: OCTET STRING * : 30 3C 82 01 61 82 01 61 A4 10 30 0E 31 0C 30 0A * : 06 03 55 04 03 13 03 64 73 61 87 04 01 01 01 01 * : 86 01 61 81 14 74 68 6F 6D 61 73 6B 40 6E 65 74 * : 73 63 61 70 65 2E 63 6F 6D 88 03 29 01 01 * : } * : } ** * @version $Revision$, $Date$ */ public class ExtJoiner { public static void main(String args[]) { try { if (args.length == 0) { System.out.println("Usage: ExtJoiner