Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(252)

Side by Side Diff: mozilla/security/nss/lib/ckfw/builtins/bobject.c

Issue 14249009: Change the NSS and NSPR source tree to the new directory structure to be (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/nss/
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4
5 #ifdef DEBUG
6 static const char CVS_ID[] = "@(#) $RCSfile: bobject.c,v $ $Revision: 1.5 $ $Dat e: 2012/04/25 14:49:29 $";
7 #endif /* DEBUG */
8
9 #include "builtins.h"
10
11 /*
12 * builtins/object.c
13 *
14 * This file implements the NSSCKMDObject object for the
15 * "builtin objects" cryptoki module.
16 */
17
18 /*
19 * Finalize - unneeded
20 * Destroy - CKR_SESSION_READ_ONLY
21 * IsTokenObject - CK_TRUE
22 * GetAttributeCount
23 * GetAttributeTypes
24 * GetAttributeSize
25 * GetAttribute
26 * SetAttribute - unneeded
27 * GetObjectSize
28 */
29
30 static CK_RV
31 builtins_mdObject_Destroy
32 (
33 NSSCKMDObject *mdObject,
34 NSSCKFWObject *fwObject,
35 NSSCKMDSession *mdSession,
36 NSSCKFWSession *fwSession,
37 NSSCKMDToken *mdToken,
38 NSSCKFWToken *fwToken,
39 NSSCKMDInstance *mdInstance,
40 NSSCKFWInstance *fwInstance
41 )
42 {
43 return CKR_SESSION_READ_ONLY;
44 }
45
46 static CK_BBOOL
47 builtins_mdObject_IsTokenObject
48 (
49 NSSCKMDObject *mdObject,
50 NSSCKFWObject *fwObject,
51 NSSCKMDSession *mdSession,
52 NSSCKFWSession *fwSession,
53 NSSCKMDToken *mdToken,
54 NSSCKFWToken *fwToken,
55 NSSCKMDInstance *mdInstance,
56 NSSCKFWInstance *fwInstance
57 )
58 {
59 return CK_TRUE;
60 }
61
62 static CK_ULONG
63 builtins_mdObject_GetAttributeCount
64 (
65 NSSCKMDObject *mdObject,
66 NSSCKFWObject *fwObject,
67 NSSCKMDSession *mdSession,
68 NSSCKFWSession *fwSession,
69 NSSCKMDToken *mdToken,
70 NSSCKFWToken *fwToken,
71 NSSCKMDInstance *mdInstance,
72 NSSCKFWInstance *fwInstance,
73 CK_RV *pError
74 )
75 {
76 builtinsInternalObject *io = (builtinsInternalObject *)mdObject->etc;
77 return io->n;
78 }
79
80 static CK_RV
81 builtins_mdObject_GetAttributeTypes
82 (
83 NSSCKMDObject *mdObject,
84 NSSCKFWObject *fwObject,
85 NSSCKMDSession *mdSession,
86 NSSCKFWSession *fwSession,
87 NSSCKMDToken *mdToken,
88 NSSCKFWToken *fwToken,
89 NSSCKMDInstance *mdInstance,
90 NSSCKFWInstance *fwInstance,
91 CK_ATTRIBUTE_TYPE_PTR typeArray,
92 CK_ULONG ulCount
93 )
94 {
95 builtinsInternalObject *io = (builtinsInternalObject *)mdObject->etc;
96 CK_ULONG i;
97
98 if( io->n != ulCount ) {
99 return CKR_BUFFER_TOO_SMALL;
100 }
101
102 for( i = 0; i < io->n; i++ ) {
103 typeArray[i] = io->types[i];
104 }
105
106 return CKR_OK;
107 }
108
109 static CK_ULONG
110 builtins_mdObject_GetAttributeSize
111 (
112 NSSCKMDObject *mdObject,
113 NSSCKFWObject *fwObject,
114 NSSCKMDSession *mdSession,
115 NSSCKFWSession *fwSession,
116 NSSCKMDToken *mdToken,
117 NSSCKFWToken *fwToken,
118 NSSCKMDInstance *mdInstance,
119 NSSCKFWInstance *fwInstance,
120 CK_ATTRIBUTE_TYPE attribute,
121 CK_RV *pError
122 )
123 {
124 builtinsInternalObject *io = (builtinsInternalObject *)mdObject->etc;
125 CK_ULONG i;
126
127 for( i = 0; i < io->n; i++ ) {
128 if( attribute == io->types[i] ) {
129 return (CK_ULONG)(io->items[i].size);
130 }
131 }
132
133 *pError = CKR_ATTRIBUTE_TYPE_INVALID;
134 return 0;
135 }
136
137 static NSSCKFWItem
138 builtins_mdObject_GetAttribute
139 (
140 NSSCKMDObject *mdObject,
141 NSSCKFWObject *fwObject,
142 NSSCKMDSession *mdSession,
143 NSSCKFWSession *fwSession,
144 NSSCKMDToken *mdToken,
145 NSSCKFWToken *fwToken,
146 NSSCKMDInstance *mdInstance,
147 NSSCKFWInstance *fwInstance,
148 CK_ATTRIBUTE_TYPE attribute,
149 CK_RV *pError
150 )
151 {
152 NSSCKFWItem mdItem;
153 builtinsInternalObject *io = (builtinsInternalObject *)mdObject->etc;
154 CK_ULONG i;
155
156 mdItem.needsFreeing = PR_FALSE;
157 mdItem.item = (NSSItem*) NULL;
158
159 for( i = 0; i < io->n; i++ ) {
160 if( attribute == io->types[i] ) {
161 mdItem.item = (NSSItem*) &io->items[i];
162 return mdItem;
163 }
164 }
165
166 *pError = CKR_ATTRIBUTE_TYPE_INVALID;
167 return mdItem;
168 }
169
170 static CK_ULONG
171 builtins_mdObject_GetObjectSize
172 (
173 NSSCKMDObject *mdObject,
174 NSSCKFWObject *fwObject,
175 NSSCKMDSession *mdSession,
176 NSSCKFWSession *fwSession,
177 NSSCKMDToken *mdToken,
178 NSSCKFWToken *fwToken,
179 NSSCKMDInstance *mdInstance,
180 NSSCKFWInstance *fwInstance,
181 CK_RV *pError
182 )
183 {
184 builtinsInternalObject *io = (builtinsInternalObject *)mdObject->etc;
185 CK_ULONG i;
186 CK_ULONG rv = sizeof(CK_ULONG);
187
188 for( i = 0; i < io->n; i++ ) {
189 rv += sizeof(CK_ATTRIBUTE_TYPE) + sizeof(NSSItem) + io->items[i].size;
190 }
191
192 return rv;
193 }
194
195 static const NSSCKMDObject
196 builtins_prototype_mdObject = {
197 (void *)NULL, /* etc */
198 NULL, /* Finalize */
199 builtins_mdObject_Destroy,
200 builtins_mdObject_IsTokenObject,
201 builtins_mdObject_GetAttributeCount,
202 builtins_mdObject_GetAttributeTypes,
203 builtins_mdObject_GetAttributeSize,
204 builtins_mdObject_GetAttribute,
205 NULL, /* FreeAttribute */
206 NULL, /* SetAttribute */
207 builtins_mdObject_GetObjectSize,
208 (void *)NULL /* null terminator */
209 };
210
211 NSS_IMPLEMENT NSSCKMDObject *
212 nss_builtins_CreateMDObject
213 (
214 NSSArena *arena,
215 builtinsInternalObject *io,
216 CK_RV *pError
217 )
218 {
219 if ( (void*)NULL == io->mdObject.etc) {
220 (void) nsslibc_memcpy(&io->mdObject,&builtins_prototype_mdObject,
221 sizeof(builtins_prototype_mdObject));
222 io->mdObject.etc = (void *)io;
223 }
224
225 return &io->mdObject;
226 }
OLDNEW
« no previous file with comments | « mozilla/security/nss/lib/ckfw/builtins/binst.c ('k') | mozilla/security/nss/lib/ckfw/builtins/bsession.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698