security/nss/lib/ckfw/dbm/object.c

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

michael@0 1 /* This Source Code Form is subject to the terms of the Mozilla Public
michael@0 2 * License, v. 2.0. If a copy of the MPL was not distributed with this
michael@0 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
michael@0 4
michael@0 5 #include "ckdbm.h"
michael@0 6
michael@0 7 static void
michael@0 8 nss_dbm_mdObject_Finalize
michael@0 9 (
michael@0 10 NSSCKMDObject *mdObject,
michael@0 11 NSSCKFWObject *fwObject,
michael@0 12 NSSCKMDSession *mdSession,
michael@0 13 NSSCKFWSession *fwSession,
michael@0 14 NSSCKMDToken *mdToken,
michael@0 15 NSSCKFWToken *fwToken,
michael@0 16 NSSCKMDInstance *mdInstance,
michael@0 17 NSSCKFWInstance *fwInstance
michael@0 18 )
michael@0 19 {
michael@0 20 ;
michael@0 21 }
michael@0 22
michael@0 23 static CK_RV
michael@0 24 nss_dbm_mdObject_Destroy
michael@0 25 (
michael@0 26 NSSCKMDObject *mdObject,
michael@0 27 NSSCKFWObject *fwObject,
michael@0 28 NSSCKMDSession *mdSession,
michael@0 29 NSSCKFWSession *fwSession,
michael@0 30 NSSCKMDToken *mdToken,
michael@0 31 NSSCKFWToken *fwToken,
michael@0 32 NSSCKMDInstance *mdInstance,
michael@0 33 NSSCKFWInstance *fwInstance
michael@0 34 )
michael@0 35 {
michael@0 36 nss_dbm_object_t *object = (nss_dbm_object_t *)mdObject->etc;
michael@0 37 return nss_dbm_db_delete_object(object->handle);
michael@0 38 }
michael@0 39
michael@0 40 static CK_ULONG
michael@0 41 nss_dbm_mdObject_GetAttributeCount
michael@0 42 (
michael@0 43 NSSCKMDObject *mdObject,
michael@0 44 NSSCKFWObject *fwObject,
michael@0 45 NSSCKMDSession *mdSession,
michael@0 46 NSSCKFWSession *fwSession,
michael@0 47 NSSCKMDToken *mdToken,
michael@0 48 NSSCKFWToken *fwToken,
michael@0 49 NSSCKMDInstance *mdInstance,
michael@0 50 NSSCKFWInstance *fwInstance,
michael@0 51 CK_RV *pError
michael@0 52 )
michael@0 53 {
michael@0 54 nss_dbm_object_t *object = (nss_dbm_object_t *)mdObject->etc;
michael@0 55 nss_dbm_session_t *session = (nss_dbm_session_t *)mdSession->etc;
michael@0 56 return nss_dbm_db_get_object_attribute_count(object->handle, pError,
michael@0 57 &session->deviceError);
michael@0 58 }
michael@0 59
michael@0 60 static CK_RV
michael@0 61 nss_dbm_mdObject_GetAttributeTypes
michael@0 62 (
michael@0 63 NSSCKMDObject *mdObject,
michael@0 64 NSSCKFWObject *fwObject,
michael@0 65 NSSCKMDSession *mdSession,
michael@0 66 NSSCKFWSession *fwSession,
michael@0 67 NSSCKMDToken *mdToken,
michael@0 68 NSSCKFWToken *fwToken,
michael@0 69 NSSCKMDInstance *mdInstance,
michael@0 70 NSSCKFWInstance *fwInstance,
michael@0 71 CK_ATTRIBUTE_TYPE_PTR typeArray,
michael@0 72 CK_ULONG ulCount
michael@0 73 )
michael@0 74 {
michael@0 75 nss_dbm_object_t *object = (nss_dbm_object_t *)mdObject->etc;
michael@0 76 nss_dbm_session_t *session = (nss_dbm_session_t *)mdSession->etc;
michael@0 77 return nss_dbm_db_get_object_attribute_types(object->handle, typeArray,
michael@0 78 ulCount, &session->deviceError);
michael@0 79 }
michael@0 80
michael@0 81 static CK_ULONG
michael@0 82 nss_dbm_mdObject_GetAttributeSize
michael@0 83 (
michael@0 84 NSSCKMDObject *mdObject,
michael@0 85 NSSCKFWObject *fwObject,
michael@0 86 NSSCKMDSession *mdSession,
michael@0 87 NSSCKFWSession *fwSession,
michael@0 88 NSSCKMDToken *mdToken,
michael@0 89 NSSCKFWToken *fwToken,
michael@0 90 NSSCKMDInstance *mdInstance,
michael@0 91 NSSCKFWInstance *fwInstance,
michael@0 92 CK_ATTRIBUTE_TYPE attribute,
michael@0 93 CK_RV *pError
michael@0 94 )
michael@0 95 {
michael@0 96 nss_dbm_object_t *object = (nss_dbm_object_t *)mdObject->etc;
michael@0 97 nss_dbm_session_t *session = (nss_dbm_session_t *)mdSession->etc;
michael@0 98 return nss_dbm_db_get_object_attribute_size(object->handle, attribute, pError,
michael@0 99 &session->deviceError);
michael@0 100 }
michael@0 101
michael@0 102 static NSSItem *
michael@0 103 nss_dbm_mdObject_GetAttribute
michael@0 104 (
michael@0 105 NSSCKMDObject *mdObject,
michael@0 106 NSSCKFWObject *fwObject,
michael@0 107 NSSCKMDSession *mdSession,
michael@0 108 NSSCKFWSession *fwSession,
michael@0 109 NSSCKMDToken *mdToken,
michael@0 110 NSSCKFWToken *fwToken,
michael@0 111 NSSCKMDInstance *mdInstance,
michael@0 112 NSSCKFWInstance *fwInstance,
michael@0 113 CK_ATTRIBUTE_TYPE attribute,
michael@0 114 CK_RV *pError
michael@0 115 )
michael@0 116 {
michael@0 117 nss_dbm_object_t *object = (nss_dbm_object_t *)mdObject->etc;
michael@0 118 nss_dbm_session_t *session = (nss_dbm_session_t *)mdSession->etc;
michael@0 119 return nss_dbm_db_get_object_attribute(object->handle, object->arena, attribute,
michael@0 120 pError, &session->deviceError);
michael@0 121 }
michael@0 122
michael@0 123 static CK_RV
michael@0 124 nss_dbm_mdObject_SetAttribute
michael@0 125 (
michael@0 126 NSSCKMDObject *mdObject,
michael@0 127 NSSCKFWObject *fwObject,
michael@0 128 NSSCKMDSession *mdSession,
michael@0 129 NSSCKFWSession *fwSession,
michael@0 130 NSSCKMDToken *mdToken,
michael@0 131 NSSCKFWToken *fwToken,
michael@0 132 NSSCKMDInstance *mdInstance,
michael@0 133 NSSCKFWInstance *fwInstance,
michael@0 134 CK_ATTRIBUTE_TYPE attribute,
michael@0 135 NSSItem *value
michael@0 136 )
michael@0 137 {
michael@0 138 nss_dbm_object_t *object = (nss_dbm_object_t *)mdObject->etc;
michael@0 139 nss_dbm_session_t *session = (nss_dbm_session_t *)mdSession->etc;
michael@0 140 return nss_dbm_db_set_object_attribute(object->handle, attribute, value,
michael@0 141 &session->deviceError);
michael@0 142 }
michael@0 143
michael@0 144 NSS_IMPLEMENT NSSCKMDObject *
michael@0 145 nss_dbm_mdObject_factory
michael@0 146 (
michael@0 147 nss_dbm_object_t *object,
michael@0 148 CK_RV *pError
michael@0 149 )
michael@0 150 {
michael@0 151 NSSCKMDObject *rv;
michael@0 152
michael@0 153 rv = nss_ZNEW(object->arena, NSSCKMDObject);
michael@0 154 if( (NSSCKMDObject *)NULL == rv ) {
michael@0 155 *pError = CKR_HOST_MEMORY;
michael@0 156 return (NSSCKMDObject *)NULL;
michael@0 157 }
michael@0 158
michael@0 159 rv->etc = (void *)object;
michael@0 160 rv->Finalize = nss_dbm_mdObject_Finalize;
michael@0 161 rv->Destroy = nss_dbm_mdObject_Destroy;
michael@0 162 /* IsTokenObject can be deferred */
michael@0 163 rv->GetAttributeCount = nss_dbm_mdObject_GetAttributeCount;
michael@0 164 rv->GetAttributeTypes = nss_dbm_mdObject_GetAttributeTypes;
michael@0 165 rv->GetAttributeSize = nss_dbm_mdObject_GetAttributeSize;
michael@0 166 rv->GetAttribute = nss_dbm_mdObject_GetAttribute;
michael@0 167 rv->SetAttribute = nss_dbm_mdObject_SetAttribute;
michael@0 168 /* GetObjectSize can be deferred */
michael@0 169
michael@0 170 return rv;
michael@0 171 }

mercurial