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

📄 asn1tag.cpp

📁 Mysql的处理
💻 CPP
字号:
// ASN1Tag.cpp: implementation of the CASN1Tag class.////////////////////////////////////////////////////////////////////////#include "ASN1Tag.h"#include "ASN1Exception.h"//////////////////////////////////////////////////////////////////////// Construction/Destruction//////////////////////////////////////////////////////////////////////namespace ASN1{    static String TAG_NAMES[] = {        "End of Content", 			"BOOLEAN", 			"INTEGER", 			"BIT_STRING", 			"OCTET_STRING", 			"NULL", 			"OBJECT_IDENTIFIER", 			"OBJECT_DESCRIPTOR", 			"EXTERNAL", 			"REAL",         "ENUMERATED", 		"EMBEDDED_PDV", 		"UTF8STRING", 		"Unknown", 		"Unknown", 		"Unknown", 		"SEQUENCE", 		"SET", "NUMERICSTRING", "PRINTABLESTRING",         "T61STRING", "VIDEOTEXSTRING", "IA5String", "UTCTime", "GENERALIZEDTIME", "GRAPHICSTRING", "VISIBLESTRING", "GENERALSTRING", "UNIVERSALSTRING", "UNKNOWN",         "BMPSTRING"    };    static String CLASS_NAMES[] = {        "UNIVERSAL", "APPLICATION", "CONTEXT", "PRIVATE"    };	CASN1Tag::CASN1Tag(int iTagNumber, int iTagClass, int iTagMode)	{		m_iTagClass=iTagClass;		m_iTagNumber=iTagNumber;		m_iTagMode=iTagMode;	}	CASN1Tag::CASN1Tag(const char* szInputStream, int nLength)		{		const char* p = szInputStream;		m_iTagClass = *p >> 6;		int tmp = *p & 0x1F;		m_iTagNumber = tmp;		}	int CASN1Tag::Create(int iTagClass, int iTagNumber)	{		if(iTagNumber < 0 || iTagNumber > 0x1fffffff)			return 0xffffffff;		else			return iTagClass << 30 | iTagNumber;	}	CASN1Tag::~CASN1Tag()	{			}	int CASN1Tag::TagClass(int i)	{		return (unsigned int)i >> 30;;	}	int CASN1Tag::TagNumber(int i)	{		return i & 0x1fffffff;	}	String CASN1Tag::toString(int i)    {		int j = TagClass(i);        int k = TagNumber(i);        if(j == 0)        {            if(k < sizeof(TAG_NAMES) / sizeof(TAG_NAMES[0]))			{				char r[40];				_snprintf(r, 40, "UNIVERSAL[%s]", TAG_NAMES[k].c_str());                return  r;			}            else			{				char r[40];				_snprintf(r, 40, "UNIVERSAL[%d]", k);                return  r;			}        } 		else		{			char r[40];			_snprintf(r, 40, "%s[%d]", CLASS_NAMES[j].c_str(), k);            return r;        }	}}

⌨️ 快捷键说明

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