This commit is contained in:
biosvos
2026-08-07 17:38:18 +09:00
commit 873193a243
9613 changed files with 2755992 additions and 0 deletions
@@ -0,0 +1,73 @@
/* internal.h
Internal definitions used by Expat. This is not needed to compile
client code.
The following calling convention macros are defined for frequently
called functions:
FASTCALL - Used for those internal functions that have a simple
body and a low number of arguments and local variables.
PTRCALL - Used for functions called though function pointers.
PTRFASTCALL - Like PTRCALL, but for low number of arguments.
inline - Used for selected internal functions for which inlining
may improve performance on some platforms.
Note: Use of these macros is based on judgement, not hard rules,
and therefore subject to change.
*/
#if defined(__GNUC__) && defined(__i386__)
/* We'll use this version by default only where we know it helps.
regparm() generates warnings on Solaris boxes. See SF bug #692878.
Instability reported with egcs on a RedHat Linux 7.3.
Let's comment out:
#define FASTCALL __attribute__((stdcall, regparm(3)))
and let's try this:
*/
#define FASTCALL __attribute__((regparm(3)))
#define PTRFASTCALL __attribute__((regparm(3)))
#endif
/* Using __fastcall seems to have an unexpected negative effect under
MS VC++, especially for function pointers, so we won't use it for
now on that platform. It may be reconsidered for a future release
if it can be made more effective.
Likely reason: __fastcall on Windows is like stdcall, therefore
the compiler cannot perform stack optimizations for call clusters.
*/
/* Make sure all of these are defined if they aren't already. */
#ifndef FASTCALL
#define FASTCALL
#endif
#ifndef PTRCALL
#define PTRCALL
#endif
#ifndef PTRFASTCALL
#define PTRFASTCALL
#endif
#ifndef XML_MIN_SIZE
#if !defined(__cplusplus) && !defined(inline)
#ifdef __GNUC__
#define inline __inline
#endif /* __GNUC__ */
#endif
#endif /* XML_MIN_SIZE */
#ifdef __cplusplus
#define inline inline
#else
#ifndef inline
#define inline
#endif
#endif
@@ -0,0 +1,13 @@
#define E_ECHO 010
#define ROTORSZ 256
#define MASK 0377
typedef struct crypt_key {
char t1[ROTORSZ];
char t2[ROTORSZ];
char t3[ROTORSZ];
char deck[ROTORSZ];
char cbuf[13];
int n1, n2, nr1, nr2;
} CRYPT_KEY;
@@ -0,0 +1,67 @@
// Crypt.h
//
#include "stdafx.h"
#include "crypt.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
char* CCrypt::m_pszKey = "SPConsole1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
CString CCrypt::Encrypt(CString sString)
{
USES_CONVERSION;
int nKeyLen = (int)strlen(m_pszKey);
int iPos = (int)sString.GetLength() % nKeyLen;
CString sRet;
LPCSTR pszAscii = T2CA(sString);
for (unsigned int i = 0;i < strlen(pszAscii); i++) {
CString sTemp = sRet;
sRet.Format(_T("%s%03d"), sTemp, (unsigned char)pszAscii[i] ^ m_pszKey[(i + iPos) % nKeyLen]);
}
return sRet;
}
CString CCrypt::Decrypt(CString sString)
{
USES_CONVERSION;
LPCSTR pszAscii = T2CA(sString);
int nKeyLen = (int)strlen(m_pszKey);
int iPos = ((int)strlen(pszAscii) / 3) % nKeyLen;
CString sRet;
TCHAR szTemp[2];
szTemp[1] = 0;
for (unsigned int i = 0; i < strlen(pszAscii) / 3; i++) {
int nDigit, nNumber = 0;
nDigit = pszAscii[i * 3];
if (nDigit < '0' || nDigit > '9')
return _T("");
nNumber += (nDigit - '0') * 100;
nDigit = pszAscii[i * 3 + 1];
if (nDigit < '0' || nDigit > '9')
return _T("");
nNumber += (nDigit - '0') * 10;
nDigit = pszAscii[i * 3 + 2];
if (nDigit < '0' || nDigit > '9')
return _T("");
nNumber += nDigit - '0';
szTemp[0] = nNumber ^ m_pszKey[(i + iPos) % nKeyLen];
sRet += szTemp;
}
return sRet;
}