import kpasman 0.1 sources
This commit is contained in:
parent
16a283b00c
commit
9a3f2b6afc
110 changed files with 27300 additions and 0 deletions
103
rc2-1.1.0/rc2.c
Normal file
103
rc2-1.1.0/rc2.c
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <rc2.h>
|
||||
|
||||
void rc2(void);
|
||||
void derc2(void);
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
unsigned int i, j = 0, keypiece, keylength;
|
||||
unsigned char temp[3], key[128];
|
||||
|
||||
if (argc < 3) {
|
||||
exit(0);
|
||||
}
|
||||
if (!strncmp("0x",argv[1],2)) {
|
||||
for (i = 2; argv[1][i] != '\0'; j++) {
|
||||
temp[0] = argv[1][i++];
|
||||
temp[1] = argv[1][i++];
|
||||
temp[2] = '\0';
|
||||
keypiece = (int) strtol(temp, NULL, 16);
|
||||
key[j] = (char) keypiece;
|
||||
}
|
||||
} else {
|
||||
for (j = 0; argv[1][j] != '\0'; j++) {
|
||||
key[j] = argv[1][j];
|
||||
}
|
||||
}
|
||||
keylength = j;
|
||||
rc2_expandkey(key, keylength, atoi(argv[2]));
|
||||
if (!strcmp(argv[0],"rc2")) {
|
||||
rc2();
|
||||
} else if (!strcmp(argv[0],"derc2")) {
|
||||
derc2();
|
||||
} else {
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void rc2()
|
||||
{
|
||||
unsigned char charbuf[8];
|
||||
unsigned short text[4];
|
||||
unsigned int count, i;
|
||||
|
||||
do {
|
||||
count = read(fileno(stdin),charbuf,8);
|
||||
if (count == 0) {
|
||||
exit(0);
|
||||
}
|
||||
if (count < 8) {
|
||||
for (i = count; i < 8; i++) {
|
||||
charbuf[i] = '\0';
|
||||
}
|
||||
}
|
||||
for (i = 0; i < 4; i++) {
|
||||
text[i] = charbuf[i * 2] + 256 * charbuf[i * 2 + 1];
|
||||
}
|
||||
rc2_encrypt(text);
|
||||
for (i = 0; i < 4; i++) {
|
||||
charbuf[i * 2] = text[i] & 0xff;
|
||||
charbuf[i * 2 + 1] = text[i] >> 8;
|
||||
}
|
||||
for (i = 0; i < 8; i++) {
|
||||
putchar((int) charbuf[i]);
|
||||
}
|
||||
} while (count == 8);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
void derc2()
|
||||
{
|
||||
unsigned char charbuf[8];
|
||||
unsigned short text[4];
|
||||
unsigned int count, i;
|
||||
|
||||
do {
|
||||
count = read(fileno(stdin),charbuf,8);
|
||||
if (count == 0) {
|
||||
exit(0);
|
||||
}
|
||||
if (count < 8) {
|
||||
for (i = count; i < 8; i++) {
|
||||
charbuf[i] = '\0';
|
||||
}
|
||||
}
|
||||
for (i = 0; i < 4; i++) {
|
||||
text[i] = charbuf[i * 2] + 256 * charbuf[i * 2 + 1];
|
||||
}
|
||||
rc2_decrypt(text);
|
||||
for (i = 0; i < 4; i++) {
|
||||
charbuf[i * 2] = text[i] & 0xff;
|
||||
charbuf[i * 2 + 1] = text[i] >> 8;
|
||||
}
|
||||
for (i = 0; i < 8; i++) {
|
||||
putchar((int) charbuf[i]);
|
||||
}
|
||||
} while (count == 8);
|
||||
exit(0);
|
||||
}
|
||||
Reference in a new issue