package org.openecard.mdlw.sal.cryptoki;
import com.sun.jna.Pointer;
import com.sun.jna.Structure;
import java.util.Arrays;
import java.util.List;
/**
 * <i>native declaration : pkcs11_v2.40/pkcs11t.h</i><br>
 * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
 * a tool written by <a href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
 * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> , <a href="http://rococoa.dev.java.net/">Rococoa</a>, or <a href="http://jna.dev.java.net/">JNA</a>.
 */
public class CK_PKCS5_PBKD2_PARAMS2 extends Structure {
	/** C type : CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE */
	public long saltSource;
	public long getSaltSource() {
		return saltSource;
	}
	public void setSaltSource(long saltSource) {
		this.saltSource = saltSource;
	}
	/** C type : CK_VOID_PTR */
	public Pointer pSaltSourceData;
	public Pointer getPSaltSourceData() {
		return pSaltSourceData;
	}
	public void setPSaltSourceData(Pointer pSaltSourceData) {
		this.pSaltSourceData = pSaltSourceData;
	}
	/** C type : CK_ULONG */
	public long ulSaltSourceDataLen;
	public long getUlSaltSourceDataLen() {
		return ulSaltSourceDataLen;
	}
	public void setUlSaltSourceDataLen(long ulSaltSourceDataLen) {
		this.ulSaltSourceDataLen = ulSaltSourceDataLen;
	}
	/** C type : CK_ULONG */
	public long iterations;
	public long getIterations() {
		return iterations;
	}
	public void setIterations(long iterations) {
		this.iterations = iterations;
	}
	/** C type : CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE */
	public long prf;
	public long getPrf() {
		return prf;
	}
	public void setPrf(long prf) {
		this.prf = prf;
	}
	/** C type : CK_VOID_PTR */
	public Pointer pPrfData;
	public Pointer getPPrfData() {
		return pPrfData;
	}
	public void setPPrfData(Pointer pPrfData) {
		this.pPrfData = pPrfData;
	}
	/** C type : CK_ULONG */
	public long ulPrfDataLen;
	public long getUlPrfDataLen() {
		return ulPrfDataLen;
	}
	public void setUlPrfDataLen(long ulPrfDataLen) {
		this.ulPrfDataLen = ulPrfDataLen;
	}
	/** C type : CK_UTF8CHAR_PTR */
	public Pointer pPassword;
	public Pointer getPPassword() {
		return pPassword;
	}
	public void setPPassword(Pointer pPassword) {
		this.pPassword = pPassword;
	}
	/** C type : CK_ULONG */
	public long ulPasswordLen;
	public long getUlPasswordLen() {
		return ulPasswordLen;
	}
	public void setUlPasswordLen(long ulPasswordLen) {
		this.ulPasswordLen = ulPasswordLen;
	}
	public CK_PKCS5_PBKD2_PARAMS2() {
		super();
	}
	 protected List<String> getFieldOrder() {
		return Arrays.asList("saltSource", "pSaltSourceData", "ulSaltSourceDataLen", "iterations", "prf", "pPrfData", "ulPrfDataLen", "pPassword", "ulPasswordLen");
	}
	/**
	 * @param saltSource C type : CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE<br>
	 * @param pSaltSourceData C type : CK_VOID_PTR<br>
	 * @param ulSaltSourceDataLen C type : CK_ULONG<br>
	 * @param iterations C type : CK_ULONG<br>
	 * @param prf C type : CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE<br>
	 * @param pPrfData C type : CK_VOID_PTR<br>
	 * @param ulPrfDataLen C type : CK_ULONG<br>
	 * @param pPassword C type : CK_UTF8CHAR_PTR<br>
	 * @param ulPasswordLen C type : CK_ULONG
	 */
	public CK_PKCS5_PBKD2_PARAMS2(long saltSource, Pointer pSaltSourceData, long ulSaltSourceDataLen, long iterations, long prf, Pointer pPrfData, long ulPrfDataLen, Pointer pPassword, long ulPasswordLen) {
		super();
		this.saltSource = saltSource;
		this.pSaltSourceData = pSaltSourceData;
		this.ulSaltSourceDataLen = ulSaltSourceDataLen;
		this.iterations = iterations;
		this.prf = prf;
		this.pPrfData = pPrfData;
		this.ulPrfDataLen = ulPrfDataLen;
		this.pPassword = pPassword;
		this.ulPasswordLen = ulPasswordLen;
	}
	public CK_PKCS5_PBKD2_PARAMS2(Pointer peer) {
		super(peer);
	}
	public static class ByReference extends CK_PKCS5_PBKD2_PARAMS2 implements Structure.ByReference {
		
	};
	public static class ByValue extends CK_PKCS5_PBKD2_PARAMS2 implements Structure.ByValue {
		
	};
}
