1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License, Version 1.0 only
6  * (the "License").  You may not use this file except in compliance
7  * with the License.
8  *
9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10  * or http://www.opensolaris.org/os/licensing.
11  * See the License for the specific language governing permissions
12  * and limitations under the License.
13  *
14  * When distributing Covered Code, include this CDDL HEADER in each
15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16  * If applicable, add the following below this CDDL HEADER, with the
17  * fields enclosed by brackets "[]" replaced with your own identifying
18  * information: Portions Copyright [yyyy] [name of copyright owner]
19  *
20  * CDDL HEADER END
21  */
22 /*
23  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
24  * Use is subject to license terms.
25  */
26 
27 /*
28  * Dual-Function Cryptographic Functions
29  * (as defined in PKCS#11 spec section 11.13)
30  *
31  * These functions will not be supported in the this release.
32  * A call to these functions returns CKR_FUNCTION_NOT_SUPPORTED.
33  *
34  * Providing the support for dual-function crypto functions is
35  * not trivial.  C_FooInit() need to be called for the 2 crypto
36  * operations before any of these function can be called.
37  * When C_FooInit() is called, metaslot doesn't know if it is going
38  * to do dual-function crypto or single crypto operation.
39  * So, it has no way to pick the slot that supports both the mechanism
40  * it specified and supports dual-functions.
41  *
42  * In order for these dual functions to be supported in the future,
43  * metaslot need to simulate the dual-function crypto operations
44  * when both operations are not lucky enough be to initialized in
45  * the same slots that supports dual-functions.
46  */
47 
48 #include "metaGlobal.h"
49 
50 /*
51  * meta_DigestEncryptUpdate
52  *
53  */
54 /*ARGSUSED*/
55 CK_RV
meta_DigestEncryptUpdate(CK_SESSION_HANDLE hSession,CK_BYTE_PTR pPart,CK_ULONG ulPartLen,CK_BYTE_PTR pEncryptedPart,CK_ULONG_PTR pulEncryptedPartLen)56 meta_DigestEncryptUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart,
57     CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart,
58     CK_ULONG_PTR pulEncryptedPartLen)
59 {
60 	return (CKR_FUNCTION_NOT_SUPPORTED);
61 }
62 
63 /*
64  * meta_DecryptDigestUpdate
65  *
66  */
67 /*ARGSUSED*/
68 CK_RV
meta_DecryptDigestUpdate(CK_SESSION_HANDLE hSession,CK_BYTE_PTR pEncryptedPart,CK_ULONG ulEncryptedPartLen,CK_BYTE_PTR pPart,CK_ULONG_PTR pulPartLen)69 meta_DecryptDigestUpdate(CK_SESSION_HANDLE hSession,
70     CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen,
71     CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen)
72 {
73 	return (CKR_FUNCTION_NOT_SUPPORTED);
74 }
75 
76 /*
77  * meta_SignEncryptUpdate
78  *
79  */
80 /*ARGSUSED*/
81 CK_RV
meta_SignEncryptUpdate(CK_SESSION_HANDLE hSession,CK_BYTE_PTR pPart,CK_ULONG ulPartLen,CK_BYTE_PTR pEncryptedPart,CK_ULONG_PTR pulEncryptedPartLen)82 meta_SignEncryptUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart,
83     CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart,
84     CK_ULONG_PTR pulEncryptedPartLen)
85 {
86 	return (CKR_FUNCTION_NOT_SUPPORTED);
87 }
88 
89 /*
90  * meta_DecryptVerifyUpdate
91  *
92  */
93 /*ARGSUSED*/
94 CK_RV
meta_DecryptVerifyUpdate(CK_SESSION_HANDLE hSession,CK_BYTE_PTR pEncryptedPart,CK_ULONG ulEncryptedPartLen,CK_BYTE_PTR pPart,CK_ULONG_PTR pulPartLen)95 meta_DecryptVerifyUpdate(CK_SESSION_HANDLE hSession,
96     CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen,
97     CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen)
98 {
99 	return (CKR_FUNCTION_NOT_SUPPORTED);
100 }
101