⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 staprint.c

📁 SecuDe是一个由安全应用程序接口组成,对验证机制、证件处理、PEM、X.400报文处理和密钥管理提供支持。SecuDe提供DES、 RSA杂凑函数、密钥生成以及数字签名的生成和核实等多种密码机制。
💻 C
📖 第 1 页 / 共 2 页
字号:
/*---------------------------------------------------------------------------+-----*//*							                     | GMD *//*   SYSTEM   STAPAC  -  Version 2.0		                             +-----*//*							                           *//*---------------------------------------------------------------------------------*//*							                           *//*    PACKAGE	STAMOD-staprint                             VERSION 2.0	           *//*					                       DATE Januar 1992    *//*					                         BY Ursula Viebeg  *//*					                            Levona Eckstein*//*			       				                           *//*    FILENAME     					                           *//*	staprint.c                       		         		   *//*							                           *//*    DESCRIPTION	   				                           *//*      This modul provides a function which prints the error message.	           *//*							                           *//*    EXPORT		    DESCRIPTION 		                           *//*	sca_print_errmsg()     print error message    			           *//*							                           *//*      									   *//*      									   *//*                                                                                 *//*    IMPORT		    DESCRIPTION 		                           *//*				   -  libsctint.a                                  *//*							                           *//*      sct_perror()           Print error message                                 *//*							                           *//*                                                                                 *//*      sca_errno              global error variable set by STAMOD                 *//*                                                                                 *//*      sca_errmsg             global pointer to error message set by STAMOD       *//*                                                                                 *//*                                                                                 *//*                                                                                 *//*                                                                                 *//*    INTERNAL                                                                     *//*                                                                                 *//*                                                                                 *//*---------------------------------------------------------------------------------*//*-------------------------------------------------------------*//*   include-Files					       *//*-------------------------------------------------------------*/#include "stamod.h"#include "stamsg.h"#include "sctint.h"#include "sccom.h"#ifndef MAC#include <sys/types.h>#include <sys/stat.h>#else#include <stdlib.h>#endif /* !MAC */#include <stdio.h>#include <fcntl.h>#include <string.h>/*-------------------------------------------------------------*//*   extern declarations				       *//*-------------------------------------------------------------*/extern int      sct_perror();extern unsigned int sca_errno;	/* error number set by STAMOD       */extern char    *sca_errmsg;	/* pointer to error msg set by      */ /* STAMOD                           *//*-------------------------------------------------------------*//*   globale variable definitions			       *//*-------------------------------------------------------------*/#ifdef TESTchar            text1[27] = "file_type               : ";char            text2[23] = "file_type           : ";void            print_filecat();void            print_filetype();void            print_datastruc();void            print_filecontinfo();void            print_secmess();void            print_filesel();void            print_fileid();void            print_inforeq();void            print_closecontext();void            print_datasel();void            print_keyid();void            print_recordlist();void            print_transmode();void            print_keydevpurpose();void            print_keydevsel();void            print_keyattrlist();void            print_pinstruc();void            print_keydevlist();#endif/*-------------------------------------------------------------*//*   type definitions					       *//*-------------------------------------------------------------*//*-------------------------------------------------------------*//*   local Variable definitions			               *//*-------------------------------------------------------------*//*-------------------------------------------------------------*//*						         | GMD *//*						         +-----*//* PROC  sca_print_errmsg         VERSION   2.0	    	       *//*				     DATE   Januar 1992	       *//*			      	       BY   U.Viebeg           *//*							       *//* DESCRIPTION						       *//*  Print the given text together with the global error        *//*  message on stderr.                 			       *//*							       *//*							       *//* IN			     DESCRIPTION		       *//*   msg		       text, which is printed 	       *//*                             together with error message     *//*                                                             *//*							       *//* OUT							       *//*							       *//*							       *//* RETURN		     DESCRIPTION	      	       *//*   0	         	       o.k			       *//*  -1			       error			       *//*				 wrong sca_errno	       *//*							       *//* CALLED FUNCTIONS					       *//*  sct_perror                ERROR-Codes		       *//*			         0  (ok)		       *//*							       *//*							       *//*-------------------------------------------------------------*/intsca_print_errmsg(msg)	char           *msg;{	/*----------------------------------------------------------*/	/* Definitions					       */	/*----------------------------------------------------------*/	int             rc, err_no;	rc = 0;	/*----------------------------------------------------------*/	/* Statements					       */	/*----------------------------------------------------------*/	rc = 0;	/*-----------------------------------------------------*/	/* call check_sct_sc    		               */	/*-----------------------------------------------------*/#ifdef TEST	fprintf(stdout, "\n***** STAMOD-Routine sca_print_errmsg ********************************************\n\n");	fprintf(stdout, "input-parameters:\n");	if ((msg != NULL) && (strlen(msg) > 0)) {		fprintf(stdout, "msg:     %s\n", msg);	}	fprintf(stdout, "\n\n");#endif	if (sca_errno <= 0) {	/* no error number set */		err_no = 0;		if (msg && strlen(msg))			fprintf(stdout, "%s: ", msg);		fprintf(stdout, "%s\n", stamod_error[err_no].msg);	} else {		if (sca_errno < MIN_STAMOD_ERRNO) {			rc = sct_perror(msg);	/* error from SCT-Interface */			if (rc < 0)				return (rc);		} else {	/* error from STAMOD */			err_no = sca_errno - MIN_STAMOD_ERRNO;			if (err_no < 0)				return (-1);			if (msg && strlen(msg))				fprintf(stdout, "%s: ", msg);			fprintf(stdout, "%s\n", stamod_error[err_no].msg);		}		/* end else */	}			/* end else */#ifdef TEST	fprintf(stdout, "\n***** Normal end of   sca_print_errmsg *********************************************\n\n");#endif	return (0);}				/* end  sca_print_errmsg *//*-------------------------------------------------------------*//* E N D   O F	 P R O C E D U R E	sca_print_errmsg       *//*-------------------------------------------------------------*/#ifdef TEST/*-------------------------------------------------------------*//*						         | GMD *//*						         +-----*//* PROC  print_routines           VERSION   2.0	    	       *//*				     DATE   Januar 1992	       *//*			      	       BY   Levona Eckstein    *//*							       *//* DESCRIPTION						       *//*  Trace functions                     	               *//*							       *//*							       *//* IN			     DESCRIPTION		       *//*							       *//*							       *//* RETURN		     DESCRIPTION	      	       *//*-------------------------------------------------------------*/voidprint_filecat(file_cat)	FileCat         file_cat;{	switch (file_cat) {	case MF:		fprintf(stdout, "file_cat 		: MF\n");		break;	case DF:		fprintf(stdout, "file_cat 		: DF\n");		break;	case SF:		fprintf(stdout, "file_cat 		: SF\n");		break;	case EF:		fprintf(stdout, "file_cat 		: EF\n");		break;	default:		fprintf(stdout, "file_cat 		: undefined\n");		break;	};}voidprint_filetype(file_type, msg)	FileType        file_type;	char           *msg;{	if (msg == NULL)		fprintf(stdout, "%s", text1);	else {		fprintf(stdout, "%s", msg);		fprintf(stdout, "%s", text2);	}	switch (file_type) {	case PEF:		fprintf(stdout, "PEF\n");		break;	case WEF:		fprintf(stdout, "WEF\n");		break;	case ACF:		fprintf(stdout, "ACF\n");		break;	case ISF:		fprintf(stdout, "ISF\n");		break;	default:		fprintf(stdout, "undefined\n");		break;	};}voidprint_datastruc(data_struc)	DataStruc       data_struc;{	switch (data_struc) {	case LIN_FIX:		fprintf(stdout, "data_struc 		: LIN_FIX\n");		break;	case LIN_VAR:		fprintf(stdout, "data_struc 		: LIN_VAR\n");		break;	case CYCLIC:		fprintf(stdout, "data_struc 		: CYCLIC\n");		break;	case TRANSPARENT:		fprintf(stdout, "data_struc 		: TRANSPARENT\n");		break;	default:		fprintf(stdout, "data_struc 		: undefined\n");		break;	};}voidprint_filecontinfo(file_cat, file_control_info)	FileCat         file_cat;	FileControlInfo *file_control_info;{	fprintf(stdout, "file_control_info       :\n");	fprintf(stdout, "    units               : %d\n", file_control_info->units);	fprintf(stdout, "    racv                : %x\n", file_control_info->racv);	fprintf(stdout, "    wacv                : %x\n", file_control_info->wacv);	fprintf(stdout, "    dacv                : %x\n", file_control_info->dacv);	switch (file_control_info->readwrite) {	case READ_WRITE:		fprintf(stdout, "    readwrite           : READ_WRITE\n");		break;	case WORM:		fprintf(stdout, "    readwrite           : WORM\n");		break;	case READ_ONLY:		fprintf(stdout, "    readwrite           : READ_ONLY\n");		break;	case WRITE_ONLY:		fprintf(stdout, "    readwrite           : WRITE_ONLY\n");		break;	default:		fprintf(stdout, "    readwrite           : undefined\n");		break;	};	fprintf(stdout, "                          set to 0x00 in case of MF,DF or SF \n");	fprintf(stdout, "    execute             : not used in this version \n");	fprintf(stdout, "    mac                 : not used in this version \n");	fprintf(stdout, "    enc                 : not used in this version \n");	if (file_control_info->not_erasable == TRUE)		fprintf(stdout, "    not_erasable        : TRUE\n");	else		fprintf(stdout, "    not_erasable        : FALSE\n");	fprintf(stdout, "    recordsize          : %d\n", file_control_info->recordsize);	fprintf(stdout, "                          set to 0x00 in case of MF,DF,SF or \n");	fprintf(stdout, "                          EF and data_struc <> LIN_FIX and CYCLIC \n");	print_filesel(file_cat, &file_control_info->file_sel);	fprintf(stdout, "    addinfo             : %s\n", file_control_info->addinfo.octets);}voidprint_filesel(file_cat, file_sel)	FileCat         file_cat;	FileSel        *file_sel;{	if (file_cat != EF)		fprintf(stdout, "file_name               : %s\n", file_sel->file_name);	else		print_fileid(&file_sel->file_id);}voidprint_fileid(file_id)	FileId         *file_id;{	fprintf(stdout, "file_id                 :\n");	switch (file_id->file_level) {	case MF_LEVEL:		fprintf(stdout, "    file_level          : MF_LEVEL\n");		break;	case DF_LEVEL:		fprintf(stdout, "    file_level          : DF_LEVEL\n");		break;	case SF_LEVEL:		fprintf(stdout, "    file_level          : SF_LEVEL\n");		break;	default:		fprintf(stdout, "    file_level          : undefined\n");		break;	};	print_filetype(file_id->file_type, "    ");	fprintf(stdout, "    name                : %d\n", file_id->name);}voidprint_keyid(key_id)	KeyId          *key_id;{	if (!key_id)		fprintf(stdout, "KeyId                   : NULL\n");	else {		fprintf(stdout, "KeyId                   :\n");		switch (key_id->key_level) {		case SC_MF:			fprintf(stdout, "    key_level           : SC_MF\n");			break;		case SC_DF:			fprintf(stdout, "    key_level           : SC_DF\n");			break;		case SC_SF:			fprintf(stdout, "    key_level           : SC_SF\n");			break;		case SCT:			fprintf(stdout, "    key_level           : SCT\n");			break;		default:			fprintf(stdout, "    key_level           : undefined\n");			break;		};		fprintf(stdout, "    key_number          : %d\n", key_id->key_number);	}}voidprint_closecontext(file_close_context)	FileCloseContext file_close_context;{	switch (file_close_context) {	case CLOSE_CREATE:		fprintf(stdout, "file_close_context      : CLOSE_CREATE\n");		break;	case CLOSE_SELECT:		fprintf(stdout, "file_close_context      : CLOSE_SELECT\n");		break;	default:		fprintf(stdout, "file_close_context      : undefined\n");		break;	};}voidprint_transmode(trans_mode)	TransMode       trans_mode;{	switch (trans_mode) {	case TRANSP:		fprintf(stdout, "trans_mode              : TRANSP\n");		break;	case SECURE:		fprintf(stdout, "trans_mode              : SECURE\n");		break;	default:		fprintf(stdout, "trans_mode              : undefined\n");		break;	};}voidprint_secmess(sec_mess)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -