1 package iaik.pkcs.pkcs11.wrapper;
2 
3 /**
4  * class CK_PKCS5_PBKD2_PARAMS provides the parameters to the CKM_PKCS5_PBKD2
5  * mechanism.<p>
6  * <B>PKCS#11 structure:</B>
7  * <PRE>
8  * typedef struct CK_PKCS5_PBKD2_PARAMS {
9  *   CK_PKCS5_PBKD2_SALT_SOURCE_TYPE saltSource;
10  *   CK_VOID_PTR pSaltSourceData;
11  *   CK_ULONG ulSaltSourceDataLen;
12  *   CK_ULONG iterations;
13  *   CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE prf;
14  *   CK_VOID_PTR pPrfData;
15  *   CK_ULONG ulPrfDataLen;
16  * } CK_PKCS5_PBKD2_PARAMS;
17  * </PRE>
18  *
19  * @author Karl Scheibelhofer <Karl.Scheibelhofer@iaik.at>
20  * @author Martin Schläffer <schlaeff@sbox.tugraz.at>
21  */
22 public class CK_PKCS5_PBKD2_PARAMS {
23 
24 	/**
25 	 * <B>PKCS#11:</B>
26 	 * <PRE>
27 	 *   CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE saltSource;
28 	 * </PRE>
29 	 */
30 	public long saltSource;
31 
32 	/**
33 	 * <B>PKCS#11:</B>
34 	 * <PRE>
35 	 *   CK_VOID_PTR pSaltSourceData;
36 	 *   CK_ULONG ulSaltSourceDataLen;
37 	 * </PRE>
38 	 */
39 	public byte[] pSaltSourceData;
40 
41 	/**
42 	 * <B>PKCS#11:</B>
43 	 * <PRE>
44 	 *   CK_ULONG iterations;
45 	 * </PRE>
46 	 */
47 	public long iterations;
48 
49 	/**
50 	 * <B>PKCS#11:</B>
51 	 * <PRE>
52 	 *   CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE prf;
53 	 * </PRE>
54 	 */
55 	public long prf;
56 
57 	/**
58 	 * <B>PKCS#11:</B>
59 	 * <PRE>
60 	 *   CK_VOID_PTR pPrfData;
61 	 *   CK_ULONG ulPrfDataLen;
62 	 * </PRE>
63 	 */
64 	public byte[] pPrfData;
65 
66 	/**
67 	 * Returns the string representation of CK_PKCS5_PBKD2_PARAMS.
68 	 *
69 	 * @return the string representation of CK_PKCS5_PBKD2_PARAMS
70 	 */
toString()71 	public String toString() {
72 		StringBuffer buffer = new StringBuffer();
73 
74 		buffer.append(Constants.INDENT);
75 		buffer.append("saltSource: ");
76 		buffer.append(saltSource);
77 		buffer.append(Constants.NEWLINE);
78 
79 		buffer.append(Constants.INDENT);
80 		buffer.append("pSaltSourceData: ");
81 		buffer.append(Functions.toHexString(pSaltSourceData));
82 		buffer.append(Constants.NEWLINE);
83 
84 		buffer.append(Constants.INDENT);
85 		buffer.append("ulSaltSourceDataLen: ");
86 		buffer.append(pSaltSourceData.length);
87 		buffer.append(Constants.NEWLINE);
88 
89 		buffer.append(Constants.INDENT);
90 		buffer.append("iterations: ");
91 		buffer.append(iterations);
92 		buffer.append(Constants.NEWLINE);
93 
94 		buffer.append(Constants.INDENT);
95 		buffer.append("prf: ");
96 		buffer.append(prf);
97 		buffer.append(Constants.NEWLINE);
98 
99 		buffer.append(Constants.INDENT);
100 		buffer.append("pPrfData: ");
101 		buffer.append(Functions.toHexString(pPrfData));
102 		buffer.append(Constants.NEWLINE);
103 
104 		buffer.append(Constants.INDENT);
105 		buffer.append("ulPrfDataLen: ");
106 		buffer.append(pPrfData.length);
107 		//buffer.append(Constants.NEWLINE);
108 
109 		return buffer.toString();
110 	}
111 
112 }
113