1 /*
2  * reserved comment block
3  * DO NOT REMOVE OR ALTER!
4  */
5 /* Copyright  (c) 2002 Graz University of Technology. All rights reserved.
6  *
7  * Redistribution and use in  source and binary forms, with or without
8  * modification, are permitted  provided that the following conditions are met:
9  *
10  * 1. Redistributions of  source code must retain the above copyright notice,
11  *    this list of conditions and the following disclaimer.
12  *
13  * 2. Redistributions in  binary form must reproduce the above copyright notice,
14  *    this list of conditions and the following disclaimer in the documentation
15  *    and/or other materials provided with the distribution.
16  *
17  * 3. The end-user documentation included with the redistribution, if any, must
18  *    include the following acknowledgment:
19  *
20  *    "This product includes software developed by IAIK of Graz University of
21  *     Technology."
22  *
23  *    Alternately, this acknowledgment may appear in the software itself, if
24  *    and wherever such third-party acknowledgments normally appear.
25  *
26  * 4. The names "Graz University of Technology" and "IAIK of Graz University of
27  *    Technology" must not be used to endorse or promote products derived from
28  *    this software without prior written permission.
29  *
30  * 5. Products derived from this software may not be called
31  *    "IAIK PKCS Wrapper", nor may "IAIK" appear in their name, without prior
32  *    written permission of Graz University of Technology.
33  *
34  *  THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
35  *  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
36  *  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
37  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE LICENSOR BE
38  *  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
39  *  OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
40  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
41  *  OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
42  *  ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
43  *  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
44  *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
45  *  POSSIBILITY  OF SUCH DAMAGE.
46  */
47 
48 package sun.security.pkcs11.wrapper;
49 
50 
51 
52 /**
53  * class CK_RSA_PKCS_OAEP_PARAMS provides the parameters to the
54  * CKM_RSA_PKCS_OAEP mechanism.<p>
55  * <B>PKCS#11 structure:</B>
56  * <PRE>
57  * typedef struct CK_RSA_PKCS_OAEP_PARAMS {
58  *   CK_MECHANISM_TYPE hashAlg;
59  *   CK_RSA_PKCS_OAEP_MGF_TYPE mgf;
60  *   CK_RSA_PKCS_OAEP_SOURCE_TYPE source;
61  *   CK_VOID_PTR pSourceData;
62  *   CK_ULONG ulSourceDataLen;
63  * } CK_RSA_PKCS_OAEP_PARAMS;
64  * </PRE>
65  *
66  * @author Karl Scheibelhofer <Karl.Scheibelhofer@iaik.at>
67  * @author Martin Schlaeffer <schlaeff@sbox.tugraz.at>
68  */
69 public class CK_RSA_PKCS_OAEP_PARAMS {
70 
71     /**
72      * <B>PKCS#11:</B>
73      * <PRE>
74      *   CK_MECHANISM_TYPE hashAlg;
75      * </PRE>
76      */
77     public long hashAlg;
78 
79     /**
80      * <B>PKCS#11:</B>
81      * <PRE>
82      *   CK_RSA_PKCS_OAEP_MGF_TYPE mgf;
83      * </PRE>
84      */
85     public long mgf;
86 
87     /**
88      * <B>PKCS#11:</B>
89      * <PRE>
90      *   CK_RSA_PKCS_OAEP_SOURCE_TYPE source;
91      * </PRE>
92      */
93     public long source;
94 
95     /**
96      * <B>PKCS#11:</B>
97      * <PRE>
98      *   CK_VOID_PTR pSourceData;
99      *   CK_ULONG ulSourceDataLen;
100      * </PRE>
101      */
102     public byte[] pSourceData;
103 
104     //CK_ULONG ulSourceDataLen;
105     // ulSourceDataLen == pSourceData.length
106 
107     /**
108      * Returns the string representation of CK_RSA_PKCS_OAEP_PARAMS.
109      *
110      * @return the string representation of CK_RSA_PKCS_OAEP_PARAMS
111      */
toString()112     public String toString() {
113         StringBuilder sb = new StringBuilder();
114 
115         sb.append(Constants.INDENT);
116         sb.append("hashAlg: ");
117         sb.append(hashAlg);
118         sb.append(Constants.NEWLINE);
119 
120         sb.append(Constants.INDENT);
121         sb.append("mgf: ");
122         sb.append(mgf);
123         sb.append(Constants.NEWLINE);
124 
125         sb.append(Constants.INDENT);
126         sb.append("source: ");
127         sb.append(source);
128         sb.append(Constants.NEWLINE);
129 
130         sb.append(Constants.INDENT);
131         sb.append("pSourceData: ");
132         sb.append(pSourceData.toString());
133         sb.append(Constants.NEWLINE);
134 
135         sb.append(Constants.INDENT);
136         sb.append("pSourceDataLen: ");
137         sb.append(Functions.toHexString(pSourceData));
138         //buffer.append(Constants.NEWLINE);
139 
140         return sb.toString() ;
141     }
142 
143 }
144