00001 #ifdef TEST
00002 #include "headers.h"
00003
00004 static const string desCommandString = "des";
00005
00006 void
00007 DesCommand::getHtmlInterface(std::ostream& s) {
00008 s << "<h2>DES (Data Encryption Standard)</h2>";
00009 s << "Encrypts and decrypts data in-memory given a key.\n";
00010 beginUl(s);
00011 generateHtmlCmd(s, "Test");
00012 endUl(s);
00013 }
00014
00015
00016 string
00017 DesCommand::getCommandString() {
00018 return desCommandString;
00019 }
00020
00021
00022 void
00023 DesCommand::run(std::ostream& s)
00024 {
00025 vector<unsigned char> key(Des::blockSize);
00026 unsigned char src[1024];
00027 unsigned char in[1024];
00028 unsigned char out[1024];
00029 int srclen;
00030 int resultLength;
00031 int i;
00032
00033 Des des;
00034
00035
00036
00037 Des::generateRandomKey(&key[0]);
00038 s << "setKey = " << des.setKey(&key[0]) << "\n";
00039
00040 srclen = 76;
00041 for (i = 0; i < srclen; i++) {
00042 src[i] = '0' + (i % 10);
00043 }
00044
00045 s << "Encrypting data:\n";
00046 s << "Source data length = " << srclen << "\n";
00047 s << "Source data: ";
00048 s.write((const char*)&src, srclen);
00049 s << "\n";
00050
00051 resultLength = des.encrypt(src, srclen, out);
00052 s << "Encrytped data length = " << resultLength << "\n";
00053 s << "Encrypted data: ";
00054 s.write((const char*)&out, resultLength);
00055 s << "\n";
00056
00057 resultLength = des.decrypt(out, resultLength, in);
00058 s << "Decrypted data length = " << resultLength << "\n";
00059 s << "Decrypted data: ";
00060 s.write((const char*)&in, resultLength);
00061 s << "\n";
00062 }
00063
00064
00065 void
00066 DesCommand::getHelp(std::ostream& s) {
00067 }
00068
00069 #endif
00070
00071