Mercurial > illumos > illumos-gate
annotate usr/src/lib/pkcs11/pkcs11_kms/common/kmsDigest.c @ 12720:3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
6944296 Solaris needs a PKCS#11 provider to allow access to KMS keystore functionality
author | Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM> |
---|---|
date | Mon, 28 Jun 2010 16:04:11 -0700 |
parents | |
children |
rev | line source |
---|---|
12720
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
1 /* |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
2 * CDDL HEADER START |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
3 * |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
4 * The contents of this file are subject to the terms of the |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
5 * Common Development and Distribution License (the "License"). |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
6 * You may not use this file except in compliance with the License. |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
7 * |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
9 * or http://www.opensolaris.org/os/licensing. |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
10 * See the License for the specific language governing permissions |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
11 * and limitations under the License. |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
12 * |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
13 * When distributing Covered Code, include this CDDL HEADER in each |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
15 * If applicable, add the following below this CDDL HEADER, with the |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
16 * fields enclosed by brackets "[]" replaced with your own identifying |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
17 * information: Portions Copyright [yyyy] [name of copyright owner] |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
18 * |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
19 * CDDL HEADER END |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
20 * |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
21 * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
22 */ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
23 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
24 #include <security/cryptoki.h> |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
25 #include "kmsGlobal.h" |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
26 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
27 /*ARGSUSED*/ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
28 CK_RV |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
29 C_DigestInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
30 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
31 if (!kms_initialized) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
32 return (CKR_CRYPTOKI_NOT_INITIALIZED); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
33 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
34 return (CKR_FUNCTION_NOT_SUPPORTED); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
35 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
36 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
37 /*ARGSUSED*/ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
38 CK_RV |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
39 C_Digest(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
40 CK_BYTE_PTR pDigest, CK_ULONG_PTR pulDigestLen) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
41 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
42 if (!kms_initialized) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
43 return (CKR_CRYPTOKI_NOT_INITIALIZED); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
44 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
45 return (CKR_FUNCTION_NOT_SUPPORTED); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
46 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
47 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
48 /*ARGSUSED*/ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
49 CK_RV |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
50 C_DigestUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
51 CK_ULONG ulPartLen) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
52 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
53 if (!kms_initialized) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
54 return (CKR_CRYPTOKI_NOT_INITIALIZED); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
55 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
56 return (CKR_FUNCTION_NOT_SUPPORTED); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
57 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
58 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
59 /*ARGSUSED*/ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
60 CK_RV |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
61 C_DigestKey(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hKey) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
62 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
63 if (!kms_initialized) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
64 return (CKR_CRYPTOKI_NOT_INITIALIZED); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
65 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
66 return (CKR_FUNCTION_NOT_SUPPORTED); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
67 } |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
68 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
69 /*ARGSUSED*/ |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
70 CK_RV |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
71 C_DigestFinal(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pDigest, |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
72 CK_ULONG_PTR pulDigestLen) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
73 { |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
74 if (!kms_initialized) |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
75 return (CKR_CRYPTOKI_NOT_INITIALIZED); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
76 |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
77 return (CKR_FUNCTION_NOT_SUPPORTED); |
3db6e0082404
PSARC 2010/195 PKCS11 KMS Provider
Wyllys Ingersoll <Wyllys.Ingersoll@Sun.COM>
parents:
diff
changeset
|
78 } |