123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- #include "StdAfx.h"
- #include "public.h"
- #include <time.h>
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- const unsigned char hextable[]={"0123456789ABCDEF"};
- void ConvAscii(unsigned char *Hex,char *Ascii,unsigned int len)
- {
- unsigned int i;
- for(i=0;i<len;i++)
- {
- Ascii[2*i]=hextable[Hex[i]>>4];
- Ascii[2*i+1]=hextable[Hex[i]&0xf];
- }
- Ascii[2*len]=0;
- }
- //*******************************************************************************
- void AsciiToHex(char *Ascii,unsigned char *Hex,int len)
- {
- int i;
- unsigned char ch;
- for(i=0;i<len;i=i+2)
- {
- ch=(Ascii[i]&0xf);
- if(Ascii[i]>'9')
- ch+=9;
- Hex[i/2]=ch<<4;
- ch=Ascii[i+1]&0xf;
- if(Ascii[i+1]>'9')
- ch+=9;
- Hex[i/2]+=ch;
- }
- }
- int convTo3x(unsigned char*from,int flen,char*to)
- {
- int i = 0;
- unsigned char ch;
- for(i=0;i<flen;++i) {
- ch=from[i];
- ch>>=4;
- ch&=0x0f;
- ch|=0x30;
- to[i*2] = ch;
- ch=from[i];
- ch&=0x0f;
- ch|=0x30;
- to[i*2+1]=ch;
- }
- return flen*2;
- }
- int _3xToHex(char *Ascii,unsigned char *Hex,int len)
- {
- int i = 0,j=0;
- unsigned char tmp[512] = {0};
- unsigned char ch;
- for(i = 0;i<len;i++)
- {
- j = 2*i;
- ch = Ascii[j]&0x0F;
- ch<<=4;
- ch |= (Ascii[j+1]&0x0F);
- tmp[j/2] = ch;
- }
- memcpy(Hex,tmp,len/2);
- return (len/2);
- }
- int get_random(int len,unsigned char*random)
- {
- int iloop;
- unsigned char ch;
- srand((int)time(NULL));
-
- for(iloop=0;iloop<len;iloop++)
- {
- ch = rand()%256;
- if(ch==0)
- {
- iloop--;
- continue;
- }
- random[iloop]=ch;
- }
- return iloop;
- }
- int RSA_GetBitLen(unsigned char *a, int alen)
- {
- int i;
- int temp;
- int bitlen;
- if (0 == alen)
- return 0;
-
- for(i = alen-1;i >= 0; i--)
- {
- if(a[i] > 0)
- break;
- }
- if(i == -1)
- {
- return 0;
- }
- temp = i;
- bitlen = temp << 3;
-
- for (i = 7; i >= 0; i--)
- {
- if (a[temp] & (1 << i))
- break;
- }
- bitlen += (int)(i + 1);
- return bitlen;
- }
|