//Auto-generated by kalyptus. DO NOT EDIT.
package org.trinitydesktop.koala;

import org.trinitydesktop.qt.TQt;
import org.trinitydesktop.qt.QtSupport;

/**
*/
public class KSMIMECrypto implements QtSupport {
	private long _qt;
	private boolean _allocatedInJavaWorld = true;
	protected KSMIMECrypto(Class dummy){}

	public static final int KSC_C_DES3_CBC = 1;
	public static final int KSC_C_RC2_CBC_128 = 2;
	public static final int KSC_C_RC2_CBC_64 = 3;
	public static final int KSC_C_DES_CBC = 4;
	public static final int KSC_C_RC2_CBC_40 = 5;

	public static final int KSC_R_OK = 0;
	public static final int KSC_R_OTHER = 1;
	public static final int KSC_R_NO_SSL = 2;
	public static final int KSC_R_NOCIPHER = 3;
	public static final int KSC_R_NOMEM = 4;
	public static final int KSC_R_FORMAT = 5;
	public static final int KSC_R_WRONGKEY = 6;
	public static final int KSC_R_VERIFY = 7;

	public KSMIMECrypto() {
		newKSMIMECrypto();
	}
	private native void newKSMIMECrypto();
	/**
		 Sign a message
			@param clearText MIME representation of the message (part) to sign
			@param cipherText signature to append or signature block
			@param privKey private key/certificate to sign with
			@param certs additional certificates (may be empty)
			@param detached create detached or opaque signature
				@return 0 on success

		@short    Sign a message
	*/
	// KSMIMECrypto::rc signMessage(const TQCString& arg1,TQByteArray& arg2,const KSSLPKCS12& arg3,const TQPtrList<KSSLCertificate>& arg4,bool arg5); >>>> NOT CONVERTED
	/**
		 Check a detached message signature
		 Will check if messages matches signature and extract certificates
		 Does not check certificates for validity!
			@param clearText MIME representation of signed message (without SIG)
			@param signature signature
			@param foundCerts certificates found in this message
				@return 0 on success

		@short    Check a detached message signature  Will check if messages matches signature and extract certificates  Does not check certificates for validity!
	*/
	// KSMIMECrypto::rc checkDetachedSignature(const TQCString& arg1,const TQByteArray& arg2,TQPtrList<KSSLCertificate>& arg3); >>>> NOT CONVERTED
	/**
		 Check an opaque signed message
		 Will check if signature matches and extract message
		 Does not check certificates for validity!
			@param signedText signed message block
			@param clearText cleartext of signed message
		 @foundCerts certificates found in this mesasge
				@return 0 on success

		@short    Check an opaque signed message  Will check if signature matches and extract message  Does not check certificates for validity!
	*/
	// KSMIMECrypto::rc checkOpaqueSignature(const TQByteArray& arg1,TQCString& arg2,TQPtrList<KSSLCertificate>& arg3); >>>> NOT CONVERTED
	/**
		 Encrypt a message
		 encrypts a message for the given list of recipients and the
		 selected algorithm. Note that any algorithm <128 bytes is
		 insecure and should never be used, even if SMIME-2 requires
		 only RC2-40
			@param clearText MIME representation of message to encrypt
			@param cipherText returned encrypted message
			@param algorithm encryption algorithm
		 @recip recipient certificates
				@return 0 on success

		@short    Encrypt a message  encrypts a message for the given list of recipients and the  selected algorithm.
	*/
	// KSMIMECrypto::rc encryptMessage(const TQCString& arg1,TQByteArray& arg2,KSMIMECrypto::algo arg3,const TQPtrList<KSSLCertificate>& arg4); >>>> NOT CONVERTED
	/**
		 Decrypt a message
			@param cipherText encrypted message block
			@param clearText returns decrypted message
			@param privKey private key to use
				@return 0 on success

		@short    Decrypt a message
	*/
	public native int decryptMessage(byte[] cipherText, StringBuffer clearText, KSSLPKCS12 privKey);
	/** Deletes the wrapped C++ instance */
	protected native void finalize() throws InternalError;
	/** Delete the wrapped C++ instance ahead of finalize() */
	public native void dispose();
	/** Has the wrapped C++ instance been deleted? */
	public native boolean isDisposed();
}
