FOREIGN MODULE sun_security_util;

IMPORT
    java_lang,
    java_math,
    java_util,
    java_io,
    java_security,
    sun_misc,
    java_util_jar,
    java_security_cert,
    sun_security_pkcs;

TYPE

  BigInt* = POINTER TO RECORD (java_lang.Object)
            STATIC
              PROCEDURE Init*(p0 : INTEGER) : BigInt,CONSTRUCTOR;
              PROCEDURE Init*(p0 : java_math.BigInteger) : BigInt,CONSTRUCTOR;
              PROCEDURE Init*(IN  p0 : ARRAY OF BYTE) : BigInt,CONSTRUCTOR;
            END;

  BitArray* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
              STATIC
                PROCEDURE Init*(p0 : INTEGER) : BitArray,CONSTRUCTOR;
                PROCEDURE Init*(    p0 : INTEGER;
                                IN  p1 : ARRAY OF BYTE) : BitArray,CONSTRUCTOR;
                PROCEDURE Init*(IN  p0 : ARRAY OF BOOLEAN) : BitArray,CONSTRUCTOR;
              END;

  ByteArrayLexOrder* = POINTER TO EXTENSIBLE RECORD (java_lang.Object + java_util.Comparator)
                       STATIC
                         PROCEDURE Init*() : ByteArrayLexOrder,CONSTRUCTOR;
                       END;

  ByteArrayTagOrder* = POINTER TO EXTENSIBLE RECORD (java_lang.Object + java_util.Comparator)
                       STATIC
                         PROCEDURE Init*() : ByteArrayTagOrder,CONSTRUCTOR;
                       END;

  Debug* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
           STATIC
             PROCEDURE Init*() : Debug,CONSTRUCTOR;
             PROCEDURE Help*();
             PROCEDURE getInstance*(p0 : java_lang.String) : Debug;
             PROCEDURE getInstance*(p0 : java_lang.String;
                                    p1 : java_lang.String) : Debug;
             PROCEDURE isOn*(p0 : java_lang.String) : BOOLEAN;
             PROCEDURE println*(p0 : java_lang.String;
                                p1 : java_lang.String);
           END;

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

  DerInputStream* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
                    STATIC
                      PROCEDURE Init*(IN  p0 : ARRAY OF BYTE) : DerInputStream,CONSTRUCTOR;
                      PROCEDURE Init*(IN  p0 : ARRAY OF BYTE;
                                          p1 : INTEGER;
                                          p2 : INTEGER) : DerInputStream,CONSTRUCTOR;
                    END;

  DerOutputStream* = POINTER TO EXTENSIBLE RECORD (java_io.ByteArrayOutputStream + DerEncoder)
                     STATIC
                       PROCEDURE Init*() : DerOutputStream,CONSTRUCTOR;
                       PROCEDURE Init*(p0 : INTEGER) : DerOutputStream,CONSTRUCTOR;
                     END;

  DerValue* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
                tag* : BYTE;
                buffer! : DerInputBuffer;
                data* : DerInputStream;
              STATIC
                TAG_UNIVERSAL* = 0;
                TAG_APPLICATION* = 64;
                TAG_CONTEXT* = -128;
                TAG_PRIVATE* = -64;
                tag_Boolean* = 1;
                tag_Integer* = 2;
                tag_BitString* = 3;
                tag_OctetString* = 4;
                tag_Null* = 5;
                tag_ObjectId* = 6;
                tag_Enumerated* = 10;
                tag_PrintableString* = 19;
                tag_T61String* = 20;
                tag_IA5String* = 22;
                tag_UtcTime* = 23;
                tag_GeneralizedTime* = 24;
                tag_BMPString* = 30;
                tag_UniversalString* = 28;
                tag_Sequence* = 48;
                tag_SequenceOf* = 48;
                tag_Set* = 49;
                tag_SetOf* = 49;
                PROCEDURE Init*(    p0 : BYTE;
                                IN  p1 : ARRAY OF BYTE) : DerValue,CONSTRUCTOR;
                PROCEDURE Init*(p0 : java_io.InputStream) : DerValue,CONSTRUCTOR;
                PROCEDURE Init*(p0 : java_lang.String) : DerValue,CONSTRUCTOR;
                PROCEDURE Init*(IN  p0 : ARRAY OF BYTE) : DerValue,CONSTRUCTOR;
                PROCEDURE Init*(IN  p0 : ARRAY OF BYTE;
                                    p1 : INTEGER;
                                    p2 : INTEGER) : DerValue,CONSTRUCTOR;
                PROCEDURE createTag*(p0 : BYTE;
                                     p1 : BOOLEAN;
                                     p2 : BYTE) : BYTE;
              END;

  ManifestDigester$Entry* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
                            STATIC
                              PROCEDURE Init*(    p0 : INTEGER;
                                                  p1 : INTEGER;
                                                  p2 : INTEGER;
                                              IN  p3 : ARRAY OF BYTE) : ManifestDigester$Entry,CONSTRUCTOR;
                            END;

  ManifestDigester* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
                      STATIC
                        PROCEDURE Init*(IN  p0 : ARRAY OF BYTE) : ManifestDigester,CONSTRUCTOR;
                      END;

  ManifestEntryVerifier* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
                           STATIC
                             PROCEDURE Init*(p0 : java_util_jar.Manifest) : ManifestEntryVerifier,CONSTRUCTOR;
                           END;

  ObjectIdentifier* = POINTER TO RECORD (java_lang.Object + java_io.Serializable)
                      STATIC
                        PROCEDURE Init*(p0 : java_lang.String) : ObjectIdentifier,CONSTRUCTOR;
                        PROCEDURE Init*(p0 : DerInputStream) : ObjectIdentifier,CONSTRUCTOR;
                        PROCEDURE Init*(IN  p0 : ARRAY OF INTEGER) : ObjectIdentifier,CONSTRUCTOR;
                      END;

  PropertyExpander$ExpandException* = POINTER TO EXTENSIBLE RECORD (java_security.GeneralSecurityException)
                                      STATIC
                                        PROCEDURE Init*(p0 : java_lang.String) : PropertyExpander$ExpandException,CONSTRUCTOR;
                                      END;

  PropertyExpander* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
                      STATIC
                        PROCEDURE Init*() : PropertyExpander,CONSTRUCTOR;
                        PROCEDURE expand*(p0 : java_lang.String) : java_lang.String;
                        PROCEDURE main*(IN  p0 : ARRAY OF java_lang.String);
                      END;

  SignatureFile$Block* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
                         END;

  SignatureFile* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
                   STATIC
                     PROCEDURE Init*(IN  p0 : ARRAY OF java_security.MessageDigest;
                                         p1 : java_util_jar.Manifest;
                                         p2 : ManifestDigester;
                                         p3 : java_lang.String;
                                         p4 : BOOLEAN) : SignatureFile,CONSTRUCTOR;
                   END;

  SignatureFileVerifier* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
                           STATIC
                             PROCEDURE Init*(    p0 : java_util.ArrayList;
                                                 p1 : ManifestDigester;
                                                 p2 : java_lang.String;
                                             IN  p3 : ARRAY OF BYTE) : SignatureFileVerifier,CONSTRUCTOR;
                           END;




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

PROCEDURE (self:BigInt) equals*(p0 : BigInt) : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:BigInt) toBigInteger*() : java_math.BigInteger,NEW,EXTENSIBLE;

PROCEDURE (self:BigInt) toByteArray*() : POINTER TO ARRAY OF BYTE,NEW,EXTENSIBLE;

PROCEDURE (self:BigInt) toInt*() : INTEGER,NEW,EXTENSIBLE;

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

PROCEDURE (self:BitArray) clone*() : java_lang.Object,EXTENSIBLE;

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

PROCEDURE (self:BitArray) get*(p0 : INTEGER) : BOOLEAN,NEW,EXTENSIBLE;

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

PROCEDURE (self:BitArray) length*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:BitArray) set*(p0 : INTEGER;
                               p1 : BOOLEAN),NEW,EXTENSIBLE;

PROCEDURE (self:BitArray) toBooleanArray*() : POINTER TO ARRAY OF BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:BitArray) toByteArray*() : POINTER TO ARRAY OF BYTE,NEW,EXTENSIBLE;

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

PROCEDURE (self:ByteArrayLexOrder) compare*(p0 : java_lang.Object;
                                            p1 : java_lang.Object) : INTEGER,NEW;

PROCEDURE (self:ByteArrayTagOrder) compare*(p0 : java_lang.Object;
                                            p1 : java_lang.Object) : INTEGER,NEW;

PROCEDURE (self:Debug) println*(),NEW,EXTENSIBLE;

PROCEDURE (self:Debug) println*(p0 : java_lang.String),NEW,EXTENSIBLE;

PROCEDURE (self:DerEncoder) derEncode*(p0 : java_io.OutputStream),NEW,ABSTRACT;

PROCEDURE (self:DerInputStream) available*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:DerInputStream) getBitString*() : POINTER TO ARRAY OF BYTE,NEW,EXTENSIBLE;

PROCEDURE (self:DerInputStream) getBytes*(IN  p0 : ARRAY OF BYTE),NEW,EXTENSIBLE;

PROCEDURE (self:DerInputStream) getDerValue*() : DerValue,NEW,EXTENSIBLE;

PROCEDURE (self:DerInputStream) getEnumerated*() : BigInt,NEW,EXTENSIBLE;

PROCEDURE (self:DerInputStream) getGeneralizedTime*() : java_util.Date,NEW,EXTENSIBLE;

PROCEDURE (self:DerInputStream) getInteger*() : BigInt,NEW,EXTENSIBLE;

PROCEDURE (self:DerInputStream) getNull*(),NEW,EXTENSIBLE;

PROCEDURE (self:DerInputStream) getOID*() : ObjectIdentifier,NEW,EXTENSIBLE;

PROCEDURE (self:DerInputStream) getOctetString*() : POINTER TO ARRAY OF BYTE,NEW,EXTENSIBLE;

PROCEDURE (self:DerInputStream) getSequence*(p0 : INTEGER) : POINTER TO ARRAY OF DerValue,NEW,EXTENSIBLE;

PROCEDURE (self:DerInputStream) getSet*(p0 : INTEGER) : POINTER TO ARRAY OF DerValue,NEW,EXTENSIBLE;

PROCEDURE (self:DerInputStream) getSet*(p0 : INTEGER;
                                        p1 : BOOLEAN) : POINTER TO ARRAY OF DerValue,NEW,EXTENSIBLE;

PROCEDURE (self:DerInputStream) getUTCTime*() : java_util.Date,NEW,EXTENSIBLE;

PROCEDURE (self:DerInputStream) getUnalignedBitString*() : BitArray,NEW,EXTENSIBLE;

PROCEDURE (self:DerInputStream) mark*(p0 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:DerInputStream) peekByte*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:DerInputStream) readVector!(p0 : INTEGER) : POINTER TO ARRAY OF DerValue,NEW,EXTENSIBLE;

PROCEDURE (self:DerInputStream) reset*(),NEW,EXTENSIBLE;

PROCEDURE (self:DerInputStream) subStream*(p0 : INTEGER;
                                           p1 : BOOLEAN) : DerInputStream,NEW,EXTENSIBLE;

PROCEDURE (self:DerInputStream) toByteArray*() : POINTER TO ARRAY OF BYTE,NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) derEncode*(p0 : java_io.OutputStream),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) putBitString*(IN  p0 : ARRAY OF BYTE),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) putBoolean*(p0 : BOOLEAN),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) putDerValue*(p0 : DerValue),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) putEnumerated*(p0 : BigInt),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) putGeneralizedTime*(p0 : java_util.Date),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) putIA5String*(p0 : java_lang.String),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) putInteger*(p0 : BigInt),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) putLength*(p0 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) putNull*(),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) putOID*(p0 : ObjectIdentifier),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) putOctetString*(IN  p0 : ARRAY OF BYTE),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) putOrderedSet*(    p0 : BYTE;
                                                IN  p1 : ARRAY OF DerEncoder),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) putOrderedSetOf*(    p0 : BYTE;
                                                  IN  p1 : ARRAY OF DerEncoder),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) putPrintableString*(p0 : java_lang.String),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) putSequence*(IN  p0 : ARRAY OF DerValue),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) putSet*(IN  p0 : ARRAY OF DerValue),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) putTag*(p0 : BYTE;
                                         p1 : BOOLEAN;
                                         p2 : BYTE),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) putUTCTime*(p0 : java_util.Date),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) putUnalignedBitString*(p0 : BitArray),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) write*(p0 : BYTE;
                                        p1 : DerOutputStream),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) write*(    p0 : BYTE;
                                        IN  p1 : ARRAY OF BYTE),NEW,EXTENSIBLE;

PROCEDURE (self:DerOutputStream) writeImplicit*(p0 : BYTE;
                                                p1 : DerOutputStream),NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) encode*(p0 : DerOutputStream),NEW,EXTENSIBLE;

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

PROCEDURE (self:DerValue) equals*(p0 : DerValue) : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) getAsString*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) getBitString*() : POINTER TO ARRAY OF BYTE,NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) getBitString*(p0 : BOOLEAN) : POINTER TO ARRAY OF BYTE,NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) getBoolean*() : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) getEnumerated*() : BigInt,NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) getIA5String*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) getInteger*() : BigInt,NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) getInteger*(p0 : BOOLEAN) : BigInt,NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) getOID*() : ObjectIdentifier,NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) getOctetString*() : POINTER TO ARRAY OF BYTE,NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) getPrintableString*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) getT61String*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) getUnalignedBitString*() : BitArray,NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) getUnalignedBitString*(p0 : BOOLEAN) : BitArray,NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) isConstructed*() : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) isContextSpecific*() : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) isContextSpecific*(p0 : BYTE) : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) length*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) resetTag*(p0 : BYTE),NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) toByteArray*() : POINTER TO ARRAY OF BYTE,NEW,EXTENSIBLE;

PROCEDURE (self:DerValue) toDerInputStream*() : DerInputStream,NEW,EXTENSIBLE;

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

PROCEDURE (self:ManifestDigester$Entry) digest*(p0 : java_security.MessageDigest) : POINTER TO ARRAY OF BYTE,NEW,EXTENSIBLE;

PROCEDURE (self:ManifestDigester$Entry) digestWorkaround*(p0 : java_security.MessageDigest) : POINTER TO ARRAY OF BYTE,NEW,EXTENSIBLE;

PROCEDURE (self:ManifestDigester) get*(p0 : java_lang.String;
                                       p1 : BOOLEAN) : ManifestDigester$Entry,NEW,EXTENSIBLE;

PROCEDURE (self:ManifestDigester) manifestDigest*(p0 : java_security.MessageDigest) : POINTER TO ARRAY OF BYTE,NEW,EXTENSIBLE;

PROCEDURE (self:ManifestEntryVerifier) getEntry*() : java_util_jar.JarEntry,NEW,EXTENSIBLE;

PROCEDURE (self:ManifestEntryVerifier) setEntry*(p0 : java_lang.String;
                                                 p1 : java_util_jar.JarEntry),NEW,EXTENSIBLE;

PROCEDURE (self:ManifestEntryVerifier) update*(p0 : BYTE),NEW,EXTENSIBLE;

PROCEDURE (self:ManifestEntryVerifier) update*(IN  p0 : ARRAY OF BYTE;
                                                   p1 : INTEGER;
                                                   p2 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:ManifestEntryVerifier) verify*(p0 : java_util.Hashtable;
                                               p1 : java_util.Hashtable) : POINTER TO ARRAY OF java_security_cert.Certificate,NEW,EXTENSIBLE;

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

PROCEDURE (self:ObjectIdentifier) equals*(p0 : ObjectIdentifier) : BOOLEAN,NEW,EXTENSIBLE;

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

PROCEDURE (self:ObjectIdentifier) precedes*(p0 : ObjectIdentifier) : BOOLEAN,NEW,EXTENSIBLE;

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

PROCEDURE (self:SignatureFile$Block) getMetaName*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:SignatureFile$Block) write*(p0 : java_io.OutputStream),NEW,EXTENSIBLE;

PROCEDURE (self:SignatureFile) generateBlock*(    p0 : java_security.PrivateKey;
                                              IN  p1 : ARRAY OF java_security_cert.X509Certificate;
                                                  p2 : BOOLEAN) : SignatureFile$Block,NEW,EXTENSIBLE;

PROCEDURE (self:SignatureFile) getBaseName*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:SignatureFile) getMetaName*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:SignatureFile) write*(p0 : java_io.OutputStream),NEW,EXTENSIBLE;

PROCEDURE (self:SignatureFileVerifier) needSignatureFile*(p0 : java_lang.String) : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:SignatureFileVerifier) needSignatureFileBytes*() : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:SignatureFileVerifier) process*(p0 : java_util.Hashtable),NEW,EXTENSIBLE;

PROCEDURE (self:SignatureFileVerifier) setSignatureFile*(IN  p0 : ARRAY OF BYTE),NEW,EXTENSIBLE;

END sun_security_util.