FOREIGN MODULE sun_security_validator;

IMPORT
    java_lang := "java.lang",
    java_util := "java.util",
    java_security_cert := "java.security.cert",
    java_security := "java.security",
    sun_security_util := "sun.security.util",
    java_io := "java.io";

TYPE

  KeyStores* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
               STATIC
                 PROCEDURE getTrustedCerts*(p0 : java_security.KeyStore) : java_util.Set;
               END;

  PKIXValidator* = POINTER TO RECORD (Validator)    (* Typebound Procedures *)
                   END;

  SimpleValidator* = POINTER TO RECORD (Validator)    (* Typebound Procedures *)
                     END;

  Validator* = POINTER TO ABSTRACT RECORD (java_lang.Object)    (* Typebound Procedures *)
               STATIC
                 TYPE_PKIX*               = "PKIX";
                 TYPE_SIMPLE*             = "Simple";
                 VAR_CODE_SIGNING*        = "code signing";
                 VAR_GENERIC*             = "generic";
                 VAR_JCE_SIGNING*         = "jce signing";
                 VAR_PLUGIN_CODE_SIGNING* = "plugin code signing";
                 VAR_TLS_CLIENT*          = "tls client";
                 VAR_TLS_SERVER*          = "tls server";
                 VAR_TSA_SERVER*          = "tsa server";
                 PROCEDURE getInstance*(p0 : java_lang.String;
                                        p1 : java_lang.String;
                                        p2 : java_security_cert.PKIXBuilderParameters) : Validator;
                 PROCEDURE getInstance*(p0 : java_lang.String;
                                        p1 : java_lang.String;
                                        p2 : java_util.Collection) : Validator;
                 PROCEDURE getInstance*(p0 : java_lang.String;
                                        p1 : java_lang.String;
                                        p2 : java_security.KeyStore) : Validator;
               END;

  ValidatorException* = POINTER TO EXTENSIBLE RECORD (java_security_cert.CertificateException)    (* Typebound Procedures *)
                        STATIC
                          T_ALGORITHM_DISABLED*       : java_lang.Object;
                          T_CA_EXTENSIONS*            : java_lang.Object;
                          T_CERT_EXPIRED*             : java_lang.Object;
                          T_EE_EXTENSIONS*            : java_lang.Object;
                          T_NAME_CHAINING*            : java_lang.Object;
                          T_NO_TRUST_ANCHOR*          : java_lang.Object;
                          T_OCSP_RESPONSE_UNRELIABLE* : java_lang.Object;
                          T_SIGNATURE_ERROR*          : java_lang.Object;
                          PROCEDURE Init*(p0 : java_lang.Object;
                                          p1 : java_security_cert.X509Certificate;
                                          p2 : java_lang.Throwable) : ValidatorException,CONSTRUCTOR;
                          PROCEDURE Init*(p0 : java_lang.String;
                                          p1 : java_lang.Object;
                                          p2 : java_security_cert.X509Certificate) : ValidatorException,CONSTRUCTOR;
                          PROCEDURE Init*(p0 : java_lang.String;
                                          p1 : java_lang.Object;
                                          p2 : java_security_cert.X509Certificate;
                                          p3 : java_lang.Throwable) : ValidatorException,CONSTRUCTOR;
                          PROCEDURE Init*(p0 : java_lang.Object;
                                          p1 : java_security_cert.X509Certificate) : ValidatorException,CONSTRUCTOR;
                          PROCEDURE Init*(p0 : java_lang.String) : ValidatorException,CONSTRUCTOR;
                          PROCEDURE Init*(p0 : java_lang.String;
                                          p1 : java_lang.Throwable) : ValidatorException,CONSTRUCTOR;
                          PROCEDURE Init*(p0 : java_lang.Object) : ValidatorException,CONSTRUCTOR;
                        END;




PROCEDURE (self:PKIXValidator) getCertPathLength*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:PKIXValidator) getParameters*() : java_security_cert.PKIXBuilderParameters,NEW,EXTENSIBLE;

PROCEDURE (self:PKIXValidator) getTrustedCertificates*() : java_util.Collection,EXTENSIBLE;

PROCEDURE (self:SimpleValidator) getTrustedCertificates*() : java_util.Collection,EXTENSIBLE;

PROCEDURE (self:Validator) getTrustedCertificates*() : java_util.Collection,NEW,ABSTRACT;

PROCEDURE (self:Validator) setValidationDate*(p0 : java_util.Date),NEW,EXTENSIBLE;

PROCEDURE (self:Validator) validate*(IN  p0 : ARRAY OF java_security_cert.X509Certificate;
                                         p1 : java_util.Collection;
                                         p2 : java_lang.Object) : POINTER TO ARRAY OF java_security_cert.X509Certificate,NEW;

PROCEDURE (self:Validator) validate*(IN  p0 : ARRAY OF java_security_cert.X509Certificate) : POINTER TO ARRAY OF java_security_cert.X509Certificate,NEW;

PROCEDURE (self:Validator) validate*(IN  p0 : ARRAY OF java_security_cert.X509Certificate;
                                         p1 : java_util.Collection) : POINTER TO ARRAY OF java_security_cert.X509Certificate,NEW;

PROCEDURE (self:ValidatorException) getErrorCertificate*() : java_security_cert.X509Certificate,NEW,EXTENSIBLE;

PROCEDURE (self:ValidatorException) getErrorType*() : java_lang.Object,NEW,EXTENSIBLE;

END sun_security_validator.