亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? commonlib.h

?? an example of programming philips pegoda reader
?? H
字號:
///////////////////////////////////////////////////////////////////////////////
//    Copyright (c), Philips Semiconductors Gratkorn
//
//                     (C)PHILIPS Electronics N.V. 2000
//                        All rights are reserved. 
//  Philips reserves the right to make changes without notice at any time.
// Philips makes no warranty, expressed, implied or statutory, including but
// not limited to any implied warranty of merchantibility or fitness for any
//particular purpose, or that the use will not infringe any third party patent,
// copyright or trademark. Philips must not be liable for any loss or damage
//                          arising from its use.
///////////////////////////////////////////////////////////////////////////////
//
// Projekt         : CommonLib
// Files           : CommonLib.h CommonLib.c OsDefs.h DesEncryption.c
// Created         : 01.04.00
//
// COMMENT: This header contains common function declarations
// MODIFICATIONS:
// 01.04.00  HB  first issue
// 00.00.9X  first implementation made by WZ
// 05.05.00  CRi implementation
///////////////////////////////////////////////////////////////////////////////
#ifndef COMMON_H
#define COMMON_H

#include "OsDefs.h"
#include "MfErrNo.h"
#include "LibInfo.h"

#ifdef __cplusplus
extern "C"
{
#endif

//////////////////////////////////////////////////////////////////////////////
// Constants
//////////////////////////////////////////////////////////////////////////////

// Function: HostCalcDes
#define ENCIPH            0x00
#define DECIPH            0x04

// Function: HostCalcCrc
#define CRC8             0x80
#define CRC16            0x00

// Initial Value 0
#define IV0 (unsigned char*)"\x00\x00\x00\x00\x00\x00\x00\x00"


//////////////////////////////////////////////////////////////////////////////
// Function Export Table
//////////////////////////////////////////////////////////////////////////////

typedef char*         (CALL_CONV * GET_ERROR_MESSAGE)            (int);
typedef unsigned char (CALL_CONV * ASSERT_MODE)                  (unsigned char, unsigned char);
typedef unsigned char (CALL_CONV * ASSERT_RANGE)                 (signed int, signed int, signed int);
typedef void          (CALL_CONV * EXOR_8)                       (unsigned char*, unsigned char*, unsigned char*);
typedef unsigned char (CALL_CONV * BIT_REVERSE)                  (unsigned char);
typedef void          (CALL_CONV * BYTE_REVERSE)                 (unsigned char*, unsigned char*, int);
typedef int           (CALL_CONV * HOST_CALC_CRC)                (unsigned char, int, unsigned char*, unsigned char*);
typedef int           (CALL_CONV * HOST_CALC_DES)                (unsigned char, unsigned char*, unsigned char*, unsigned char*);
typedef void          (CALL_CONV * HOST_GET_PREVIOUS_DES_RESULT) (unsigned char *result);
typedef void          (CALL_CONV * HOST_DES_RESET)               (void);
typedef void          (CALL_CONV * DES_KEY_INIT)                 (unsigned char *key);
typedef void          (CALL_CONV * DES_ENCRYPT)                  (unsigned char *b);
typedef void          (CALL_CONV * DES_DECRYPT)                  (unsigned char *b);

typedef struct tagCommonLibFunctionTable
{
  GET_ERROR_MESSAGE             GetErrorMessage;
  ASSERT_MODE                   AssertMode;
  ASSERT_RANGE                  AssertRange;
  EXOR_8                        Exor8;
  BIT_REVERSE                   BitReverse;
  BYTE_REVERSE                  ByteReverse;
  HOST_CALC_CRC                 HostCalcCrc;
  HOST_CALC_DES                 HostCalcDes;
  HOST_GET_PREVIOUS_DES_RESULT  HostGetPreviousDesResult;
  HOST_DES_RESET                HostDesReset;
  DES_KEY_INIT                  DesKeyInit;
  DES_ENCRYPT                   DesEncrypt;
  DES_DECRYPT                   DesDecrypt;
} COMMONLIB_FUNCTION_TABLE;


//////////////////////////////////////////////////////////////////////////////
// Function Prototypes
//////////////////////////////////////////////////////////////////////////////

// _____________________________________________________________________________
//
// FUNCTION: GetErrorMessage
//
//       IN: error_number  valid error number
//     
//      OUT: -
// 
//   RETURN: pointer to an internal message string.
//
//  COMMENT: Shows an error text (defined in mif2err.h) according to the 
//           error code
//
DLLEXP_IMP char* CALL_CONV GetErrorMessage(int error_number);

// _____________________________________________________________________________
//
// FUNCTION: AssertMode
//
//       IN: mode    Variable-Value which should be checked
//           value   valid value for mode
//     
//      OUT: -
// 
//   RETURN: bit pattern with wrong values
//
//  COMMENT: This function checks the variable for valid Bit-Pattern and returns
//           the wrong bit pattern. If the value is valid, this function
//           always returns zero. 
//
DLLEXP_IMP unsigned char CALL_CONV AssertMode(unsigned char mode,
                                              unsigned char value);

// _____________________________________________________________________________
//
// FUNCTION: AssertRange
//
//       IN: var     Variable-Value which should be checked
//           start   start-value
//           end     end-value
//     
//      OUT: -
// 
//   RETURN: 0   variable value is in the specified range
//           1   variable value is outside the specified range
//
//  COMMENT: This function checks the variable value to be in the specified range
//           In order to be conform with the analog function MfAssertMode, 
//           the constraint is matched, if zero is returned.
//
DLLEXP_IMP unsigned char CALL_CONV AssertRange(signed int var,
                                               signed int start,
												                       signed int end);

// _____________________________________________________________________________
// 
// FUNCTION: Exor8
//  
//       IN: in1   first character
//           in2   second character
//      OUT: out   calculation result
//   RETURN: -
//  COMMENT: Calculate the bitwise EXOR of a 8 byte long char array
//
DLLEXP_IMP void CALL_CONV Exor8(unsigned char *out, 
                                unsigned char *in1, 
                                unsigned char *in2);

// _____________________________________________________________________________
//
// FUNCTION: BitReverse
//
//       IN: in   character to reverse
//      OUT: -
//   RETURN: calculation result
//  COMMENT: Bit-Reverse -> changes the order of the bits within one character
//           d. h. 0101110 ==> 0111010
//
DLLEXP_IMP unsigned char CALL_CONV BitReverse(unsigned char in);

// _____________________________________________________________________________
//
// FUNCTION: ByteReverse
//
//       IN: in     character sequenz with "len" bytes
//      OUT: out    reversed character sequenze with "len" bytes
//   RETURN: -
//  COMMENT: Byte-Reverse -> changes the order of bytes within the sequenze
//           d. h. 0x1,0x3,0ab ==> 0ab,0x3,0x1
//
DLLEXP_IMP void CALL_CONV ByteReverse(unsigned char* in, 
                                      unsigned char* out, 
                                      int len);

// _____________________________________________________________________________
//
// FUNCTION: HostCalcCrc
//       IN: crc_mode   valid values are:
//                      CRC8     
//                      CRC16
//           len        specifies the number of data bytes for that the CRC shall 
//                      be calculated.
//           in         is a pointer to the input data. It is assumed, that 
//                      the variable in holds len input bytes.
//      OUT: out        is a pointer to the output data. If CRC8 is selected out has to hold one byte, in case of CRC16 out has to hold two bytes.
//   RETURN: MI_CRC_ZERO    CRC calculation correct
//           MI_CRC_NOTZERO CRC calculation with error
//  COMMENT: Calculates the 8 or 16 bit CRC for a given number of bytes using the
//           default values of the MFRC
//
DLLEXP_IMP int CALL_CONV HostCalcCrc(unsigned char crc_mode, 
                                     int len, 
                                     unsigned char *in, 
                                     unsigned char *out);

// _____________________________________________________________________________
//
// FUNCTION: HostCalcDes
//
//       IN: des_mode    ENCIPH, DECIPH     encipher or decipher data
//           iv          initial value. For CBC-mode, the previous value can be 
//                       passed
//           deskey      16 DES-keys to pass. 
//   IN/OUT: inout       Data is passed to the function  with this parameter. 
//                       The result is also returned with this variable.
//
//   RETURN: MI_WRONG_DESKEY
//           MI_OK
//
//  COMMENT: Calculate the DES en/deciphered cryptogram using the DES routines 
//           defined in 'mfdes.c'.
//
DLLEXP_IMP int CALL_CONV HostCalcDes(unsigned char des_mode, 
                                     unsigned char *iv, 
                                     unsigned char *inout,
                                     unsigned char *deskey);

// _____________________________________________________________________________
//
// FUNCTION: HostGetPreviousDesResult
//
//       IN: -
//      OUT: result      previous calculation cipher 
//                       a 8 bytes character buffer is expected
//   RETURN: -
//  COMMENT: Returns the value of the previous DES calculation. With this
//           function the implementation of a CBC over the whole program
//           sequenz is easier to implement.
//
DLLEXP_IMP void CALL_CONV HostGetPreviousDesResult(unsigned char *result);

// _____________________________________________________________________________
//
// FUNCTION: HostDesReset
//
//       IN: -
//      OUT: -
//   RETURN: -
//  COMMENT: This function resets the internal starting value to zero. It is the
//           corresponding function to MfPcdResetDes on the host computer.
//
DLLEXP_IMP void CALL_CONV HostDesReset(void);

// _____________________________________________________________________________
//
//  FUNCTION: DesKeyInit
//        IN: key        8 bytes en-/decryption key for single DES or
//                       16 bytes long keys for triple DES
//       OUT: -
//    IN/OUT: -
//    RETURN: -
//   COMMENT: 
//
DLLEXP_IMP void  CALL_CONV  DesKeyInit(unsigned char *key);

// _____________________________________________________________________________
//
//  FUNCTION: DesEncrypt
//        IN: b          8 bytes data, which should be encrypted
//       OUT: -
//    IN/OUT: -
//    RETURN: -
//   COMMENT: 
//
DLLEXP_IMP void  CALL_CONV  DesEncrypt(unsigned char *b);

// _____________________________________________________________________________
//
//  FUNCTION: DesDecrypt
//        IN: b          8 bytes data, which should be decrypted
//       OUT: -
//    IN/OUT: -
//    RETURN: -
//   COMMENT: 
//
DLLEXP_IMP void  CALL_CONV  DesDecrypt(unsigned char *b);

#ifdef __cplusplus
}
#endif

#endif // COMMON_H

//////////////////////////////////////////////////////////////////////////////
//                             End of File
//////////////////////////////////////////////////////////////////////////////

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品亚洲国内自在自线福利| 亚洲精品精品亚洲| 精品污污网站免费看| 欧美一区二区性放荡片| 欧美在线免费观看亚洲| 成人白浆超碰人人人人| 国产一区在线看| 九色porny丨国产精品| 青青草伊人久久| 日本最新不卡在线| 水蜜桃久久夜色精品一区的特点| 亚洲一区在线播放| 日韩高清一区在线| 免费在线视频一区| 国产剧情在线观看一区二区| 国产一二精品视频| 国产成人精品亚洲777人妖| 国产麻豆91精品| 国产不卡免费视频| 国产mv日韩mv欧美| 99久久免费国产| 91福利在线看| 日韩一级成人av| 久久午夜国产精品| 中文字幕国产一区二区| 国产精品久久久久四虎| 亚洲黄色在线视频| 精品一区二区免费在线观看| 国产高清精品网站| 欧美中文字幕不卡| 精品国产百合女同互慰| 久久久久久亚洲综合影院红桃| 日本一区二区动态图| 有码一区二区三区| 久久精品久久99精品久久| 国产伦精品一区二区三区在线观看| 国产一区在线精品| 色噜噜久久综合| 日韩精品在线网站| 亚洲欧美福利一区二区| 国产精品资源在线| 日韩精品成人一区二区在线| 亚洲v精品v日韩v欧美v专区| 日本伊人午夜精品| 精品午夜久久福利影院| 91高清在线观看| 色丁香久综合在线久综合在线观看| 中文字幕精品一区二区三区精品| 中文字幕一区二区三区av| 国产蜜臀97一区二区三区| 亚洲欧洲日韩一区二区三区| 秋霞国产午夜精品免费视频| 99亚偷拍自图区亚洲| 在线不卡a资源高清| 国产日韩欧美精品电影三级在线| 一区二区三区视频在线看| 久久69国产一区二区蜜臀| 在线观看日韩一区| 久久久久国产精品麻豆ai换脸 | 久久人人爽爽爽人久久久| 亚洲欧美视频一区| 国产精品一级黄| 日韩视频一区二区| 亚洲在线中文字幕| 91片在线免费观看| 亚洲国产精品激情在线观看| 日欧美一区二区| 色综合天天综合色综合av| 日本一区二区免费在线观看视频| 日av在线不卡| 7777精品伊人久久久大香线蕉完整版| 国产精品不卡在线观看| 成人影视亚洲图片在线| 精品久久久影院| 天堂久久久久va久久久久| 在线视频中文字幕一区二区| 国产欧美精品一区二区三区四区| 九色porny丨国产精品| 中文字幕日韩欧美一区二区三区| 久久99精品国产.久久久久久| 欧美日韩亚洲综合一区二区三区| 亚洲视频一区在线观看| 91丨九色丨蝌蚪富婆spa| 国产精品天干天干在线综合| 国产一区二区三区四区在线观看| 26uuu另类欧美| 精品一区二区三区免费观看| 久久综合九色欧美综合狠狠| 国产一区二区精品久久91| 欧美一区二区精品久久911| 亚洲成人你懂的| 欧美一级专区免费大片| 精品一区二区三区免费毛片爱| 日韩欧美一级片| 蜜臀av性久久久久蜜臀aⅴ流畅 | aaa亚洲精品| 国产精品嫩草99a| 91视频精品在这里| 曰韩精品一区二区| 欧美乱妇23p| 国产中文一区二区三区| 中文字幕成人av| 在线观看免费亚洲| 91福利视频久久久久| 婷婷夜色潮精品综合在线| 日韩欧美电影一二三| 国产精品自产自拍| 亚洲欧洲av在线| 欧美日韩国产经典色站一区二区三区| 日日噜噜夜夜狠狠视频欧美人| 日韩精品资源二区在线| 国产a级毛片一区| 亚洲国产精品一区二区久久恐怖片| 欧美一区二区三级| 国产成人精品综合在线观看| 亚洲综合一区二区精品导航| 欧美videos中文字幕| 99久久伊人精品| 美女国产一区二区| 亚洲四区在线观看| 717成人午夜免费福利电影| 国产不卡免费视频| 亚洲第一成年网| 国产色产综合产在线视频| 欧美三级中文字幕在线观看| 国产一区激情在线| 亚洲午夜国产一区99re久久| 久久精品人人做人人爽人人| 欧美日韩国产高清一区二区| 国产盗摄女厕一区二区三区| 亚洲一区电影777| 蜜臀av国产精品久久久久| 亚洲图片激情小说| 亚洲精品一区二区精华| 欧美在线一区二区| 成人av网址在线观看| 日韩在线一区二区三区| 亚洲欧美日韩国产综合在线| 久久日韩精品一区二区五区| 在线观看91精品国产麻豆| 91蜜桃在线观看| 成人中文字幕在线| 韩国成人精品a∨在线观看| 亚洲国产欧美日韩另类综合 | 久久综合精品国产一区二区三区| 在线精品视频一区二区| 成人午夜碰碰视频| 国产一区二区三区视频在线播放| 亚洲高清免费在线| 亚洲精品成人精品456| √…a在线天堂一区| 国产精品日韩精品欧美在线| 国产三级精品视频| 久久免费午夜影院| 欧美电影免费观看高清完整版在线 | 久久只精品国产| 日韩写真欧美这视频| 8x福利精品第一导航| 欧美色区777第一页| 欧美探花视频资源| 色婷婷综合久久| 91麻豆免费观看| 色哟哟亚洲精品| 91香蕉视频在线| 色吧成人激情小说| 欧美性大战久久久久久久蜜臀| 91片在线免费观看| 欧美日韩一区二区三区四区| 欧美精选一区二区| 日韩免费高清电影| 久久久久88色偷偷免费| 日本一区二区不卡视频| 中文字幕一区二区三区四区不卡| 成人欧美一区二区三区视频网页| 亚洲人成网站色在线观看| 亚洲精品中文在线影院| 亚洲午夜电影在线| 蜜桃一区二区三区在线观看| 国产一区二区在线观看免费| 国产高清精品在线| 色先锋资源久久综合| 欧美精品粉嫩高潮一区二区| 精品国产麻豆免费人成网站| 国产欧美综合在线观看第十页| 亚洲素人一区二区| 日韩电影在线观看电影| 国产精品一区二区在线看| av不卡在线播放| 在线91免费看| 国产欧美日产一区| 亚洲 欧美综合在线网络| 精品影院一区二区久久久| 成av人片一区二区| 欧美精三区欧美精三区| 久久精品一二三| 亚洲国产综合人成综合网站| 九一九一国产精品| 欧美在线免费视屏| 国产亚洲精品久| 日本亚洲电影天堂|