FOREIGN MODULE sun_security_pkcs;

IMPORT
    sun_security_util,
    java_lang,
    java_io,
    sun_security_x509,
    java_security,
    java_util,
    java_security_cert,
    java_math;

TYPE

  ContentInfo* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
                 STATIC
                   PKCS7_OID* : sun_security_util.ObjectIdentifier;
                   DATA_OID* : sun_security_util.ObjectIdentifier;
                   SIGNED_DATA_OID* : sun_security_util.ObjectIdentifier;
                   ENVELOPED_DATA_OID* : sun_security_util.ObjectIdentifier;
                   SIGNED_AND_ENVELOPED_DATA_OID* : sun_security_util.ObjectIdentifier;
                   DIGESTED_DATA_OID* : sun_security_util.ObjectIdentifier;
                   ENCRYPTED_DATA_OID* : sun_security_util.ObjectIdentifier;
                   OLD_SIGNED_DATA_OID* : sun_security_util.ObjectIdentifier;
                   OLD_DATA_OID* : sun_security_util.ObjectIdentifier;
                   NETSCAPE_CERT_SEQUENCE_OID* : sun_security_util.ObjectIdentifier;
                   PROCEDURE Init*(p0 : sun_security_util.DerInputStream) : ContentInfo,CONSTRUCTOR;
                   PROCEDURE Init*(p0 : sun_security_util.DerInputStream;
                                   p1 : BOOLEAN) : ContentInfo,CONSTRUCTOR;
                   PROCEDURE Init*(p0 : sun_security_util.ObjectIdentifier;
                                   p1 : sun_security_util.DerValue) : ContentInfo,CONSTRUCTOR;
                   PROCEDURE Init*(IN  p0 : ARRAY OF BYTE) : ContentInfo,CONSTRUCTOR;
                 END;

  EncodingException* = POINTER TO EXTENSIBLE RECORD (java_lang.Exception)
                       STATIC
                         PROCEDURE Init*() : EncodingException,CONSTRUCTOR;
                         PROCEDURE Init*(p0 : java_lang.String) : EncodingException,CONSTRUCTOR;
                       END;

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

  ParsingException* = POINTER TO EXTENSIBLE RECORD (java_io.IOException)
                      STATIC
                        PROCEDURE Init*() : ParsingException,CONSTRUCTOR;
                        PROCEDURE Init*(p0 : java_lang.String) : ParsingException,CONSTRUCTOR;
                      END;

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

  PKCS10Attribute* = POINTER TO EXTENSIBLE RECORD (java_lang.Object + sun_security_util.DerEncoder)
                       attributeId! : sun_security_util.ObjectIdentifier;
                       attributeValue! : java_lang.Object;
                     STATIC
                       PROCEDURE Init*(p0 : PKCS9Attribute) : PKCS10Attribute,CONSTRUCTOR;
                       PROCEDURE Init*(p0 : sun_security_util.DerValue) : PKCS10Attribute,CONSTRUCTOR;
                       PROCEDURE Init*(p0 : sun_security_util.ObjectIdentifier;
                                       p1 : java_lang.Object) : PKCS10Attribute,CONSTRUCTOR;
                     END;

  PKCS10Attributes* = POINTER TO EXTENSIBLE RECORD (java_lang.Object + sun_security_util.DerEncoder)
                      STATIC
                        PROCEDURE Init*() : PKCS10Attributes,CONSTRUCTOR;
                        PROCEDURE Init*(p0 : sun_security_util.DerInputStream) : PKCS10Attributes,CONSTRUCTOR;
                        PROCEDURE Init*(IN  p0 : ARRAY OF PKCS10Attribute) : PKCS10Attributes,CONSTRUCTOR;
                      END;

  PKCS7* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
           STATIC
             PROCEDURE Init*(p0 : java_io.InputStream) : PKCS7,CONSTRUCTOR;
             PROCEDURE Init*(p0 : sun_security_util.DerInputStream) : PKCS7,CONSTRUCTOR;
             PROCEDURE Init*(IN  p0 : ARRAY OF BYTE) : PKCS7,CONSTRUCTOR;
             PROCEDURE Init*(IN  p0 : ARRAY OF sun_security_x509.AlgorithmId;
                                 p1 : ContentInfo;
                             IN  p2 : ARRAY OF java_security_cert.X509Certificate;
                             IN  p3 : ARRAY OF SignerInfo) : PKCS7,CONSTRUCTOR;
           END;

  PKCS8Key* = POINTER TO EXTENSIBLE RECORD (java_lang.Object + java_security.PrivateKey)
                algid! : sun_security_x509.AlgorithmId;
                key! : POINTER TO ARRAY OF BYTE;
                encodedKey! : POINTER TO ARRAY OF BYTE;
              STATIC
                version* : java_math.BigInteger;
                PROCEDURE Init*() : PKCS8Key,CONSTRUCTOR;
                PROCEDURE parse*(p0 : sun_security_util.DerValue) : PKCS8Key;
                PROCEDURE parseKey*(p0 : sun_security_util.DerValue) : java_security.PrivateKey;
              END;

  PKCS9Attribute* = POINTER TO EXTENSIBLE RECORD (java_lang.Object + sun_security_util.DerEncoder)
                    STATIC
                      EMAIL_ADDRESS_OID* : sun_security_util.ObjectIdentifier;
                      UNSTRUCTURED_NAME_OID* : sun_security_util.ObjectIdentifier;
                      CONTENT_TYPE_OID* : sun_security_util.ObjectIdentifier;
                      MESSAGE_DIGEST_OID* : sun_security_util.ObjectIdentifier;
                      SIGNING_TIME_OID* : sun_security_util.ObjectIdentifier;
                      COUNTERSIGNATURE_OID* : sun_security_util.ObjectIdentifier;
                      CHALLENGE_PASSWORD_OID* : sun_security_util.ObjectIdentifier;
                      UNSTRUCTURED_ADDRESS_OID* : sun_security_util.ObjectIdentifier;
                      EXTENDED_CERTIFICATE_ATTRIBUTES_OID* : sun_security_util.ObjectIdentifier;
                      ISSUER_SERIALNUMBER_OID* : sun_security_util.ObjectIdentifier;
                      EXTENSION_REQUEST_OID* : sun_security_util.ObjectIdentifier;
                      SMIME_CAPABILITY_OID* : sun_security_util.ObjectIdentifier;
                      EMAIL_ADDRESS_STR* = "EmailAddress";
                      UNSTRUCTURED_NAME_STR* = "UnstructuredName";
                      CONTENT_TYPE_STR* = "ContentType";
                      MESSAGE_DIGEST_STR* = "MessageDigest";
                      SIGNING_TIME_STR* = "SigningTime";
                      COUNTERSIGNATURE_STR* = "Countersignature";
                      CHALLENGE_PASSWORD_STR* = "ChallengePassword";
                      UNSTRUCTURED_ADDRESS_STR* = "UnstructuredAddress";
                      EXTENDED_CERTIFICATE_ATTRIBUTES_STR* = "ExtendedCertificateAttributes";
                      ISSUER_SERIALNUMBER_STR* = "IssuerAndSerialNumber";
                      EXTENSION_REQUEST_STR* = "ExtensionRequest";
                      SMIME_CAPABILITY_STR* = "SMIMECapability";
                      PROCEDURE Init*(p0 : java_lang.String;
                                      p1 : java_lang.Object) : PKCS9Attribute,CONSTRUCTOR;
                      PROCEDURE Init*(p0 : sun_security_util.DerValue) : PKCS9Attribute,CONSTRUCTOR;
                      PROCEDURE Init*(p0 : sun_security_util.ObjectIdentifier;
                                      p1 : java_lang.Object) : PKCS9Attribute,CONSTRUCTOR;
                      PROCEDURE getName*(p0 : sun_security_util.ObjectIdentifier) : java_lang.String;
                      PROCEDURE getOID*(p0 : java_lang.String) : sun_security_util.ObjectIdentifier;
                    END;

  PKCS9Attributes* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
                     STATIC
                       PROCEDURE Init*(p0 : sun_security_util.DerInputStream) : PKCS9Attributes,CONSTRUCTOR;
                       PROCEDURE Init*(IN  p0 : ARRAY OF PKCS9Attribute) : PKCS9Attributes,CONSTRUCTOR;
                       PROCEDURE Init*(IN  p0 : ARRAY OF sun_security_util.ObjectIdentifier;
                                           p1 : sun_security_util.DerInputStream) : PKCS9Attributes,CONSTRUCTOR;
                     END;

  SignerInfo* = POINTER TO EXTENSIBLE RECORD (java_lang.Object + sun_security_util.DerEncoder)
                STATIC
                  PROCEDURE Init*(p0 : sun_security_util.DerInputStream) : SignerInfo,CONSTRUCTOR;
                  PROCEDURE Init*(p0 : sun_security_util.DerInputStream;
                                  p1 : BOOLEAN) : SignerInfo,CONSTRUCTOR;
                  PROCEDURE Init*(    p0 : sun_security_x509.X500Name;
                                      p1 : sun_security_util.BigInt;
                                      p2 : sun_security_x509.AlgorithmId;
                                      p3 : PKCS9Attributes;
                                      p4 : sun_security_x509.AlgorithmId;
                                  IN  p5 : ARRAY OF BYTE;
                                      p6 : PKCS9Attributes) : SignerInfo,CONSTRUCTOR;
                  PROCEDURE Init*(    p0 : sun_security_x509.X500Name;
                                      p1 : sun_security_util.BigInt;
                                      p2 : sun_security_x509.AlgorithmId;
                                      p3 : sun_security_x509.AlgorithmId;
                                  IN  p4 : ARRAY OF BYTE) : SignerInfo,CONSTRUCTOR;
                END;




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

PROCEDURE (self:ContentInfo) getContent*() : sun_security_util.DerValue,NEW,EXTENSIBLE;

PROCEDURE (self:ContentInfo) getContentBytes*() : POINTER TO ARRAY OF BYTE,NEW,EXTENSIBLE;

PROCEDURE (self:ContentInfo) getData*() : POINTER TO ARRAY OF BYTE,NEW,EXTENSIBLE;

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

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

PROCEDURE (self:EncryptedPrivateKeyInfo) getAlgorithm*() : sun_security_x509.AlgorithmId,NEW,EXTENSIBLE;

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

PROCEDURE (self:EncryptedPrivateKeyInfo) getEncryptedData*() : POINTER TO ARRAY OF BYTE,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS10) encodeAndSign*(p0 : sun_security_x509.X500Signer),NEW,EXTENSIBLE;

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

PROCEDURE (self:PKCS10) getAttributes*() : PKCS10Attributes,NEW,EXTENSIBLE;

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

PROCEDURE (self:PKCS10) getSubjectName*() : sun_security_x509.X500Name,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS10) getSubjectPublicKeyInfo*() : java_security.PublicKey,NEW,EXTENSIBLE;

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

PROCEDURE (self:PKCS10) print*(p0 : java_io.PrintStream),NEW,EXTENSIBLE;

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

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

PROCEDURE (self:PKCS10Attribute) getAttributeId*() : sun_security_util.ObjectIdentifier,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS10Attribute) getAttributeValue*() : java_lang.Object,NEW,EXTENSIBLE;

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

PROCEDURE (self:PKCS10Attributes) deleteAttribute*(p0 : java_lang.String),NEW,EXTENSIBLE;

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

PROCEDURE (self:PKCS10Attributes) encode*(p0 : java_io.OutputStream),NEW,EXTENSIBLE;

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

PROCEDURE (self:PKCS10Attributes) getAttribute*(p0 : java_lang.String) : java_lang.Object,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS10Attributes) getAttributes*() : java_util.Collection,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS10Attributes) getElements*() : java_util.Enumeration,NEW,EXTENSIBLE;

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

PROCEDURE (self:PKCS10Attributes) setAttribute*(p0 : java_lang.String;
                                                p1 : java_lang.Object),NEW,EXTENSIBLE;

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

PROCEDURE (self:PKCS7) encodeSignedData*(p0 : java_io.OutputStream),NEW,EXTENSIBLE;

PROCEDURE (self:PKCS7) encodeSignedData*(p0 : sun_security_util.DerOutputStream),NEW,EXTENSIBLE;

PROCEDURE (self:PKCS7) getCRLs*() : POINTER TO ARRAY OF java_security_cert.X509CRL,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS7) getCertificate*(p0 : sun_security_util.BigInt;
                                       p1 : sun_security_x509.X500Name) : java_security_cert.X509Certificate,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS7) getCertificates*() : POINTER TO ARRAY OF java_security_cert.X509Certificate,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS7) getContentInfo*() : ContentInfo,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS7) getDigestAlgorithmIds*() : POINTER TO ARRAY OF sun_security_x509.AlgorithmId,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS7) getSignerInfos*() : POINTER TO ARRAY OF SignerInfo,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS7) getVersion*() : sun_security_util.BigInt,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS7) isOldStyle*() : BOOLEAN,NEW,EXTENSIBLE;

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

PROCEDURE (self:PKCS7) verify*() : POINTER TO ARRAY OF SignerInfo,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS7) verify*(    p0 : SignerInfo;
                               IN  p1 : ARRAY OF BYTE) : SignerInfo,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS7) verify*(IN  p0 : ARRAY OF BYTE) : POINTER TO ARRAY OF SignerInfo,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS8Key) decode*(p0 : java_io.InputStream),NEW,EXTENSIBLE;

PROCEDURE (self:PKCS8Key) decode*(IN  p0 : ARRAY OF BYTE),NEW,EXTENSIBLE;

PROCEDURE (self:PKCS8Key) encode*() : POINTER TO ARRAY OF BYTE,NEW,EXTENSIBLE;

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

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

PROCEDURE (self:PKCS8Key) getAlgorithm*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS8Key) getAlgorithmId*() : sun_security_x509.AlgorithmId,NEW,EXTENSIBLE;

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

PROCEDURE (self:PKCS8Key) getFormat*() : java_lang.String,NEW,EXTENSIBLE;

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

PROCEDURE (self:PKCS8Key) parseKeyBits!(),NEW,EXTENSIBLE;

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

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

PROCEDURE (self:PKCS9Attribute) getName*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS9Attribute) getOID*() : sun_security_util.ObjectIdentifier,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS9Attribute) getValue*() : java_lang.Object,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS9Attribute) isSingleValued*() : BOOLEAN,NEW,EXTENSIBLE;

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

PROCEDURE (self:PKCS9Attributes) encode*(p0 : BYTE;
                                         p1 : java_io.OutputStream),NEW,EXTENSIBLE;

PROCEDURE (self:PKCS9Attributes) getAttribute*(p0 : java_lang.String) : PKCS9Attribute,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS9Attributes) getAttribute*(p0 : sun_security_util.ObjectIdentifier) : PKCS9Attribute,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS9Attributes) getAttributeValue*(p0 : java_lang.String) : java_lang.Object,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS9Attributes) getAttributeValue*(p0 : sun_security_util.ObjectIdentifier) : java_lang.Object,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS9Attributes) getAttributes*() : POINTER TO ARRAY OF PKCS9Attribute,NEW,EXTENSIBLE;

PROCEDURE (self:PKCS9Attributes) getDerEncoding*() : POINTER TO ARRAY OF BYTE,NEW,EXTENSIBLE;

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

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

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

PROCEDURE (self:SignerInfo) getAuthenticatedAttributes*() : PKCS9Attributes,NEW,EXTENSIBLE;

PROCEDURE (self:SignerInfo) getCertificate*(p0 : PKCS7) : java_security_cert.X509Certificate,NEW,EXTENSIBLE;

PROCEDURE (self:SignerInfo) getCertificateChain*(p0 : PKCS7) : java_util.ArrayList,NEW,EXTENSIBLE;

PROCEDURE (self:SignerInfo) getCertificateSerialNumber*() : sun_security_util.BigInt,NEW,EXTENSIBLE;

PROCEDURE (self:SignerInfo) getDigestAlgorithmId*() : sun_security_x509.AlgorithmId,NEW,EXTENSIBLE;

PROCEDURE (self:SignerInfo) getDigestEncryptionAlgorithmId*() : sun_security_x509.AlgorithmId,NEW,EXTENSIBLE;

PROCEDURE (self:SignerInfo) getEncryptedDigest*() : POINTER TO ARRAY OF BYTE,NEW,EXTENSIBLE;

PROCEDURE (self:SignerInfo) getIssuerName*() : sun_security_x509.X500Name,NEW,EXTENSIBLE;

PROCEDURE (self:SignerInfo) getUnauthenticatedAttributes*() : PKCS9Attributes,NEW,EXTENSIBLE;

PROCEDURE (self:SignerInfo) getVersion*() : sun_security_util.BigInt,NEW,EXTENSIBLE;

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

END sun_security_pkcs.