package org.openecard.mdlw.sal.cryptoki;
import com.sun.jna.Pointer;
import com.sun.jna.Structure;
import com.sun.jna.ptr.LongByReference;
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_TLS_PRF_PARAMS extends Structure {
	/** C type : CK_BYTE_PTR */
	public Pointer pSeed;
	public Pointer getPSeed() {
		return pSeed;
	}
	public void setPSeed(Pointer pSeed) {
		this.pSeed = pSeed;
	}
	/** C type : CK_ULONG */
	public long ulSeedLen;
	public long getUlSeedLen() {
		return ulSeedLen;
	}
	public void setUlSeedLen(long ulSeedLen) {
		this.ulSeedLen = ulSeedLen;
	}
	/** C type : CK_BYTE_PTR */
	public Pointer pLabel;
	public Pointer getPLabel() {
		return pLabel;
	}
	public void setPLabel(Pointer pLabel) {
		this.pLabel = pLabel;
	}
	/** C type : CK_ULONG */
	public long ulLabelLen;
	public long getUlLabelLen() {
		return ulLabelLen;
	}
	public void setUlLabelLen(long ulLabelLen) {
		this.ulLabelLen = ulLabelLen;
	}
	/** C type : CK_BYTE_PTR */
	public Pointer pOutput;
	public Pointer getPOutput() {
		return pOutput;
	}
	public void setPOutput(Pointer pOutput) {
		this.pOutput = pOutput;
	}
	/** C type : CK_ULONG_PTR */
	public LongByReference pulOutputLen;
	public LongByReference getPulOutputLen() {
		return pulOutputLen;
	}
	public void setPulOutputLen(LongByReference pulOutputLen) {
		this.pulOutputLen = pulOutputLen;
	}
	public CK_TLS_PRF_PARAMS() {
		super();
	}
	 protected List<String> getFieldOrder() {
		return Arrays.asList("pSeed", "ulSeedLen", "pLabel", "ulLabelLen", "pOutput", "pulOutputLen");
	}
	/**
	 * @param pSeed C type : CK_BYTE_PTR<br>
	 * @param ulSeedLen C type : CK_ULONG<br>
	 * @param pLabel C type : CK_BYTE_PTR<br>
	 * @param ulLabelLen C type : CK_ULONG<br>
	 * @param pOutput C type : CK_BYTE_PTR<br>
	 * @param pulOutputLen C type : CK_ULONG_PTR
	 */
	public CK_TLS_PRF_PARAMS(Pointer pSeed, long ulSeedLen, Pointer pLabel, long ulLabelLen, Pointer pOutput, LongByReference pulOutputLen) {
		super();
		this.pSeed = pSeed;
		this.ulSeedLen = ulSeedLen;
		this.pLabel = pLabel;
		this.ulLabelLen = ulLabelLen;
		this.pOutput = pOutput;
		this.pulOutputLen = pulOutputLen;
	}
	public CK_TLS_PRF_PARAMS(Pointer peer) {
		super(peer);
	}
	public static class ByReference extends CK_TLS_PRF_PARAMS implements Structure.ByReference {
		
	};
	public static class ByValue extends CK_TLS_PRF_PARAMS implements Structure.ByValue {
		
	};
}
