### The DCE Attribute API

The DCE attribute calls are not described in detail. This is because, with the exception of the calls that bind to a selected database (dce_attr_sch_bind( )(\*) and dce_attr_sch_bind_free( ) ), the dce_sec_attr_*( ) calls are the same as the sec_rgy_attr_sch_*( ) calls. Refer to The ERA API for information on using each call. Note also that the DCE attribute calls are suffixed with 3dce, not 3sec (for example, dce_attr_sch_bind.3dce).

The DCE attribute API consists of the following calls:

· dce_attr_sch_bind( )

Returns an opaque handle of type dce_attr_sch_handle_t to a schema object specified by name and sets authentication and authorization parameters for the handle. This is the call used to bind to the schema of your choice.

· dce_attr_sch_bind_free( )

Releases an opaque handle of type dce_attr_sch_handle_t.

· dce_attr_sch_create_entry( )

Creates a schema entry in a schema bound to with dce_attr_sch_bind. This call is based on sec_rgy_attr_sch_create_entry( ) and is used in the same way.

· dce_attr_sch_update_entry( )

Updates a schema entry in a schema bound to with dce_attr_sch_bind( ). This call is based on sec_rgy_attr_sch_update_entry( ) and is used in the same way.

· dce_attr_sch_delete_entry( )

Deletes a schema entry in a schema bound to with dce_attr_sch_bind( ). This call is based on sec_rgy_attr_sch_delete_entry( ) and is used in the same way.

· dce_attr_sch_scan( )

Reads a specified number of schema entries. This call is based on sec_rgy_attr_sch_scan( ) and is used in the same way.

· dce_attr_sch_cursor_init( )

Allocates resources to and initializes a cursor used with dce_attr_sch_scan( ). The dce_attr_sch_cursor_init( ) routine makes a remote call that also returns the current number of schema entries in the schema. The dce_attr_sch_cursor_init( ) call is based on sec_rgy_attr_sch_cursor_init( ) and is used in the same way.

· dce_attr_sch_cursor_alloc( )

Allocates resources to a cursor used with dce_attr_sch_scan( ). The dce_attr_sch_cursor_alloc( ) routine is a local operation. The dce_attr_sch_cursor_alloc( ) call is based on sec_rgy_attr_sch_cursor_alloc( ) and is used in the same way.

· dce_attr_sch_cursor_release( )

Releases states associated with a cursor created by dce_attr_sch_cursor_alloc( ) or dce_attr_sch_cursor_init( ). The dce_attr_sch_cursor_release( ) call is based on sec_rgy_attr_sch_cursor_release( ) and is used in the same way.

· dce_attr_sch_cursor_reset( )

Reinitializes a cursor used with dce_attr_sch_scan( ). The reset cursor can then be reused without releasing and reallocating. This call is based on the sec_rgy_attr_sch_cursor_reset( ) and is used in the same way.

· dce_attr_sch_lookup_by_id( )

Reads a schema entry identified by UUID. This call is based on sec_rgy_attr_lookup_by_id( ) and is used in the same way.

· dce_attr_sch_lookup_by_name( )

Reads a schema entry identified by name. This call is based on sec_rgy_attr_sch_lookup_by_name( ) and is used in the same way.

· dce_attr_sch_get_acl_mgrs( )

Retrieves the UUIDs of ACL manager types protecting objects dominated by a named schema. This call is based on sec_rgy_attr_sch_get_acl_mgrs( ) and is used in the same way.

· dce_attr_sch_aclmgr_strings( )

Retrieves the print strings containing information about ACL manager types protecting objects dominated by a named schema. The print strings contain the manager's name, help information, and supported permission bits. This call is based on sec_rgy_attr_sch_aclmgr_strings( ) and is used in the same way.

##