49 lines
1 KiB
C
49 lines
1 KiB
C
|
/*
|
||
|
* Base64 encoding/decoding (RFC1341) - test program
|
||
|
* Copyright (c) 2005, Jouni Malinen <j@w1.fi>
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU General Public License version 2 as
|
||
|
* published by the Free Software Foundation.
|
||
|
*
|
||
|
* Alternatively, this software may be distributed under the terms of BSD
|
||
|
* license.
|
||
|
*
|
||
|
* See README and COPYING for more details.
|
||
|
*/
|
||
|
|
||
|
#include "utils/includes.h"
|
||
|
#include "utils/os.h"
|
||
|
#include "utils/base64.h"
|
||
|
|
||
|
int main(int argc, char *argv[])
|
||
|
{
|
||
|
FILE *f;
|
||
|
size_t len, elen;
|
||
|
unsigned char *buf, *e;
|
||
|
|
||
|
if (argc != 4) {
|
||
|
printf("Usage: base64 <encode|decode> <in file> <out file>\n");
|
||
|
return -1;
|
||
|
}
|
||
|
|
||
|
buf = (unsigned char *) os_readfile(argv[2], &len);
|
||
|
if (buf == NULL)
|
||
|
return -1;
|
||
|
|
||
|
if (strcmp(argv[1], "encode") == 0)
|
||
|
e = base64_encode(buf, len, &elen);
|
||
|
else
|
||
|
e = base64_decode(buf, len, &elen);
|
||
|
if (e == NULL)
|
||
|
return -2;
|
||
|
f = fopen(argv[3], "w");
|
||
|
if (f == NULL)
|
||
|
return -3;
|
||
|
fwrite(e, 1, elen, f);
|
||
|
fclose(f);
|
||
|
free(e);
|
||
|
|
||
|
return 0;
|
||
|
}
|