// --- 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; /** * 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