<!--
 Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved.
 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.

 This code is free software; you can redistribute it and/or modify it
 under the terms of the GNU General Public License version 2 only, as
 published by the Free Software Foundation.  Oracle designates this
 particular file as subject to the "Classpath" exception as provided
 by Oracle in the LICENSE file that accompanied this code.

 This code 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
 version 2 for more details (a copy is included in the LICENSE file that
 accompanied this code).

 You should have received a copy of the GNU General Public License version
 2 along with this work; if not, write to the Free Software Foundation,
 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.

 Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 or visit www.oracle.com if you need additional information or have any
 questions.
-->

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<body bgcolor="white">

Provides classes and interfaces for parsing and managing
certificates, certificate revocation lists (CRLs), and 
certification paths. It contains support for X.509 v3 
certificates and X.509 v2 CRLs.

<h2>Package Specification</h2>

<ul>
  <li><a href="../../../../technotes/guides/security/crypto/CryptoSpec.html"><b>Cryptography
   Architecture</b></a>
  <li>RFC 3280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile
</ul>

<h2>Related Documentation</h2>

For information about X.509 certificates and CRLs, please see:
<ul>
  <li><a href="http://www.ietf.org/rfc/rfc3280.txt">
http://www.ietf.org/rfc/rfc3280.txt</a>
  <li><a href="../../../../technotes/guides/security/certpath/CertPathProgGuide.html">
PKI API Programmer's Guide</a>
  <li><a href="../../../../technotes/guides/security/cert3.html">
X.509 Certificates and CRLs</a>
</ul>

@since 1.2
</body>
</html>
