Solaris Trusted Extensions Developer's Guide

Appendix B Solaris Trusted Extensions API Reference

This appendix provides application programming interface (API) listings and cross-references to their use. Declarations are grouped by security topic.

This appendix covers the following topics:

Process Security Attribute Flags APIs

The following Solaris APIs accept Trusted Extensions parameters:

Label APIs

The label APIs are introduced in Chapter 2, Labels and Clearances. Sample code is provided in Chapter 3, Label Code Examples. A fully described example is provided in Chapter 4, Printing and the Label APIs.

The following lists the types of label-related APIs and shows the prototype declarations of the routines and system calls for each type:

Label-Clipping APIs

For information about this label-clipping API, see Chapter 6, Trusted X Window System.

int label_to_str(const m_label_t *label, char **string,
	const m_label_str_t conversion_type, uint_t flags);

RPC APIs

Trusted Extensions does not provide interfaces for remote procedure calls (RPC). RPC interfaces have been modified to work with Trusted Extensions. For conceptual information, see Chapter 5, Interprocess Communications. For an example that uses the getpeerucred() and ucred_getlabel() routines, see Chapter 4, Printing and the Label APIs.

Trusted X Window System APIs

For information about the Trusted X Window System APIs, see Chapter 6, Trusted X Window System.

Solaris Library Routines and System Calls That Use Trusted Extensions Parameters

The following Solaris interfaces either include Trusted Extensions parameters or are used in this guide with Trusted Extensions interfaces:

System Calls and Library Routines in Trusted Extensions

The following table lists the Trusted Extensions system calls and routines. The table also provides references to descriptions and declarations of the interface and to examples of the interface that appear in this guide. The man page section is included as part of the name of each system call and routine.

Table B–1 System Calls and Library Routines That Are Used in Trusted Extensions

System Call or Library Routine 

Cross-Reference to Description 

Cross-Reference to Example 

bldominates(3TSOL)

Label Relationships

Comparing Labels

Determining the Relationship Between Two Labels

blequal(3TSOL)

Comparing Labels

Determining the Relationship Between Two Labels

blinrange(3TSOL)

Label Relationships

Validating the Label Request Against the Printer's Label Range

blmaximum(3TSOL)

Comparing Labels

 

blminimum(3TSOL)

Comparing Labels

 

blstrictdom(3TSOL)

Comparing Labels

 

fgetlabel(2)

Labeled Zones

Obtaining and Setting the Label of a File

 

free(3C)

Translating Between Labels and Strings

 

getdevicerange(3TSOL)

Obtaining Label Ranges

Validating the Label Request Against the Printer's Label Range

getlabel(2)

Labeled Zones

Obtaining and Setting the Label of a File

Obtaining a File Label

getpathbylabel(3TSOL)

Accessing Labels in Zones

 

getpeerucred(3C)

get_peer_label() Label-Aware Function

Obtaining the Credential and Remote Host Label

getpflags(2)

MAC-Exempt Sockets

 

getplabel(3TSOL)

Accessing the Process Sensitivity Label

Translating the Window Label With the Font List

getuserrange(3TSOL)

Obtaining Label Ranges

 

getzoneidbylabel(3TSOL)

Accessing Labels in Zones

 

getzonelabelbyid(3TSOL)

Accessing Labels in Zones

 

getzonelabelbyname(3TSOL)

Accessing Labels in Zones

 

getzonerootbyid(3TSOL)

Accessing Labels in Zones

 

getzonerootbylabel(3TSOL)

Accessing Labels in Zones

 

getzonerootbyname(3TSOL)

Accessing Labels in Zones

 

is_system_labeled(3C)

get_peer_label() Label-Aware Function

Detecting a Trusted Extensions System

Determining Whether the Printing Service Is Running in a Labeled Environment

label_to_str(3TSOL)

Translating Between Labels and Strings

Obtaining a Process Label

m_label_alloc(3TSOL)

Allocating and Freeing Memory for Labels

Obtaining a Process Label

Obtaining a File Label

m_label_dup(3TSOL)

Allocating and Freeing Memory for Labels

 

m_label_free(3TSOL)

Allocating and Freeing Memory for Labels

Validating the Label Request Against the Printer's Label Range

Obtaining a Process Label

setflabel(3TSOL)

Obtaining and Setting the Label of a File

Obtaining and Setting the Label of a File

 

setpflags(2)

MAC-Exempt Sockets

 

str_to_label(3TSOL)

Translating Between Labels and Strings

Validating the Label Request Against the Printer's Label Range

Obtaining a File Label

tsol_getrhtype(3TSOL)

Obtaining the Remote Host Type

 

ucred_get(3C)

Multilevel Ports

 

ucred_getlabel(3C)

Multilevel Ports

 

XTSOLgetClientAttributes(3XTSOL)

Accessing Attributes

 

XTSOLgetPropAttributes(3XTSOL)

Accessing Attributes

 

XTSOLgetPropLabel(3XTSOL)

Accessing and Setting a Window Property Label

 

XTSOLgetPropUID(3XTSOL)

Accessing and Setting a Window Property Label

 

XTSOLgetResAttributes(3XTSOL)

Obtaining Window Attributes

 

XTSOLgetResLabel(3XTSOL)

Obtaining a Window Label

 

XTSOLgetResUID(3XTSOL)

Obtaining the Window User ID

Accessing and Setting a Window User ID

 

XTSOLgetSSHeight(3XTSOL)

Accessing and Setting the Screen Stripe Height

 

XTSOLgetWorkstationOwner(3XTSOL)

Accessing and Setting a Workstation Owner ID

 

XTSOLIsWindowTrusted(3XTSOL)

Working With the Trusted Path Window

 

XTSOLMakeTPWindow(3XTSOL)

Working With the Trusted Path Window

 

XTSOLsetPolyInstInfo(3XTSOL)

Chapter 6, Trusted X Window System

 

XTSOLsetPropLabel(3XTSOL)

Accessing and Setting a Window Property Label

 

XTSOLsetPropUID(3XTSOL)

Accessing and Setting a Window Property Label

 

XTSOLsetResLabel(3XTSOL)

Setting a Window Label

 

XTSOLsetResUID(3XTSOL)

Accessing and Setting a Window User ID

 

XTSOLsetSessionHI(3XTSOL)

Setting the X Window Server Clearance and Minimum Label

 

XTSOLsetSessionLO(3XTSOL)

Setting the X Window Server Clearance and Minimum Label

 

XTSOLsetSSHeight(3XTSOL)

Accessing and Setting the Screen Stripe Height

 

XTSOLsetWorkstationOwner(3XTSOL)

Accessing and Setting a Workstation Owner ID