mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			590 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Java
		
	
	
	
			
		
		
	
	
			590 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Java
		
	
	
	
| /* X509Certificate.java --- X.509 Certificate class
 | |
|    Copyright (C) 1999,2003, 2006 Free Software Foundation, Inc.
 | |
| 
 | |
| This file is part of GNU Classpath.
 | |
| 
 | |
| GNU Classpath 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; either version 2, or (at your option)
 | |
| any later version.
 | |
| 
 | |
| GNU Classpath 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 GNU Classpath; see the file COPYING.  If not, write to the
 | |
| Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | |
| 02110-1301 USA.
 | |
| 
 | |
| Linking this library statically or dynamically with other modules is
 | |
| making a combined work based on this library.  Thus, the terms and
 | |
| conditions of the GNU General Public License cover the whole
 | |
| combination.
 | |
| 
 | |
| As a special exception, the copyright holders of this library give you
 | |
| permission to link this library with independent modules to produce an
 | |
| executable, regardless of the license terms of these independent
 | |
| modules, and to copy and distribute the resulting executable under
 | |
| terms of your choice, provided that you also meet, for each linked
 | |
| independent module, the terms and conditions of the license of that
 | |
| module.  An independent module is a module which is not derived from
 | |
| or based on this library.  If you modify this library, you may extend
 | |
| this exception to your version of the library, but you are not
 | |
| obligated to do so.  If you do not wish to do so, delete this
 | |
| exception statement from your version. */
 | |
| 
 | |
| 
 | |
| package java.security.cert;
 | |
| 
 | |
| import java.math.BigInteger;
 | |
| import java.security.Principal;
 | |
| import java.util.Date;
 | |
| import java.util.List;
 | |
| 
 | |
| /**
 | |
|  * X509Certificate is the abstract class for X.509 certificates.
 | |
|  * This provides a stanard class interface for accessing all
 | |
|  * the attributes of X.509 certificates.
 | |
|  *
 | |
|  * <p>In June 1996, the basic X.509 v3 format was finished by
 | |
|  * ISO/IEC and ANSI X.9. The ASN.1 DER format is below:
 | |
|  *
 | |
|  * <blockquote><pre>
 | |
|  * Certificate  ::=  SEQUENCE  {
 | |
|  *   tbsCertificate       TBSCertificate,
 | |
|  *   signatureAlgorithm   AlgorithmIdentifier,
 | |
|  *   signatureValue       BIT STRING  }
 | |
|  * </pre></blockquote>
 | |
|  *
 | |
|  * <p>These certificates are widely used in various Internet
 | |
|  * protocols to support authentication. It is used in
 | |
|  * Privacy Enhanced Mail (PEM), Transport Layer Security (TLS),
 | |
|  * Secure Sockets Layer (SSL), code signing for trusted software
 | |
|  * distribution, and Secure Electronic Transactions (SET).
 | |
|  *
 | |
|  * <p>The certificates are managed and vouched for by
 | |
|  * <I>Certificate Authorities</I> (CAs). CAs are companies or
 | |
|  * groups that create certificates by placing the data in the
 | |
|  * X.509 certificate format and signing it with their private
 | |
|  * key. CAs serve as trusted third parties by certifying that
 | |
|  * the person or group specified in the certificate is who
 | |
|  * they say they are.
 | |
|  *
 | |
|  * <p>The ASN.1 defintion for <I>tbsCertificate</I> is
 | |
|  *
 | |
|  * <blockquote><pre>
 | |
|  * TBSCertificate  ::=  SEQUENCE  {
 | |
|  *   version         [0]  EXPLICIT Version DEFAULT v1,
 | |
|  *   serialNumber         CertificateSerialNumber,
 | |
|  *   signature            AlgorithmIdentifier,
 | |
|  *   issuer               Name,
 | |
|  *   validity             Validity,
 | |
|  *   subject              Name,
 | |
|  *   subjectPublicKeyInfo SubjectPublicKeyInfo,
 | |
|  *   issuerUniqueID  [1]  IMPLICIT UniqueIdentifier OPTIONAL,
 | |
|  *                        -- If present, version shall be v2 or v3
 | |
|  *   subjectUniqueID [2]  IMPLICIT UniqueIdentifier OPTIONAL,
 | |
|  *                        -- If present, version shall be v2 or v3
 | |
|  *   extensions      [3]  EXPLICIT Extensions OPTIONAL
 | |
|  *                        -- If present, version shall be v3
 | |
|  * }
 | |
|  *
 | |
|  * Version  ::=  INTEGER  {  v1(0), v2(1), v3(2)  }
 | |
|  *
 | |
|  * CertificateSerialNumber  ::=  INTEGER
 | |
|  *
 | |
|  * Validity ::= SEQUENCE {
 | |
|  *   notBefore      Time,
 | |
|  *   notAfter       Time }
 | |
|  *
 | |
|  * Time ::= CHOICE {
 | |
|  *   utcTime        UTCTime,
 | |
|  *   generalTime    GeneralizedTime }
 | |
|  *
 | |
|  * UniqueIdentifier  ::=  BIT STRING
 | |
|  *
 | |
|  * SubjectPublicKeyInfo  ::=  SEQUENCE  {
 | |
|  *   algorithm            AlgorithmIdentifier,
 | |
|  *   subjectPublicKey     BIT STRING  }
 | |
|  *
 | |
|  * Extensions  ::=  SEQUENCE SIZE (1..MAX) OF Extension
 | |
|  *
 | |
|  * Extension  ::=  SEQUENCE  {
 | |
|  *   extnID      OBJECT IDENTIFIER,
 | |
|  *   critical    BOOLEAN DEFAULT FALSE,
 | |
|  *   extnValue   OCTET STRING  }
 | |
|  * </pre></blockquote>
 | |
|  *
 | |
|  * Certificates are created with the CertificateFactory.
 | |
|  *
 | |
|  * <p>References:
 | |
|  *
 | |
|  * <ol>
 | |
|  * <li>Olivier Dubuisson, Philippe Fouquart (Translator) <i>ASN.1 -
 | |
|  * Communication between heterogeneous systems</i>, (C) September 2000,
 | |
|  * Morgan Kaufmann Publishers, ISBN 0-12-6333361-0. Available on-line at
 | |
|  * <a
 | |
|  * href="http://www.oss.com/asn1/dubuisson.html">http://www.oss.com/asn1/dubuisson.html</a></li>
 | |
|  * <li>R. Housley et al, <i><a href="http://www.ietf.org/rfc/rfc3280.txt">RFC
 | |
|  * 3280: Internet X.509 Public Key Infrastructure Certificate and CRL
 | |
|  * Profile</a></i>.</li>
 | |
|  * </ol>
 | |
|  *
 | |
|  * @since 1.2
 | |
|  * @author Mark Benvenuto
 | |
|  * @author Casey Marshall (rsdio@metastatic.org)
 | |
|  */
 | |
| public abstract class X509Certificate
 | |
|   extends Certificate
 | |
|   implements X509Extension
 | |
| {
 | |
|   private static final long serialVersionUID = -2491127588187038216L;
 | |
| 
 | |
|   /**
 | |
|    * Constructs a new certificate of the specified type.
 | |
|    */
 | |
|   protected X509Certificate()
 | |
|   {
 | |
|     super( "X.509" );
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|      Checks the validity of the X.509 certificate. It is valid
 | |
|      if the current date and time are within the period specified
 | |
|      by the certificate.
 | |
| 
 | |
|      The ASN.1 DER encoding is:
 | |
| 
 | |
|      validity             Validity,
 | |
| 
 | |
|      Validity ::= SEQUENCE {
 | |
|      notBefore      Time,
 | |
|      notAfter       Time }
 | |
| 
 | |
|      Time ::= CHOICE {
 | |
|      utcTime        UTCTime,
 | |
|      generalTime    GeneralizedTime }
 | |
| 
 | |
|      Consult rfc2459 for more information.
 | |
| 
 | |
|      @throws CertificateExpiredException if the certificate expired
 | |
|      @throws CertificateNotYetValidException if the certificate is
 | |
|      not yet valid
 | |
|   */
 | |
|   public abstract void checkValidity()
 | |
|     throws CertificateExpiredException,
 | |
|     CertificateNotYetValidException;
 | |
| 
 | |
|   /**
 | |
|      Checks the validity of the X.509 certificate for the
 | |
|      specified time and date. It is valid if the specified
 | |
|      date and time are within the period specified by
 | |
|      the certificate.
 | |
| 
 | |
|      @throws CertificateExpiredException if the certificate expired
 | |
|      based on the date
 | |
|      @throws CertificateNotYetValidException if the certificate is
 | |
|      not yet valid based on the date
 | |
|   */
 | |
|   public abstract void checkValidity(Date date)
 | |
|     throws CertificateExpiredException,
 | |
|     CertificateNotYetValidException;
 | |
| 
 | |
|   /**
 | |
|      Returns the version of this certificate.
 | |
| 
 | |
|      The ASN.1 DER encoding is:
 | |
| 
 | |
|      version         [0]  EXPLICIT Version DEFAULT v1,
 | |
| 
 | |
|      Version  ::=  INTEGER  {  v1(0), v2(1), v3(2)  }
 | |
| 
 | |
|      Consult rfc2459 for more information.
 | |
| 
 | |
|      @return version number of certificate
 | |
|   */
 | |
|   public abstract int getVersion();
 | |
| 
 | |
|   /**
 | |
|      Gets the serial number for serial Number in
 | |
|      this Certifcate. It must be a unique number
 | |
|      unique other serial numbers from the granting CA.
 | |
| 
 | |
|      The ASN.1 DER encoding is:
 | |
| 
 | |
|      serialNumber         CertificateSerialNumber,
 | |
| 
 | |
|      CertificateSerialNumber  ::=  INTEGER
 | |
| 
 | |
|      Consult rfc2459 for more information.
 | |
| 
 | |
|      @return the serial number for this X509CRLEntry.
 | |
|   */
 | |
|   public abstract BigInteger getSerialNumber();
 | |
| 
 | |
|   /**
 | |
|      Returns the issuer (issuer distinguished name) of the
 | |
|      Certificate. The issuer is the entity who signed
 | |
|      and issued the Certificate.
 | |
| 
 | |
|      The ASN.1 DER encoding is:
 | |
| 
 | |
|      issuer                  Name,
 | |
| 
 | |
|      Name ::= CHOICE {
 | |
|      RDNSequence }
 | |
| 
 | |
|      RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
 | |
| 
 | |
|      RelativeDistinguishedName ::=
 | |
|      SET OF AttributeTypeAndValue
 | |
| 
 | |
|      AttributeTypeAndValue ::= SEQUENCE {
 | |
|      type     AttributeType,
 | |
|      value    AttributeValue }
 | |
| 
 | |
|      AttributeType ::= OBJECT IDENTIFIER
 | |
| 
 | |
|      AttributeValue ::= ANY DEFINED BY AttributeType
 | |
| 
 | |
|      DirectoryString ::= CHOICE {
 | |
|      teletexString           TeletexString (SIZE (1..MAX)),
 | |
|      printableString         PrintableString (SIZE (1..MAX)),
 | |
|      universalString         UniversalString (SIZE (1..MAX)),
 | |
|      utf8String              UTF8String (SIZE (1.. MAX)),
 | |
|      bmpString               BMPString (SIZE (1..MAX)) }
 | |
| 
 | |
|      Consult rfc2459 for more information.
 | |
| 
 | |
|      @return the issuer in the Principal class
 | |
|   */
 | |
|   public abstract Principal getIssuerDN();
 | |
| 
 | |
|   /**
 | |
|      Returns the subject (subject distinguished name) of the
 | |
|      Certificate. The subject is the entity who the Certificate
 | |
|      identifies.
 | |
| 
 | |
|      The ASN.1 DER encoding is:
 | |
| 
 | |
|      subject              Name,
 | |
| 
 | |
|      Consult rfc2459 for more information.
 | |
| 
 | |
|      @return the issuer in the Principal class
 | |
|   */
 | |
|   public abstract Principal getSubjectDN();
 | |
| 
 | |
|   /**
 | |
|      Returns the date that this certificate is not to be used
 | |
|      before, <I>notBefore</I>.
 | |
| 
 | |
|      The ASN.1 DER encoding is:
 | |
| 
 | |
|      validity             Validity,
 | |
| 
 | |
|      Validity ::= SEQUENCE {
 | |
|      notBefore      Time,
 | |
|      notAfter       Time }
 | |
| 
 | |
|      Time ::= CHOICE {
 | |
|      utcTime        UTCTime,
 | |
|      generalTime    GeneralizedTime }
 | |
| 
 | |
|      Consult rfc2459 for more information.
 | |
| 
 | |
|      @return the date <I>notBefore</I>
 | |
|   */
 | |
|   public abstract Date getNotBefore();
 | |
| 
 | |
|   /**
 | |
|      Returns the date that this certificate is not to be used
 | |
|      after, <I>notAfter</I>.
 | |
| 
 | |
|      @return the date <I>notAfter</I>
 | |
|   */
 | |
|   public abstract Date getNotAfter();
 | |
| 
 | |
| 
 | |
|   /**
 | |
|      Returns the <I>tbsCertificate</I> from the certificate.
 | |
| 
 | |
|      @return the DER encoded tbsCertificate
 | |
| 
 | |
|      @throws CertificateEncodingException if encoding error occurred
 | |
|   */
 | |
|   public abstract byte[] getTBSCertificate() throws CertificateEncodingException;
 | |
| 
 | |
|   /**
 | |
|      Returns the signature in its raw DER encoded format.
 | |
| 
 | |
|      The ASN.1 DER encoding is:
 | |
| 
 | |
|      signatureValue       BIT STRING
 | |
| 
 | |
|      Consult rfc2459 for more information.
 | |
| 
 | |
|      @return byte array representing signature
 | |
|   */
 | |
|   public abstract byte[] getSignature();
 | |
| 
 | |
|   /**
 | |
|      Returns the signature algorithm used to sign the CRL.
 | |
|      An examples is "SHA-1/DSA".
 | |
| 
 | |
|      The ASN.1 DER encoding is:
 | |
| 
 | |
|      signatureAlgorithm   AlgorithmIdentifier,
 | |
| 
 | |
|      AlgorithmIdentifier  ::=  SEQUENCE  {
 | |
|      algorithm               OBJECT IDENTIFIER,
 | |
|      parameters              ANY DEFINED BY algorithm OPTIONAL  }
 | |
| 
 | |
|      Consult rfc2459 for more information.
 | |
| 
 | |
|      The algorithm name is determined from the OID.
 | |
| 
 | |
|      @return a string with the signature algorithm name
 | |
|   */
 | |
|   public abstract String getSigAlgName();
 | |
| 
 | |
| 
 | |
|   /**
 | |
|      Returns the OID for the signature algorithm used.
 | |
|      Example "1.2.840.10040.4.3" is return for SHA-1 with DSA.\
 | |
| 
 | |
|      The ASN.1 DER encoding for the example is:
 | |
| 
 | |
|      id-dsa-with-sha1 ID  ::=  {
 | |
|      iso(1) member-body(2) us(840) x9-57 (10040)
 | |
|      x9cm(4) 3 }
 | |
| 
 | |
|      Consult rfc2459 for more information.
 | |
| 
 | |
|      @return a string containing the OID.
 | |
|   */
 | |
|   public abstract String getSigAlgOID();
 | |
| 
 | |
| 
 | |
|   /**
 | |
|      Returns the AlgorithmParameters in the encoded form
 | |
|      for the signature algorithm used.
 | |
| 
 | |
|      If access to the parameters is need, create an
 | |
|      instance of AlgorithmParameters.
 | |
| 
 | |
|      @return byte array containing algorithm parameters, null
 | |
|      if no parameters are present in certificate
 | |
|   */
 | |
|   public abstract byte[] getSigAlgParams();
 | |
| 
 | |
| 
 | |
|   /**
 | |
|      Returns the issuer unique ID for this certificate.
 | |
| 
 | |
|      The ASN.1 DER encoding is:
 | |
| 
 | |
|      issuerUniqueID  [1]  IMPLICIT UniqueIdentifier OPTIONAL,
 | |
|      -- If present, version shall be v2 or v3
 | |
| 
 | |
|      UniqueIdentifier  ::=  BIT STRING
 | |
| 
 | |
|      Consult rfc2459 for more information.
 | |
| 
 | |
|      @return bit representation of <I>issuerUniqueID</I>
 | |
|   */
 | |
|   public abstract boolean[] getIssuerUniqueID();
 | |
| 
 | |
|   /**
 | |
|      Returns the subject unique ID for this certificate.
 | |
| 
 | |
|      The ASN.1 DER encoding is:
 | |
| 
 | |
|      subjectUniqueID [2]  IMPLICIT UniqueIdentifier OPTIONAL,
 | |
|      -- If present, version shall be v2 or v3
 | |
| 
 | |
|      UniqueIdentifier  ::=  BIT STRING
 | |
| 
 | |
|      Consult rfc2459 for more information.
 | |
| 
 | |
|      @return bit representation of <I>subjectUniqueID</I>
 | |
|   */
 | |
|   public abstract boolean[] getSubjectUniqueID();
 | |
| 
 | |
|   /**
 | |
|      Returns a boolean array representing the <I>KeyUsage</I>
 | |
|      extension for the certificate. The KeyUsage (OID = 2.5.29.15)
 | |
|      defines the purpose of the key in the certificate.
 | |
| 
 | |
|      The ASN.1 DER encoding is:
 | |
| 
 | |
|      id-ce-keyUsage OBJECT IDENTIFIER ::=  { id-ce 15 }
 | |
| 
 | |
|      KeyUsage ::= BIT STRING {
 | |
|      digitalSignature        (0),
 | |
|      nonRepudiation          (1),
 | |
|      keyEncipherment         (2),
 | |
|      dataEncipherment        (3),
 | |
|      keyAgreement            (4),
 | |
|      keyCertSign             (5),
 | |
|      cRLSign                 (6),
 | |
|      encipherOnly            (7),
 | |
|      decipherOnly            (8) }
 | |
| 
 | |
|      Consult rfc2459 for more information.
 | |
| 
 | |
|      @return bit representation of <I>KeyUsage</I>
 | |
|   */
 | |
|   public abstract boolean[] getKeyUsage();
 | |
| 
 | |
|   /**
 | |
|      Returns the certificate constraints path length from the
 | |
|      critical BasicConstraints extension, (OID = 2.5.29.19).
 | |
| 
 | |
|      The basic constraints extensions is used to determine if
 | |
|      the subject of the certificate is a Certificate Authority (CA)
 | |
|      and how deep the certification path may exist. The
 | |
|      <I>pathLenConstraint</I> only takes affect if <I>cA</I>
 | |
|      is set to true. "A value of zero indicates that only an
 | |
|      end-entity certificate may follow in the path." (rfc2459)
 | |
| 
 | |
|      The ASN.1 DER encoding is:
 | |
| 
 | |
|      id-ce-basicConstraints OBJECT IDENTIFIER ::=  { id-ce 19 }
 | |
| 
 | |
|      BasicConstraints ::= SEQUENCE {
 | |
|      cA                      BOOLEAN DEFAULT FALSE,
 | |
|      pathLenConstraint       INTEGER (0..MAX) OPTIONAL }
 | |
| 
 | |
|      Consult rfc2459 for more information.
 | |
| 
 | |
|      @return the length of the path constraint if BasicConstraints
 | |
|      is present and cA is TRUE. Otherwise returns -1.
 | |
|   */
 | |
|   public abstract int getBasicConstraints();
 | |
| 
 | |
|   // 1.4 instance methods.
 | |
|   // ------------------------------------------------------------------------
 | |
| 
 | |
|   /**
 | |
|    * Returns the <code>ExtendedKeyUsage</code> extension of this
 | |
|    * certificate, or null if there is no extension present. The returned
 | |
|    * value is a {@link java.util.List} strings representing the object
 | |
|    * identifiers of the extended key usages. This extension has the OID
 | |
|    * 2.5.29.37.
 | |
|    *
 | |
|    * <p>The ASN.1 definition for this extension is:
 | |
|    *
 | |
|    * <blockquote><pre>
 | |
|    * ExtendedKeyUsage ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId
 | |
|    *
 | |
|    * KeyPurposeId ::= OBJECT IDENTIFIER
 | |
|    * </pre></blockquote>
 | |
|    *
 | |
|    * @return The list of extension OIDs, or null if there are none
 | |
|    * present in this certificate.
 | |
|    * @throws CertificateParsingException If this extension cannot be
 | |
|    * parsed from its encoded form.
 | |
|    */
 | |
|   public java.util.List<String> getExtendedKeyUsage()
 | |
|     throws CertificateParsingException
 | |
|   {
 | |
|     throw new UnsupportedOperationException();
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * Returns the alternative names for this certificate's subject (the
 | |
|    * owner), or null if there are none.
 | |
|    *
 | |
|    * <p>This is an X.509 extension with OID 2.5.29.17 and is defined by
 | |
|    * the ASN.1 construction:
 | |
|    *
 | |
|    * <blockquote><pre>
 | |
|    * SubjectAltNames ::= GeneralNames
 | |
|    *
 | |
|    * GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
 | |
|    *
 | |
|    * GeneralName ::= CHOICE {
 | |
|    *   otherName                 [0]   OtherName,
 | |
|    *   rfc822Name                [1]   IA5String,
 | |
|    *   dNSName                   [2]   IA5String,
 | |
|    *   x400Address               [3]   ORAddress,
 | |
|    *   directoryName             [4]   Name,
 | |
|    *   ediPartyName              [5]   EDIPartyName,
 | |
|    *   uniformResourceIdentifier [6]   IA5String,
 | |
|    *   iPAddress                 [7]   OCTET STRING,
 | |
|    *   registeredID              [8]   OBJECT IDENTIFIER
 | |
|    * }
 | |
|    * </pre></blockquote>
 | |
|    *
 | |
|    * <p>The returned collection contains one or more two-element Lists,
 | |
|    * with the first object being an Integer representing the choice
 | |
|    * above (with value 0 through 8) and the second being an (a) String
 | |
|    * if the <code>GeneralName</code> is a rfc822Name, dNSName,
 | |
|    * uniformResourceIdentifier, iPAddress, or registeredID, or (b) a
 | |
|    * byte array of the DER encoded form for any others.
 | |
|    *
 | |
|    * @return The collection of alternative names, or null if there are
 | |
|    * none.
 | |
|    * @throws CertificateParsingException If the encoded extension cannot
 | |
|    * be parsed.
 | |
|    * @since JDK 1.4
 | |
|    */
 | |
|   public java.util.Collection<List<?>> getSubjectAlternativeNames()
 | |
|     throws CertificateParsingException
 | |
|   {
 | |
|     throw new UnsupportedOperationException();
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * Returns the alternative names for this certificate's issuer, or
 | |
|    * null if there are none.
 | |
|    *
 | |
|    * <p>This is an X.509 extension with OID 2.5.29.18, and is defined by
 | |
|    * the ASN.1 construction:
 | |
|    *
 | |
|    * <blockquote><pre>
 | |
|    * IssuerAltNames ::= GeneralNames
 | |
|    * </pre></blockquote>
 | |
|    *
 | |
|    * <p>The <code>GeneralNames</code> construct and the form of the
 | |
|    * returned collection are the same as with {@link
 | |
|    * #getSubjectAlternativeNames()}.
 | |
|    *
 | |
|    * @return The collection of alternative names, or null if there are
 | |
|    * none.
 | |
|    * @throws CertificateParsingException If the encoded extension cannot
 | |
|    * be parsed.
 | |
|    * @since JDK 1.4
 | |
|    */
 | |
|   public java.util.Collection<List<?>> getIssuerAlternativeNames()
 | |
|     throws CertificateParsingException
 | |
|   {
 | |
|     throw new UnsupportedOperationException();
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * Returns the X.500 distinguished name of this certificate's subject.
 | |
|    *
 | |
|    * @return The subject's X.500 distinguished name.
 | |
|    * @since JDK 1.4
 | |
|    */
 | |
|   public javax.security.auth.x500.X500Principal getSubjectX500Principal()
 | |
|   {
 | |
|     throw new UnsupportedOperationException();
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * Returns the X.500 distinguished name of this certificate's issuer.
 | |
|    *
 | |
|    * @return The issuer's X.500 distinguished name.
 | |
|    * @since JDK 1.4
 | |
|    */
 | |
|   public javax.security.auth.x500.X500Principal getIssuerX500Principal()
 | |
|   {
 | |
|     throw new UnsupportedOperationException();
 | |
|   }
 | |
| }
 |