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_SSL3_KEY_MAT_OUT contains the resulting key handles and 54 * initialization vectors after performing a C_DeriveKey function with the 55 * CKM_SSL3_KEY_AND_MAC_DERIVE mechanism.<p> 56 * <B>PKCS#11 structure:</B> 57 * <PRE> 58 * typedef struct CK_SSL3_KEY_MAT_OUT { 59 * CK_OBJECT_HANDLE hClientMacSecret; 60 * CK_OBJECT_HANDLE hServerMacSecret; 61 * CK_OBJECT_HANDLE hClientKey; 62 * CK_OBJECT_HANDLE hServerKey; 63 * CK_BYTE_PTR pIVClient; 64 * CK_BYTE_PTR pIVServer; 65 * } CK_SSL3_KEY_MAT_OUT; 66 * </PRE> 67 * 68 * @author Karl Scheibelhofer <Karl.Scheibelhofer@iaik.at> 69 * @author Martin Schlaeffer <schlaeff@sbox.tugraz.at> 70 */ 71 public class CK_SSL3_KEY_MAT_OUT{ 72 73 /** 74 * <B>PKCS#11:</B> 75 * <PRE> 76 * CK_OBJECT_HANDLE hClientMacSecret; 77 * </PRE> 78 */ 79 public long hClientMacSecret; 80 81 /** 82 * <B>PKCS#11:</B> 83 * <PRE> 84 * CK_OBJECT_HANDLE hServerMacSecret; 85 * </PRE> 86 */ 87 public long hServerMacSecret; 88 89 /** 90 * <B>PKCS#11:</B> 91 * <PRE> 92 * CK_OBJECT_HANDLE hClientKey; 93 * </PRE> 94 */ 95 public long hClientKey; 96 97 /** 98 * <B>PKCS#11:</B> 99 * <PRE> 100 * CK_OBJECT_HANDLE hServerKey; 101 * </PRE> 102 */ 103 public long hServerKey; 104 105 /** 106 * <B>PKCS#11:</B> 107 * <PRE> 108 * CK_BYTE_PTR pIVClient; 109 * </PRE> 110 */ 111 public byte[] pIVClient; 112 113 /** 114 * <B>PKCS#11:</B> 115 * <PRE> 116 * CK_BYTE_PTR pIVServer; 117 * </PRE> 118 */ 119 public byte[] pIVServer; 120 121 /** 122 * Returns the string representation of CK_SSL3_KEY_MAT_OUT. 123 * 124 * @return the string representation of CK_SSL3_KEY_MAT_OUT 125 */ 126 public String toString() { 127 StringBuilder buffer = new StringBuilder(); 128 129 buffer.append(Constants.INDENT); 130 buffer.append("hClientMacSecret: "); 131 buffer.append(hClientMacSecret); 132 buffer.append(Constants.NEWLINE); 133 134 buffer.append(Constants.INDENT); 135 buffer.append("hServerMacSecret: "); 136 buffer.append(hServerMacSecret); 137 buffer.append(Constants.NEWLINE); 138 139 buffer.append(Constants.INDENT); 140 buffer.append("hClientKey: "); 141 buffer.append(hClientKey); 142 buffer.append(Constants.NEWLINE); 143 144 buffer.append(Constants.INDENT); 145 buffer.append("hServerKey: "); 146 buffer.append(hServerKey); 147 buffer.append(Constants.NEWLINE); 148 149 buffer.append(Constants.INDENT); 150 buffer.append("pIVClient: "); 151 buffer.append(Functions.toHexString(pIVClient)); 152 buffer.append(Constants.NEWLINE); 153 154 buffer.append(Constants.INDENT); 155 buffer.append("pIVServer: "); 156 buffer.append(Functions.toHexString(pIVServer)); 157 //buffer.append(Constants.NEWLINE); 158 159 return buffer.toString(); 160 } 161 162 }