FOREIGN MODULE sun_security_provider_certpath;

IMPORT
    java_util := "java.util",
    java_lang := "java.lang",
    java_security_cert := "java.security.cert",
    sun_security_x509 := "sun.security.x509",
    sun_security_util := "sun.security.util",
    java_security := "java.security",
    javax_security_auth_x500 := "javax.security.auth.x500",
    java_math := "java.math",
    java_io := "java.io",
    java_net := "java.net",
    javax_naming_directory := "javax.naming.directory";

TYPE

  AdjacencyList* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)    (* Typebound Procedures *)
                   STATIC
                     PROCEDURE Init*(p0 : java_util.List) : AdjacencyList,CONSTRUCTOR;
                   END;

  AlgorithmChecker* = POINTER TO RECORD (java_security_cert.PKIXCertPathChecker)    (* Typebound Procedures *)
                      STATIC
                        PROCEDURE check*(p0 : java_security_cert.Certificate);
                      END;

  Builder* = POINTER TO ABSTRACT RECORD (java_lang.Object)
             END;

  BuildStep* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)    (* Typebound Procedures *)
               STATIC
                 BACK*     = 2;
                 FAIL*     = 4;
                 FOLLOW*   = 3;
                 POSSIBLE* = 1;
                 SUCCEED*  = 5;
                 PROCEDURE Init*(p0 : Vertex;
                                 p1 : INTEGER) : BuildStep,CONSTRUCTOR;
               END;

  CertId* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)    (* Typebound Procedures *)
            STATIC
              PROCEDURE Init*(p0 : sun_security_util.DerInputStream) : CertId,CONSTRUCTOR;
              PROCEDURE Init*(p0 : java_security_cert.X509Certificate;
                              p1 : sun_security_x509.SerialNumber) : CertId,CONSTRUCTOR;
            END;

  CertPathHelper* = POINTER TO ABSTRACT RECORD (java_lang.Object)    (* Typebound Procedures *)
                    STATIC
                      instance! : CertPathHelper;
                      PROCEDURE Init!() : CertPathHelper,CONSTRUCTOR;
                    END;

  CollectionCertStore* = POINTER TO EXTENSIBLE RECORD (java_security_cert.CertStoreSpi)    (* Typebound Procedures *)
                         STATIC
                           PROCEDURE Init*(p0 : java_security_cert.CertStoreParameters) : CollectionCertStore,CONSTRUCTOR;
                         END;

  IndexedCollectionCertStore* = POINTER TO EXTENSIBLE RECORD (java_security_cert.CertStoreSpi)    (* Typebound Procedures *)
                                STATIC
                                  PROCEDURE Init*(p0 : java_security_cert.CertStoreParameters) : IndexedCollectionCertStore,CONSTRUCTOR;
                                END;

  LDAPCertStore* = POINTER TO EXTENSIBLE RECORD (java_security_cert.CertStoreSpi)    (* Typebound Procedures *)
                   STATIC
                     PROCEDURE Init*(p0 : java_security_cert.CertStoreParameters) : LDAPCertStore,CONSTRUCTOR;
                   END;

  OCSP* = POINTER TO RECORD (java_lang.Object)
          STATIC
            PROCEDURE check*(p0 : java_security_cert.X509Certificate;
                             p1 : java_security_cert.X509Certificate;
                             p2 : java_net.URI;
                             p3 : java_security_cert.X509Certificate;
                             p4 : java_util.Date) : OCSP$RevocationStatus;
            PROCEDURE check*(p0 : java_security_cert.X509Certificate;
                             p1 : java_security_cert.X509Certificate) : OCSP$RevocationStatus;
            PROCEDURE getResponderURI*(p0 : java_security_cert.X509Certificate) : java_net.URI;
          END;

  OCSP$RevocationStatus* = POINTER TO INTERFACE RECORD (java_lang.Object)    (* Typebound Procedures *)
                           END;

  OCSP$RevocationStatus$CertStatus* = POINTER TO RECORD (java_lang.Enum)
                                      STATIC
                                        GOOD*    : OCSP$RevocationStatus$CertStatus;
                                        REVOKED* : OCSP$RevocationStatus$CertStatus;
                                        UNKNOWN* : OCSP$RevocationStatus$CertStatus;
                                        PROCEDURE valueOf*(p0 : java_lang.String) : OCSP$RevocationStatus$CertStatus;
                                        PROCEDURE values*() : POINTER TO ARRAY OF OCSP$RevocationStatus$CertStatus;
                                      END;

  OCSP$RevocationStatus$Reason* = POINTER TO RECORD (java_lang.Enum)
                                  STATIC
                                    AA_COMPROMISE*          : OCSP$RevocationStatus$Reason;
                                    AFFILIATION_CHANGED*    : OCSP$RevocationStatus$Reason;
                                    CA_COMPROMISE*          : OCSP$RevocationStatus$Reason;
                                    CERTIFICATE_HOLD*       : OCSP$RevocationStatus$Reason;
                                    CESSATION_OF_OPERATION* : OCSP$RevocationStatus$Reason;
                                    KEY_COMPROMISE*         : OCSP$RevocationStatus$Reason;
                                    PRIVILEGE_WITHDRAWN*    : OCSP$RevocationStatus$Reason;
                                    REMOVE_FROM_CRL*        : OCSP$RevocationStatus$Reason;
                                    SUPERSEDED*             : OCSP$RevocationStatus$Reason;
                                    UNSPECIFIED*            : OCSP$RevocationStatus$Reason;
                                    UNUSED*                 : OCSP$RevocationStatus$Reason;
                                    PROCEDURE valueOf*(p0 : java_lang.String) : OCSP$RevocationStatus$Reason;
                                    PROCEDURE values*() : POINTER TO ARRAY OF OCSP$RevocationStatus$Reason;
                                  END;

  OCSPResponse* = POINTER TO RECORD (java_lang.Object)
                  END;

  OCSPResponse$ResponseStatus* = POINTER TO RECORD (java_lang.Enum)
                                 STATIC
                                   INTERNAL_ERROR*    : OCSPResponse$ResponseStatus;
                                   MALFORMED_REQUEST* : OCSPResponse$ResponseStatus;
                                   SIG_REQUIRED*      : OCSPResponse$ResponseStatus;
                                   SUCCESSFUL*        : OCSPResponse$ResponseStatus;
                                   TRY_LATER*         : OCSPResponse$ResponseStatus;
                                   UNAUTHORIZED*      : OCSPResponse$ResponseStatus;
                                   UNUSED*            : OCSPResponse$ResponseStatus;
                                   PROCEDURE valueOf*(p0 : java_lang.String) : OCSPResponse$ResponseStatus;
                                   PROCEDURE values*() : POINTER TO ARRAY OF OCSPResponse$ResponseStatus;
                                 END;

  OCSPResponse$UnreliableException* = POINTER TO EXTENSIBLE RECORD (java_security_cert.CertificateException)
                                      END;

  PKIXCertPathValidator* = POINTER TO EXTENSIBLE RECORD (java_security_cert.CertPathValidatorSpi)    (* Typebound Procedures *)
                           STATIC
                             PROCEDURE Init*() : PKIXCertPathValidator,CONSTRUCTOR;
                           END;

  SunCertPathBuilder* = POINTER TO RECORD (java_security_cert.CertPathBuilderSpi)    (* Typebound Procedures *)
                        STATIC
                          PROCEDURE Init*() : SunCertPathBuilder,CONSTRUCTOR;
                        END;

  SunCertPathBuilderException* = POINTER TO EXTENSIBLE RECORD (java_security_cert.CertPathBuilderException)    (* Typebound Procedures *)
                                 STATIC
                                   PROCEDURE Init*(p0 : java_lang.Throwable) : SunCertPathBuilderException,CONSTRUCTOR;
                                   PROCEDURE Init*(p0 : java_lang.String;
                                                   p1 : java_lang.Throwable) : SunCertPathBuilderException,CONSTRUCTOR;
                                   PROCEDURE Init*() : SunCertPathBuilderException,CONSTRUCTOR;
                                   PROCEDURE Init*(p0 : java_lang.String) : SunCertPathBuilderException,CONSTRUCTOR;
                                 END;

  SunCertPathBuilderParameters* = POINTER TO EXTENSIBLE RECORD (java_security_cert.PKIXBuilderParameters)    (* Typebound Procedures *)
                                  STATIC
                                    PROCEDURE Init*(p0 : java_security.KeyStore;
                                                    p1 : java_security_cert.CertSelector) : SunCertPathBuilderParameters,CONSTRUCTOR;
                                    PROCEDURE Init*(p0 : java_util.Set;
                                                    p1 : java_security_cert.CertSelector) : SunCertPathBuilderParameters,CONSTRUCTOR;
                                  END;

  SunCertPathBuilderResult* = POINTER TO EXTENSIBLE RECORD (java_security_cert.PKIXCertPathBuilderResult)    (* Typebound Procedures *)
                              END;

  Vertex* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)    (* Typebound Procedures *)
            END;

  X509CertificatePair* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)    (* Typebound Procedures *)
                         STATIC
                           PROCEDURE clearCache*();
                           PROCEDURE generateCertificatePair*(IN  p0 : ARRAY OF BYTE) : X509CertificatePair;
                           PROCEDURE Init*() : X509CertificatePair,CONSTRUCTOR;
                           PROCEDURE Init*(p0 : java_security_cert.X509Certificate;
                                           p1 : java_security_cert.X509Certificate) : X509CertificatePair,CONSTRUCTOR;
                         END;

  X509CertPath* = POINTER TO EXTENSIBLE RECORD (java_security_cert.CertPath)    (* Typebound Procedures *)
                  STATIC
                    PROCEDURE getEncodingsStatic*() : java_util.Iterator;
                    PROCEDURE Init*(p0 : java_io.InputStream;
                                    p1 : java_lang.String) : X509CertPath,CONSTRUCTOR;
                    PROCEDURE Init*(p0 : java_util.List) : X509CertPath,CONSTRUCTOR;
                    PROCEDURE Init*(p0 : java_io.InputStream) : X509CertPath,CONSTRUCTOR;
                  END;




PROCEDURE (self:AdjacencyList) iterator*() : java_util.Iterator,NEW,EXTENSIBLE;

PROCEDURE (self:AdjacencyList) toString*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:AlgorithmChecker) check*(p0 : java_security_cert.Certificate;
                                         p1 : java_util.Collection),EXTENSIBLE;

PROCEDURE (self:AlgorithmChecker) getSupportedExtensions*() : java_util.Set,EXTENSIBLE;

PROCEDURE (self:AlgorithmChecker) init*(p0 : BOOLEAN),EXTENSIBLE;

PROCEDURE (self:AlgorithmChecker) isForwardCheckingSupported*() : BOOLEAN,EXTENSIBLE;

PROCEDURE (self:BuildStep) fullToString*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:BuildStep) getCertificate*() : java_security_cert.X509Certificate,NEW,EXTENSIBLE;

PROCEDURE (self:BuildStep) getIssuerName*(p0 : java_lang.String) : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:BuildStep) getIssuerName*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:BuildStep) getResult*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:BuildStep) getSubjectName*(p0 : java_lang.String) : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:BuildStep) getSubjectName*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:BuildStep) getThrowable*() : java_lang.Throwable,NEW,EXTENSIBLE;

PROCEDURE (self:BuildStep) getVertex*() : Vertex,NEW,EXTENSIBLE;

PROCEDURE (self:BuildStep) resultToString*(p0 : INTEGER) : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:BuildStep) toString*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:BuildStep) verboseToString*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:CertId) encode*(p0 : sun_security_util.DerOutputStream),NEW,EXTENSIBLE;

PROCEDURE (self:CertId) equals*(p0 : java_lang.Object) : BOOLEAN,EXTENSIBLE;

PROCEDURE (self:CertId) getHashAlgorithm*() : sun_security_x509.AlgorithmId,NEW,EXTENSIBLE;

PROCEDURE (self:CertId) getIssuerKeyHash*() : POINTER TO ARRAY OF BYTE,NEW,EXTENSIBLE;

PROCEDURE (self:CertId) getIssuerNameHash*() : POINTER TO ARRAY OF BYTE,NEW,EXTENSIBLE;

PROCEDURE (self:CertId) getSerialNumber*() : java_math.BigInteger,NEW,EXTENSIBLE;

PROCEDURE (self:CertId) hashCode*() : INTEGER,EXTENSIBLE;

PROCEDURE (self:CertId) toString*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:CertPathHelper) implAddIssuer!(p0 : java_security_cert.X509CRLSelector;
                                               p1 : javax_security_auth_x500.X500Principal),NEW,ABSTRACT;

PROCEDURE (self:CertPathHelper) implGetCA!(p0 : java_security_cert.TrustAnchor) : javax_security_auth_x500.X500Principal,NEW,ABSTRACT;

PROCEDURE (self:CertPathHelper) implGetIssuer!(p0 : java_security_cert.X509CertSelector) : javax_security_auth_x500.X500Principal,NEW,ABSTRACT;

PROCEDURE (self:CertPathHelper) implGetIssuers!(p0 : java_security_cert.X509CRLSelector) : java_util.Collection,NEW,ABSTRACT;

PROCEDURE (self:CertPathHelper) implGetSubject!(p0 : java_security_cert.X509CertSelector) : javax_security_auth_x500.X500Principal,NEW,ABSTRACT;

PROCEDURE (self:CertPathHelper) implSetDateAndTime!(p0 : java_security_cert.X509CRLSelector;
                                                    p1 : java_util.Date;
                                                    p2 : LONGINT),NEW,ABSTRACT;

PROCEDURE (self:CertPathHelper) implSetIssuer!(p0 : java_security_cert.X509CertSelector;
                                               p1 : javax_security_auth_x500.X500Principal),NEW,ABSTRACT;

PROCEDURE (self:CertPathHelper) implSetPathToNames!(p0 : java_security_cert.X509CertSelector;
                                                    p1 : java_util.Set),NEW,ABSTRACT;

PROCEDURE (self:CertPathHelper) implSetSubject!(p0 : java_security_cert.X509CertSelector;
                                                p1 : javax_security_auth_x500.X500Principal),NEW,ABSTRACT;

PROCEDURE (self:CollectionCertStore) engineGetCertificates*(p0 : java_security_cert.CertSelector) : java_util.Collection,EXTENSIBLE;

PROCEDURE (self:CollectionCertStore) engineGetCRLs*(p0 : java_security_cert.CRLSelector) : java_util.Collection,EXTENSIBLE;

PROCEDURE (self:IndexedCollectionCertStore) engineGetCertificates*(p0 : java_security_cert.CertSelector) : java_util.Collection,EXTENSIBLE;

PROCEDURE (self:IndexedCollectionCertStore) engineGetCRLs*(p0 : java_security_cert.CRLSelector) : java_util.Collection,EXTENSIBLE;

PROCEDURE (self:LDAPCertStore) engineGetCertificates*(p0 : java_security_cert.CertSelector) : java_util.Collection,EXTENSIBLE;

PROCEDURE (self:LDAPCertStore) engineGetCRLs*(p0 : java_security_cert.CRLSelector) : java_util.Collection,EXTENSIBLE;

PROCEDURE (self:OCSP$RevocationStatus) getCertStatus*() : OCSP$RevocationStatus$CertStatus,NEW,ABSTRACT;

PROCEDURE (self:OCSP$RevocationStatus) getRevocationReason*() : OCSP$RevocationStatus$Reason,NEW,ABSTRACT;

PROCEDURE (self:OCSP$RevocationStatus) getRevocationTime*() : java_util.Date,NEW,ABSTRACT;

PROCEDURE (self:PKIXCertPathValidator) engineValidate*(p0 : java_security_cert.CertPath;
                                                       p1 : java_security_cert.CertPathParameters) : java_security_cert.CertPathValidatorResult,EXTENSIBLE;

PROCEDURE (self:SunCertPathBuilder) engineBuild*(p0 : java_security_cert.CertPathParameters) : java_security_cert.CertPathBuilderResult,EXTENSIBLE;

PROCEDURE (self:SunCertPathBuilderException) getAdjacencyList*() : AdjacencyList,NEW,EXTENSIBLE;

PROCEDURE (self:SunCertPathBuilderParameters) getBuildForward*() : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:SunCertPathBuilderParameters) setBuildForward*(p0 : BOOLEAN),NEW,EXTENSIBLE;

PROCEDURE (self:SunCertPathBuilderParameters) toString*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:SunCertPathBuilderResult) getAdjacencyList*() : AdjacencyList,NEW,EXTENSIBLE;

PROCEDURE (self:Vertex) certToString*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:Vertex) getCertificate*() : java_security_cert.Certificate,NEW,EXTENSIBLE;

PROCEDURE (self:Vertex) getIndex*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:Vertex) getThrowable*() : java_lang.Throwable,NEW,EXTENSIBLE;

PROCEDURE (self:Vertex) indexToString*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:Vertex) moreToString*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:Vertex) throwableToString*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:Vertex) toString*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:X509CertificatePair) getEncoded*() : POINTER TO ARRAY OF BYTE,NEW,EXTENSIBLE;

PROCEDURE (self:X509CertificatePair) getForward*() : java_security_cert.X509Certificate,NEW,EXTENSIBLE;

PROCEDURE (self:X509CertificatePair) getReverse*() : java_security_cert.X509Certificate,NEW,EXTENSIBLE;

PROCEDURE (self:X509CertificatePair) setForward*(p0 : java_security_cert.X509Certificate),NEW,EXTENSIBLE;

PROCEDURE (self:X509CertificatePair) setReverse*(p0 : java_security_cert.X509Certificate),NEW,EXTENSIBLE;

PROCEDURE (self:X509CertificatePair) toString*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:X509CertPath) getCertificates*() : java_util.List,EXTENSIBLE;

PROCEDURE (self:X509CertPath) getEncoded*(p0 : java_lang.String) : POINTER TO ARRAY OF BYTE,EXTENSIBLE;

PROCEDURE (self:X509CertPath) getEncoded*() : POINTER TO ARRAY OF BYTE,EXTENSIBLE;

PROCEDURE (self:X509CertPath) getEncodings*() : java_util.Iterator,EXTENSIBLE;

END sun_security_provider_certpath.