blob: 1ce1a2288829e064cc11a5e61342bb27a553c545 [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001/*
2 * Copyright 1997 Sun Microsystems, Inc. All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Sun designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Sun in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22 * CA 95054 USA or visit www.sun.com if you need additional information or
23 * have any questions.
24 */
25
26package sun.security.x509;
27
28import java.io.IOException;
29
30import sun.security.util.*;
31
32/**
33 * Represent the CertificatePolicyMap ASN.1 object.
34 *
35 * @author Amit Kapoor
36 * @author Hemma Prafullchandra
37 */
38public class CertificatePolicyMap {
39 private CertificatePolicyId issuerDomain;
40 private CertificatePolicyId subjectDomain;
41
42 /**
43 * Create a CertificatePolicyMap with the passed CertificatePolicyId's.
44 *
45 * @param issuer the CertificatePolicyId for the issuer CA.
46 * @param subject the CertificatePolicyId for the subject CA.
47 */
48 public CertificatePolicyMap(CertificatePolicyId issuer,
49 CertificatePolicyId subject) {
50 this.issuerDomain = issuer;
51 this.subjectDomain = subject;
52 }
53
54 /**
55 * Create the CertificatePolicyMap from the DER encoded value.
56 *
57 * @param val the DER encoded value of the same.
58 */
59 public CertificatePolicyMap(DerValue val) throws IOException {
60 if (val.tag != DerValue.tag_Sequence) {
61 throw new IOException("Invalid encoding for CertificatePolicyMap");
62 }
63 issuerDomain = new CertificatePolicyId(val.data.getDerValue());
64 subjectDomain = new CertificatePolicyId(val.data.getDerValue());
65 }
66
67 /**
68 * Return the issuer CA part of the policy map.
69 */
70 public CertificatePolicyId getIssuerIdentifier() {
71 return (issuerDomain);
72 }
73
74 /**
75 * Return the subject CA part of the policy map.
76 */
77 public CertificatePolicyId getSubjectIdentifier() {
78 return (subjectDomain);
79 }
80
81 /**
82 * Returns a printable representation of the CertificatePolicyId.
83 */
84 public String toString() {
85 String s = "CertificatePolicyMap: [\n"
86 + "IssuerDomain:" + issuerDomain.toString()
87 + "SubjectDomain:" + subjectDomain.toString()
88 + "]\n";
89
90 return (s);
91 }
92
93 /**
94 * Write the CertificatePolicyMap to the DerOutputStream.
95 *
96 * @param out the DerOutputStream to write the object to.
97 * @exception IOException on errors.
98 */
99 public void encode(DerOutputStream out) throws IOException {
100 DerOutputStream tmp = new DerOutputStream();
101
102 issuerDomain.encode(tmp);
103 subjectDomain.encode(tmp);
104 out.write(DerValue.tag_Sequence,tmp);
105 }
106}