⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pdfpkcs7.java

📁 源码包含生成 PDF 和 HTML 的类库
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
            }            ByteArrayOutputStream   bOut = new ByteArrayOutputStream();                        ASN1OutputStream dout = new ASN1OutputStream(bOut);            dout.writeObject(new DERSet(attribute));            dout.close();                        return bOut.toByteArray();        }        catch (Exception e) {            throw new ExceptionConverter(e);        }    }    /**     * Getter for property reason.     * @return Value of property reason.     */    public String getReason() {        return this.reason;    }        /**     * Setter for property reason.     * @param reason New value of property reason.     */    public void setReason(String reason) {        this.reason = reason;    }        /**     * Getter for property location.     * @return Value of property location.     */    public String getLocation() {        return this.location;    }        /**     * Setter for property location.     * @param location New value of property location.     */    public void setLocation(String location) {        this.location = location;    }        /**     * Getter for property signDate.     * @return Value of property signDate.     */    public Calendar getSignDate() {        return this.signDate;    }        /**     * Setter for property signDate.     * @param signDate New value of property signDate.     */    public void setSignDate(Calendar signDate) {        this.signDate = signDate;    }        /**     * Getter for property sigName.     * @return Value of property sigName.     */    public String getSignName() {        return this.signName;    }        /**     * Setter for property sigName.     * @param signName New value of property sigName.     */    public void setSignName(String signName) {        this.signName = signName;    }        /**     * a class that holds an X509 name     */    public static class X509Name {        /**         * country code - StringType(SIZE(2))         */        public static final DERObjectIdentifier C = new DERObjectIdentifier("2.5.4.6");        /**         * organization - StringType(SIZE(1..64))         */        public static final DERObjectIdentifier O = new DERObjectIdentifier("2.5.4.10");        /**         * organizational unit name - StringType(SIZE(1..64))         */        public static final DERObjectIdentifier OU = new DERObjectIdentifier("2.5.4.11");        /**         * Title         */        public static final DERObjectIdentifier T = new DERObjectIdentifier("2.5.4.12");        /**         * common name - StringType(SIZE(1..64))         */        public static final DERObjectIdentifier CN = new DERObjectIdentifier("2.5.4.3");        /**         * device serial number name - StringType(SIZE(1..64))         */        public static final DERObjectIdentifier SN = new DERObjectIdentifier("2.5.4.5");        /**         * locality name - StringType(SIZE(1..64))         */        public static final DERObjectIdentifier L = new DERObjectIdentifier("2.5.4.7");        /**         * state, or province name - StringType(SIZE(1..64))         */        public static final DERObjectIdentifier ST = new DERObjectIdentifier("2.5.4.8");        /** Naming attribute of type X520name */        public static final DERObjectIdentifier SURNAME = new DERObjectIdentifier("2.5.4.4");        /** Naming attribute of type X520name */        public static final DERObjectIdentifier GIVENNAME = new DERObjectIdentifier("2.5.4.42");        /** Naming attribute of type X520name */        public static final DERObjectIdentifier INITIALS = new DERObjectIdentifier("2.5.4.43");        /** Naming attribute of type X520name */        public static final DERObjectIdentifier GENERATION = new DERObjectIdentifier("2.5.4.44");        /** Naming attribute of type X520name */        public static final DERObjectIdentifier UNIQUE_IDENTIFIER = new DERObjectIdentifier("2.5.4.45");        /**         * Email address (RSA PKCS#9 extension) - IA5String.         * <p>Note: if you're trying to be ultra orthodox, don't use this! It shouldn't be in here.         */        public static final DERObjectIdentifier EmailAddress = new DERObjectIdentifier("1.2.840.113549.1.9.1");        /**         * email address in Verisign certificates         */        public static final DERObjectIdentifier E = EmailAddress;        /** object identifier */        public static final DERObjectIdentifier DC = new DERObjectIdentifier("0.9.2342.19200300.100.1.25");        /** LDAP User id. */        public static final DERObjectIdentifier UID = new DERObjectIdentifier("0.9.2342.19200300.100.1.1");        /** A HashMap with default symbols */        public static HashMap DefaultSymbols = new HashMap();                static {            DefaultSymbols.put(C, "C");            DefaultSymbols.put(O, "O");            DefaultSymbols.put(T, "T");            DefaultSymbols.put(OU, "OU");            DefaultSymbols.put(CN, "CN");            DefaultSymbols.put(L, "L");            DefaultSymbols.put(ST, "ST");            DefaultSymbols.put(SN, "SN");            DefaultSymbols.put(EmailAddress, "E");            DefaultSymbols.put(DC, "DC");            DefaultSymbols.put(UID, "UID");            DefaultSymbols.put(SURNAME, "SURNAME");            DefaultSymbols.put(GIVENNAME, "GIVENNAME");            DefaultSymbols.put(INITIALS, "INITIALS");            DefaultSymbols.put(GENERATION, "GENERATION");        }        /** A HashMap with values */        public HashMap values = new HashMap();        /**         * Constructs an X509 name         * @param seq an ASN1 Sequence         */        public X509Name(ASN1Sequence seq) {            Enumeration e = seq.getObjects();                        while (e.hasMoreElements()) {                ASN1Set set = (ASN1Set)e.nextElement();                                for (int i = 0; i < set.size(); i++) {                    ASN1Sequence s = (ASN1Sequence)set.getObjectAt(i);                    String id = (String)DefaultSymbols.get(s.getObjectAt(0));                    if (id == null)                        continue;                    ArrayList vs = (ArrayList)values.get(id);                    if (vs == null) {                        vs = new ArrayList();                        values.put(id, vs);                    }                    vs.add(((DERString)s.getObjectAt(1)).getString());                }            }        }        /**         * Constructs an X509 name         * @param dirName a directory name         */        public X509Name(String dirName) {            X509NameTokenizer   nTok = new X509NameTokenizer(dirName);                        while (nTok.hasMoreTokens()) {                String  token = nTok.nextToken();                int index = token.indexOf('=');                                if (index == -1) {                    throw new IllegalArgumentException("badly formated directory string");                }                                String id = token.substring(0, index).toUpperCase();                String value = token.substring(index + 1);                ArrayList vs = (ArrayList)values.get(id);                if (vs == null) {                    vs = new ArrayList();                    values.put(id, vs);                }                vs.add(value);            }                    }                public String getField(String name) {            ArrayList vs = (ArrayList)values.get(name);            return vs == null ? null : (String)vs.get(0);        }        /**         * gets a field array from the values Hashmap         * @param name         * @return an ArrayList         */        public ArrayList getFieldArray(String name) {            ArrayList vs = (ArrayList)values.get(name);            return vs == null ? null : vs;        }                /**         * getter for values         * @return a HashMap with the fields of the X509 name         */        public HashMap getFields() {            return values;        }                /**         * @see java.lang.Object#toString()         */        public String toString() {            return values.toString();        }    }        /**     * class for breaking up an X500 Name into it's component tokens, ala     * java.util.StringTokenizer. We need this class as some of the     * lightweight Java environment don't support classes like     * StringTokenizer.     */    public static class X509NameTokenizer {        private String          oid;        private int             index;        private StringBuffer    buf = new StringBuffer();                public X509NameTokenizer(        String oid) {            this.oid = oid;            this.index = -1;        }                public boolean hasMoreTokens() {            return (index != oid.length());        }                public String nextToken() {            if (index == oid.length()) {                return null;            }                        int     end = index + 1;            boolean quoted = false;            boolean escaped = false;                        buf.setLength(0);                        while (end != oid.length()) {                char    c = oid.charAt(end);                                if (c == '"') {                    if (!escaped) {                        quoted = !quoted;                    }                    else {                        buf.append(c);                    }                    escaped = false;                }                else {                    if (escaped || quoted) {                        buf.append(c);                        escaped = false;                    }                    else if (c == '\\') {                        escaped = true;                    }                    else if (c == ',') {                        break;                    }                    else {                        buf.append(c);                    }                }                end++;            }                        index = end;            return buf.toString().trim();        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -