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

import org.trinitydesktop.qt.Qt;
import org.trinitydesktop.qt.QtSupport;

/**

 KDE PKCS#12 Certificate
 As of yet, this class is being defined.  if you use it, let it be known
 that BC will break on you until this message is removed.
		@author George Staikos <staikos@kde.org>

		@short KDE PKCS#12 Certificate.
		@see KSSL
		@see KSSLCertificate

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

	/**
		  The name of this certificate.  This can be used to refer to the
		  certificate instead of passing the object itself.
				@return the name of the certificate

		@short     The name of this certificate.
	*/
	public native String name();
	/**
		  Convert to a Base64 string.
				@return the certificate in base64 form

		@short     Convert to a Base64 string.
	*/
	public native String toString();
	/**
		  Raw set the PKCS12 object.
			@param c the openssl PKCS12 object
				 		@short     Raw set the PKCS12 object.
	*/
	// void setCert(PKCS12* arg1); >>>> NOT CONVERTED
	/**
		  Change the password of the PKCS#12 in memory.
			@param pold the old password
			@param pnew the new password
				@return true on success

		@short     Change the password of the PKCS#12 in memory.
	*/
	public native boolean changePassword(String pold, String pnew);
	/**
		  Get the private key.
				 		@return the internal OpenSSL private key format

		@short     Get the private key.
	*/
	// EVP_PKEY* getPrivateKey(); >>>> NOT CONVERTED
	/**
		  Get the X.509 certificate.
				@return the X.509 certificate for the PKCS#12 object, or NULL

		@short     Get the X.
	*/
	public native KSSLCertificate getCertificate();
	/**
		  Write the PKCS#12 to a file in raw mode.
			@param filename the file to write to
				@return true on success

		@short     Write the PKCS#12 to a file in raw mode.
	*/
	public native boolean toFile(String filename);
	/**
		  Check the X.509 and private key to make sure they're valid.
				@return the result of the validation

		@short     Check the X.
		@see KSSLCertificate
	*/
	public native int validate();
	/**
		  Check the X.509 and private key to make sure they're valid.
			@param p the purpose to validate for
				@return the result of the validation

		@short     Check the X.
		@see KSSLCertificate
	*/
	public native int validate(int p);
	/**
		  Check the X.509 and private key to make sure they're valid.
		  Ignore any cached validation result.
				@return the result of the validation

		@short     Check the X.
		@see KSSLCertificate
	*/
	public native int revalidate();
	/**
		  Check the X.509 and private key to make sure they're valid.
		  Ignore any cached validation result.
			@param p the purpose to validate for
				@return the result of the validation

		@short     Check the X.
		@see KSSLCertificate
	*/
	public native int revalidate(int p);
	/**
		  Check if the X.509 and private key are valid.
				@return true if valid

		@short     Check if the X.
	*/
	public native boolean isValid();
	/**
		  Check if the X.509 and private key are valid.
			@param p the purpose to validate for
				@return true if valid

		@short     Check if the X.
	*/
	public native boolean isValid(int p);
	/**
		  Create a KSSLPKCS12 object from a Base64 in a String.
			@param base64 the base64 encoded certificate
			@param password a password for the certificate if encrypted
				@return the PKCS#12 object, or NULL on failure.

		@short     Create a KSSLPKCS12 object from a Base64 in a String.
	*/
	public static native KSSLPKCS12 fromString(String base64, String password);
	public static native KSSLPKCS12 fromString(String base64);
	/**
		  Create a KSSLPKCS12 object by reading a PKCS#12 file.
			@param filename the filename of the certificate
			@param password a password for the certificate if encrypted
				@return the PKCS#12 object, or NULL on failure.

		@short     Create a KSSLPKCS12 object by reading a PKCS#12 file.
	*/
	public static native KSSLPKCS12 loadCertFile(String filename, String password);
	public static native KSSLPKCS12 loadCertFile(String filename);
	public KSSLPKCS12() {
		newKSSLPKCS12();
	}
	private native void newKSSLPKCS12();
	protected native boolean parse(String pass);
	/** 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();
}
