ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
Trusted Extensions 開発者ガイド Oracle Solaris 10 1/13 Information Library (日本語) |
1. Trusted Extensions API およびセキュリティーポリシー
9. Solaris Trusted Extensions ラベル API のための試験的な Java バインディング
label_encodings ファイルには、プリンタ出力でセキュリティー情報を出力するのに役立ついくつかの変換が定義されます。ラベル変換は、ページの最上部と最下部に出力されます。処理チャネルなどのその他の変換は、バナーページに表示できます。
次のコード例では、label_to_str() ルーチンはラベルをヘッダーとフッター、警告のセクション、処理チャネルなどの文字列に変換します。第 4 章印刷とラベル APIに示すように、このルーチンは Trusted Extensions 印刷システムによって内部的に使用されます。
#include <stdlib.h> #include <stdio.h> #include <tsol/label.h> int main() { m_label_t *plabel; char *header = NULL; char *label = NULL; char *caveats = NULL; char *channels = NULL; plabel = m_label_alloc(MAC_LABEL); if (getplabel(plabel) == -1) { perror("getplabel"); exit(1); } if (label_to_str(plabel, &header, PRINTER_TOP_BOTTOM, DEF_NAMES) != 0) { perror("label_to_str: header"); exit(1); } if (label_to_str(plabel, &label, PRINTER_LABEL, DEF_NAMES) != 0) { perror("label_to_str: label"); exit(1); } if (label_to_str(plabel, &caveats, PRINTER_CAVEATS, DEF_NAMES) != 0) { perror("label_to_str: caveats"); exit(1); } if (label_to_str(plabel, &channels, PRINTER_CHANNELS, DEF_NAMES) != 0) { perror("label_to_str: channels"); exit(1); } printf("\t\t\t\"%s\"\n\n", header); printf("\t\tUnless manually reviewed and downgraded, this output\n"); printf("\t\tmust be protected at the following label:\n\n"); printf("\t\t\t\"%s\"\n", label); printf("\n\n\n"); printf("\t\t\"%s\"\n", caveats); printf("\t\t\"%s\"\n", channels); printf("\n\n"); printf("\t\t\t\"%s\"\n", header); m_label_free(plabel); return (0); }
TS SA SB というプロセスラベルの場合、テキスト出力は次のようになる可能性があります。
"TOP SECRET" Unless manually reviewed and downgraded, this output must be protected at the following label: "TOP SECRET A B SA SB" "(FULL SB NAME) (FULL SA NAME)" "HANDLE VIA (CH B)/(CH A) CHANNELS JOINTLY" "TOP SECRET"
詳細は、label_encodings(4) のマニュアルページ、『Compartmented Mode Workstation Labeling: Encodings Format 』、および『Solaris Trusted Extensions ラベルの管理』を参照してください。