ks_obj
ks_obj_t *ks_obj = NULL, *ks_obj_next;
rv = soft_keystore_get_objs(type, &ks_obj, B_FALSE);
while (ks_obj) {
rv = soft_keystore_unpack_obj(new_objp, ks_obj);
ks_obj_next = ks_obj->next;
freezero(ks_obj->buf, ks_obj->size);
free(ks_obj);
ks_obj = ks_obj_next;
while (ks_obj) {
ks_obj_next = ks_obj->next;
freezero(ks_obj->buf, ks_obj->size);
free(ks_obj);
ks_obj = ks_obj_next;
soft_keystore_unpack_obj(soft_object_t *obj, ks_obj_t *ks_obj)
(char *)ks_obj->ks_handle.name);
obj->ks_handle.public = ks_obj->ks_handle.public;
hdr = (ks_obj_hdr_t *)ks_obj->buf;
obj->version = ks_obj->obj_version;
buf = ks_obj->buf + sizeof (ks_obj_hdr_t);
CK_RV soft_keystore_unpack_obj(struct object *obj, ks_obj_t *ks_obj);
struct ks_obj *next;
soft_update_object(ks_obj_t *ks_obj, soft_object_t *old_obj)
rv = soft_keystore_unpack_obj(new_object, ks_obj);
ks_obj_t *ks_obj = NULL;
&ks_obj, B_FALSE);
rv = soft_update_object(ks_obj, old_obj);
free(ks_obj->buf);
free(ks_obj);