--| --|Item: Ada PCTE Binding --|$Revision: 0.2 $ --|$State: Prototype $ --| --|The Version Description Document (VDD) included with this release provides --|detailed information regarding the condition of the software. The "User --|Feedback" section of the VDD describes how to obtain additional information. --| --|Distribution Statement "A", per DoD Directive 5230.24 --|Authorized for public release; distribution is unlimited. --| --|Copyright (c) 1992, Paramax Systems Corporation, Reston, Virginia --|Copyright is assigned to the U.S. Government, upon delivery thereto, --|in accordance with the DFAR Special Works Clause. --| --|Developed by: Paramax Systems Corporation, --| --|This software, developed under the Software Technology for Adaptable, --|Reliable Systems (STARS) program, is approved for release under --|Distribution "A" of the Scientific and Technical Information Program --|Classification Scheme (DoD Directive 5230.24) unless otherwise indicated. --|Sponsored by the U.S. Defense Advanced Research Projects Agency (DARPA) --|under contract F19628-88-D-0031, the STARS program is supported by the --|military services, SEI, and MITRE, with the U.S. Air Force as the executive --|contracting agent. --| --|Permission to use, copy, modify, and comment on this software and its --|documentation for purposes stated under Distribution "A" and without fee --|is hereby granted, provided that this notice appears in each whole or --|partial copy. This software retains Contractor indemnification to --|the Government regarding copyrights pursuant to the above referenced --|STARS contract. The Government disclaims all responsibility against --|liability, including costs and expenses for violation of proprietary --|rights, or copyrights arising out of the creation or use of this --|software. --| --|In addition, the Government, Paramax, and its subcontractors disclaim all --|warranties with regard to this software, including all implied warranties --|of merchantability and fitness, and in no event shall the Government, --|Paramax, or its subcontractor(s) be liable for any special, indirect or --|consequential damages or any damages whatsoever resulting from the loss of --|use, data, or profits, whether in action of contract, negligence or other --|tortious action, arising in connection with the use or performance of this --|software. --| --|$Log $ --| -- Version Information -- ^^^^^^^^^^^^^^^^^^^ -- -- PCTE - Ada Language Interface. -- Version: 0.2. -- Release Date: November 30, 1992. -- Compiled under SUN OS 4.1.2 using SunAda 1.0 -- -- -- General Information -- ^^^^^^^^^^^^^^^^^^^ -- -- This is an alpha release of the Paramax STARS Ada binding to Emeraude's -- PCTE 1.5 using the ECMA PCTE Ada binding specifications. The binding -- is incomplete in this release. See the Version Description Document -- provided with this alpha release for information on which interfaces -- have been implemented. It is expected that future releases will -- expand the number of interfaces implemented. The interfaces defined -- herein are subject to change. -- -- For further information, contact the authors: -- -- -- Robert Smith -- Paramax Systems Corp. -- Valley Forge Labs -- 70 E. Swedesford Road -- Paoli, PA. 19301 -- smith@prc.unisys.com (current) -- smith@vfl.paramax.com (future) -- +1 215 648-2402 -- -- Michael Horton -- Paramax Systems Corp. -- Valley Forge Labs -- 70 E. Swedesford Road -- Paoli, PA. 19301 -- horton@prc.unisys.com (current) -- horton@vfl.paramax.com (future) -- +1 215 648-2527 -- -- with Pcte, Pcte_error, Pcte_discretionary; package Pcte_mandatory is use Pcte_error; type class_name is new Pcte.string; -- Pcte_mandatory.class_name corresponds to the PCTE datatype Class_name. type security_label is new Pcte.string; -- Pcte_mandatory.security_label corresponds to the PCTE datatype -- Security_label. type floating_level is ( NO_FLOAT, FLOAT_IN, FLOAT_OUT, FLOAT_IN_OUT); -- Pcte_mandatory.floating_level corresponds to the PCTE datatype -- Floating_level. -- It is used in 19.4. package multi_level_object is -- 20.2.1 MULTI_LEVEL_OBJECT_SET_CONFIDENTIALITY_RANGE procedure set_confidentiality_range ( object : in Pcte.object_reference; high_label : in Pcte_mandatory.security_label; low_label : in Pcte_mandatory.security_label; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 20.2.2 MULTI_LEVEL_OBJECT_SET_INTEGRITY_RANGE procedure set_integrity_range ( object : in Pcte.object_reference; high_label : in Pcte_mandatory.security_label; low_label : in Pcte_mandatory.security_label; status : in Pcte_error.handle := EXCEPTION_ONLY); end multi_level_object; package object is -- 20.2.3 OBJECT_SET_CONFIDENTIALITY_LABEL procedure set_confidentiality_label ( object : in Pcte.object_reference; label : in Pcte_mandatory.security_label; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 20.2.4 OBJECT_SET_INTEGRITY_LABEL procedure set_integrity_label ( object : in Pcte.object_reference; label : in Pcte_mandatory.security_label; status : in Pcte_error.handle := EXCEPTION_ONLY); end object; package volume is -- 20.2.5 VOLUME_SET_CONFIDENTIALITY_RANGE procedure set_confidentiality_range ( volume : in Pcte.object_reference; high_label : in Pcte_mandatory.security_label; low_label : in Pcte_mandatory.security_label; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 20.2.6 VOLUME_SET_INTEGRITY_RANGE procedure set_integrity_range ( volume : in Pcte.object_reference; high_label : in Pcte_mandatory.security_label; low_label : in Pcte_mandatory.security_label; status : in Pcte_error.handle := EXCEPTION_ONLY); end volume; package confidentiality_class is -- 20.3.1 CONFIDENTIALITY_CLASS_INITIALISE procedure initialise ( object : in Pcte.object_reference; class_name : in Pcte_mandatory.class_name; to_be_dominated : in Pcte.object_reference; confidentiality_class : in out Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); procedure initialise ( object : in Pcte.object_reference; class_name : in Pcte_mandatory.class_name; confidentiality_class : in out Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); end confidentiality_class; package group is -- 20.3.2 GROUP_DISABLE_FOR_CONFIDENTIALITY_DOWNGRADE procedure disable_for_confidentiality_downgrade ( group : in Pcte.object_reference; class : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 20.3.3 GROUP_DISABLE_FOR_INTEGRITY_UPGRADE procedure disable_for_integrity_upgrade ( group : in Pcte.object_reference; class : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 20.3.4 GROUP_ENABLE_FOR_CONFIDENTIALITY_DOWNGRADE procedure enable_for_confidentiality_downgrade ( group : in Pcte.object_reference; class : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 20.3.5 GROUP_ENABLE_FOR_INTEGRITY_UPGRADE procedure enable_for_integrity_upgrade ( group : in Pcte.object_reference; class : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); end group; package integrity_class is -- 20.3.6 INTEGRITY_CLASS_INITIALISE procedure initialise ( object : in Pcte.object_reference; class_name : in Pcte_mandatory.class_name; to_be_dominated : in Pcte.object_reference; integrity_class : in out Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); procedure initialise ( object : in Pcte.object_reference; class_name : in Pcte_mandatory.class_name; integrity_class : in out Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); end integrity_class; package user is -- 20.3.7 USER_EXTEND_CONFIDENTIALITY_CLEARANCE procedure extend_confidentiality_clearance ( user : in Pcte.object_reference; class : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 20.3.8 USER_EXTEND_INTEGRITY_CLEARANCE procedure extend_integrity_clearance ( user : in Pcte.object_reference; class : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 20.3.9 USER_REDUCE_CONFIDENTIALITY_CLEARANCE procedure reduce_confidentiality_clearance ( user : in Pcte.object_reference; class : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); -- 20.3.10 USER_REDUCE_INTEGRITY_CLEARANCE procedure reduce_integrity_clearance ( user : in Pcte.object_reference; class : in Pcte.object_reference; status : in Pcte_error.handle := EXCEPTION_ONLY); end user; end Pcte_mandatory;