이런건 보관해놓자.





Posted by 배트
,
귀찮귀찮

GT-P1000 (GSM)
GT-P1010 (Wi-Fi Model)
SHW-M180W (Wi-Fi Model, Korea only)
SHW-M180S (SKT)
SHW-M180K (KTF)
SHW-M180L (LGU+)
SCH-I800 (Verizon, US Cellular)
SPH-P100 (Sprint)
SGH-I987 (AT&T)
SGH-T849 (T-Mobile)
SC-01C (NTT DoCoMo)
Posted by 배트
,
1. 꼴에 Enterprise는 잘 안깔린다. Professional이 잘 깔리는 듯.
2. 되도록 가상 드라이브는 사용하지 말고, ISO를 임시경로에 풀어서 설치하자.
3. Setup.exe를 이용해서 설치하려면 SETUPSIZ.INI에서 vmpath를 Oracle의 java.exe로 바꿔주자.
4. 구성요소 선택할 때 OLE object viewer를 제거하고 설치하자.
5. 아래 커맨드가 가장 무난히 설치된다.

D:\vs6pro\SETUP\acmsetup.exe /t VS98PRO.STF /s D:\vs6pro /n "NAME /o "COMPANY" /k "0000000000"


Posted by 배트
,
This information must be used for review purpose.

11. Rights Issuer Certification

As a prerequisite for issuing a Rights Issuer certificate for the Service Provider, it is assumed that the Service Provider has already generated a Rights Issuer RSA key pair in an environment that satisfies the security requirements stipulated by the Rights Issuer Robustness Rules, another prerequisite is for the Service Provider to have fulfilled the Exhibit G of the Service Provider Agreement and to have communicated it to CMLA.. After that has been done, the first time certification and subsequent re-certifications are done as defined below.

 

1.        Service Provider creates self-signed DER encoded PKCS#10 certificate request [PKCS#10], burns a DVD-R containing the request, and sends the DVD-R to CMLA. This request SHALL be signed using sha-1WithRSAEncryption as defined in [RFC3279].
The file naming convention is
Rights_Issuer_*_##.p10, where * is replaced with the Service Providers name and ## is replaced with a two digit number.  The Service Provider also submits the Rights Issuer Certificate ordering form to CMLA via signed email and the original via regular courier.  .  This ordering form will include the SHA1 hash of the public key (PKCS#1 RSAPublicKey structure in the subjectPublicKey field) inside the PKCS#10 request PKCS#10 file (20 bytes, encoded in hexadecimal).

2.        CMLA will review and verify each request submitted. After verification, CMLA generates an invoice.

3.        The Invoice is sent via email and hard copy to the Service Provider.

4.        Service Provider makes payment on invoice.

5.        Upon receipt of payment on invoice, CMLA processes order and responds.  Order processing includes the verification of the hash value provided in the Rights Issuer Certificate ordering form to the hash value calculated over the to be certified public key. If none of the verifications fail CMLA creates, according to the certificate request, a Rights Issuer Certificate and delivers it with the corresponding Rights Issuer CA Certificate to the Service Provider in a DVD-R.
The file naming convention for the Rights Issuer Certificate is
Rights_Issuer_*_##.der, where * is replaced with the Service Providers name and ## is replaced with the two digit number. The file contains the DER encoding of the Rights Issuer Certificate 
The file naming convention for the Rights Issuer CA Certificate is
Rights_Issuer_CA_Certs.der. The file contains the DER encoding of the Rights Issuer CA Certificate.

6.        CMLA registers into certificate database necessary information such as the certificate issued by the RI CA, request data, and certificate delivery data.

 

CMLA Root CA Certificates are delivered to Service Providers in the same way as to the Client Adopters (check chapter 10.1 step 2 for details).


출처: CMLA Technical Specification V1.31-20101209
아 이거 퍼오는거 불법같은데 하도 답답해서 ㅠ
Posted by 배트
,
Checking a platform

#ifdef _WIN32 // note the underscore: without it, it's not msdn official!

    // Windows (x64 and x86)

#elif __unix__ // all unices

    // Unix

#elif __posix__

    // POSIX

#elif linux

    // linux

#elif __APPLE__

    // Mac OS, not sure if this is covered by __posix__ and/or __unix__ though...

#endif

//__MINGW32__
//__GNUC__ 
// _AIX32, _AIX41, _AIX43, __HOS_AIX__ (_AIX32 (the OS version >= 3.2) maybe useful)
//  

ex)
when a binary is complied by GCC 4.4.5 on Ubuntu 10.10
__unix__, linux, __GNUC__ are defined. 



Macros for Visual C
 (+ANSI macros)
Macros for gcc

http://docs.wxwidgets.org/stable/wx_cppconst.html

UI system
__WINDOWS__ any Windows, yom may also use __WXMSW__
__WIN16__ Win16 API (not supported since wxWidgets 2.6)
__WIN32__ Win32 API
__WXBASE__ Only wxBase, no GUI features (same as wxUSE_GUI == 0)
__WXCOCOA__ OS X using Cocoa API
__WXWINCE__ Windows CE
__WXGTK__ GTK+
__WXGTK12__ GTK+ 1.2 or higher
__WXGTK20__ GTK+ 2.0 or higher
__WXMOTIF__ Motif
__WXMOTIF20__ Motif 2.0 or higher
__WXMAC__ Mac OS all targets
__WXMAC_CLASSIC__ MacOS for Classic
__WXMAC_CARBON__ MacOS for Carbon CFM (running under Classic or OSX) or true OS X Mach-O Builds
__WXMAC_OSX__ MacOS X Carbon Mach-O Builds
__WXMGL__ SciTech Soft MGL (__WXUNIVERSAL__ will be also defined)
__WXMSW__ Any Windows
__WXOSX__ Any Mac OS X port (either Carbon or Cocoa)
__WXPALMOS__ PalmOS
__WXPM__ OS/2 native Presentation Manager
__WXSTUBS__ Stubbed version ('template' wxWin implementation)
__WXXT__ Xt; mutually exclusive with WX_MOTIF, not implemented in wxWidgets 2.x
__WXX11__ wxX11 (__WXUNIVERSAL__ will be also defined)
__WXWINE__ WINE (i.e. WIN32 on Unix)
__WXUNIVERSAL__ wxUniversal port, always defined in addition to one of the symbols above so this should be tested first.
__X__ any X11-based GUI toolkit except GTK+ 

Operating systems
__APPLE__ any Mac OS version
__AIX__ AIX
__BSD__ Any *BSD system
__CYGWIN__ Cygwin: Unix on Win32
__DARWIN__ Mac OS X using the BSD Unix C library (as opposed to using the Metrowerks MSL C/C++ library)
__DATA_GENERAL__ DG-UX
__DOS_GENERAL__ DOS (used with wxMGL only)
__FREEBSD__ FreeBSD
__HPUX__ HP-UX (Unix)
__GNU__ GNU Hurd
__LINUX__ Linux
__MACH__ Mach-O Architecture (Mac OS X only builds)
__OSF__ OSF/1
__PALMOS__ PalmOS
__SGI__ IRIX
__SOLARIS__ Solaris
__SUN__ Any Sun
__SUNOS__ Sun OS
__SVR4__ SystemV R4
__SYSV__ SystemV generic
__ULTRIX__ Ultrix
__UNIX__ any Unix
__UNIX_LIKE__ Unix, BeOS or VMS
__VMS__ VMS
__WINDOWS__ any Windows
__WINE__ Wine

Compilers
__BORLANDC__ Borland C++. The value of the macro corresponds to the compiler version: 500 is 5.0.
__DJGPP__ DJGPP
__DIGITALMARS__ Digital Mars
__GNUG__ Gnu C++ on any platform, see also wxCHECK_GCC_VERSION
__GNUWIN32__ Gnu-Win32 compiler, see also wxCHECK_W32API_VERSION
__MINGW32__ MinGW
__MWERKS__ CodeWarrior MetroWerks compiler
__SUNCC__ Sun CC
__SYMANTECC__ Symantec C++
__VISAGECPP__ IBM Visual Age (OS/2)
__VISUALC__ Microsoft Visual C++. The value of this macro corresponds to the compiler version: 1020 for 4.2 (the first supported version), 1100 for 5.0, 1200 for 6.0 and so on
__XLC__ AIX compiler
__WATCOMC__ Watcom C++. The value of this macro corresponds to the compiler version, 1100 is 11.0 and 1200 is OpenWatcom.
_WIN32_WCE Windows CE version
 
Posted by 배트
,
아. 왜 이렇게 간단한 걸 진작에 생각 못했지.

const static short s_sh = 0x00ff;
const static char *s_pch = (char*)&s_sh;

#define IsOrderingBigEndian (s_pch[0]==0?TRUE:FALSE)



Simpler: 

const static short s_sh = 0x0100;
const static char *s_pch = (char*)&s_sh;

#define IsOrderingBigEndian (s_pch[0])

 
Posted by 배트
,
// function for adding two big number in big endian
static void add(const unsigned char *a, int la, const unsigned char *b, int lb, unsigned char *mul, int *lmul)
{
int ltemp = ((la>lb)?la:lb)+1;
int lmin = ((la>lb)?lb:la);
unsigned char *temp = (unsigned char*)malloc(ltemp);
int xa = la-1, xb = lb-1, y = ltemp-1, u = 0;
int k = 0, z = 0;

memset(temp, 0, ltemp);

while(xa>=0 && xb>=0)
{
temp[y] = a[xa] + b[xb] + u;

if( temp[y] < a[xa] )
u = 1;
else
u = 0;

y--;
xa--;
xb--;
}

while(temp[++k]==0);

for(z=k ; z<ltemp ; z++)
mul[z-k] = temp[z];
*lmul = z-k;

free(temp); 
}
Posted by 배트
,
// function for multiplying two big number in big endian
// big endian means, the number in a first index is the most significant byte.
static void multiply(const unsigned char *a, int la, const unsigned char *b, int lb, unsigned char *mul, int *lmul)
{
unsigned char *c = NULL;
unsigned char *temp = NULL;
int i,j,k=0,x=0,y;
long int r=0;
long sum = 0;

c = (unsigned char*)malloc(la+lb);
temp = (unsigned char*)malloc(la*lb*2);
la--;
lb--;

for(i=lb;i>=0;i--){
r=0;
for(j=la;j>=0;j--){
temp[k++] = (b[i]*a[j] + r)%256;
r = (b[i]*a[j]+r)/256;
}
temp[k++] = r;
x++;
for(y = 0;y<x;y++){
temp[k++] = 0;
}
}

k=0;
r=0;
for(i=0;i<la+lb+2;i++){
sum =0;
y=0;
for(j=1;j<=lb+1;j++){
if(i <= la+j){
sum = sum + temp[y+i];
}
y += j + la + 1;
}
c[k++] = (sum+r) %256;
r = (sum+r)/256;
}
c[k] = r;
j=0;
while(c[k-1]==0)
k--;
for(i=k-1;i>=0;i--){
mul[j++]=c[i];
}
*lmul = j;

free(c);
free(temp);
}
Posted by 배트
,
내가 이딴건 왜 만들었을까...

class SafeData {
public:
    SafeData();
    virtual ~SafeData();
    void SetByCopy( Data inData );
    void SetByCopy( uint8 *d, int l );
    void SetByRef( Data inData );
    void SetByRef( uint8 *d, int l );
    uint8 *GetData();
    int GetLength();
    void Clear();
    
protected:
    uint8 *pBuffer;
    int length;
};

SafeData::SafeData()
{
    pBuffer = NULL;
    length = 0;
};

SafeData::~SafeData()
{
    Clear();
};

void SafeData::SetByCopy( Data inData )
{
    Clear();
    pBuffer = new uint8[inData.len];
    if( pBuffer==NULL )
        return;
    length = inData.len;
    memcpy( pBuffer, inData.d, length );
}

void SafeData::SetByCopy( uint8 *d, int l )
{
    Clear();
    pBuffer = new uint8[l];
    if( pBuffer==NULL )
        return;
    length = l;
    memcpy( pBuffer, d, length );
}

void SafeData::SetByRef( Data inData )
{
    Clear();
    pBuffer = inData.d;
    length = inData.len;
}

void SafeData::SetByRef( uint8 *d, int l )
{
    Clear();
    pBuffer = d;
    length = l;
}

uint8 *SafeData::GetData() {return pBuffer;}

int SafeData::GetLength() {return length;}

void SafeData::Clear()
{
    if( pBuffer )
    {
        delete [] pBuffer;
        pBuffer = NULL;
    }
    length = 0;
}

Posted by 배트
,
으...폰트 이름과 헤더 수정 못했음.
두 폰트 모두 편집과 배포가 자유로운 폰트지만,
헤더의 저작권를 적절히 수정하지 못해서 문제가 생길 수는 있음.
Posted by 배트
,