0% found this document useful (0 votes)
60 views58 pages

Using Using Using Namespace: Blowfish

This document defines a Blowfish encryption class with constants and static arrays used for the encryption algorithm. It initializes the P-array and S-boxes used in Blowfish encryption with fixed hexadecimal values. The class contains methods for encryption but no key or plaintext is provided in this document.

Uploaded by

Joe Lagarteja
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
60 views58 pages

Using Using Using Namespace: Blowfish

This document defines a Blowfish encryption class with constants and static arrays used for the encryption algorithm. It initializes the P-array and S-boxes used in Blowfish encryption with fixed hexadecimal values. The class contains methods for encryption but no key or plaintext is provided in this document.

Uploaded by

Joe Lagarteja
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 58

using System;

using System.Text;
using System.IO;

namespace fnt_Blowfish_Alicia
{

public class Blowfish


{
const int N = 16;
const int KEYBYTES = 8;

static uint[] _P =
{
0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822,
0x299f31d0,
0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, 0xbe5466cf,
0x34e90c6c,
0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, 0x9216d5d9,
0x8979fb1b
};
static uint[,] _S =
{
{
0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed,
0x6a267e96,
0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7, 0x0801f2e2,
0x858efc16,
0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e, 0x0d95748f,
0x728eb658,
0x718bcd58, 0x82154aee, 0x7b54a41d, 0xc25a59b5, 0x9c30d539,
0x2af26013,
0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef, 0x8e79dcb0,
0x603a180e,
0x6c9e0e8b, 0xb01e8a3e, 0xd71577c1, 0xbd314b27, 0x78af2fda,
0x55605c60,
0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440, 0x55ca396a,
0x2aab10b6,
0xb4cc5c34, 0x1141e8ce, 0xa15486af, 0x7c72e993, 0xb3ee1411,
0x636fbc2a,
0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e, 0xafd6ba33,
0x6c24cf5c,
0x7a325381, 0x28958677, 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b,
0x66282193,
0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, 0xef845d5d,
0xe98575b1,
0xdc262302, 0xeb651b88, 0x23893e81, 0xd396acc5, 0x0f6d6ff3,
0x83f44239,
0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e, 0x21c66842,
0xf6e96c9a,
0x670c9c61, 0xabd388f0, 0x6a51a0d2, 0xd8542f68, 0x960fa728,
0xab5133a3,
0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98, 0xa1f1651d,
0x39af0176,
0x66ca593e, 0x82430e88, 0x8cee8619, 0x456f9fb4, 0x7d84a5c3,
0x3b8b5ebe,
0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, 0x4ed3aa62,
0x363f7706,
0x1bfedf72, 0x429b023d, 0x37d0d724, 0xd00a1248, 0xdb0fead3,
0x49f1c09b,
0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7, 0xe3fe501a,
0xb6794c3b,
0x976ce0bd, 0x04c006ba, 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2,
0x196a2463,
0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, 0x6dfc511f,
0x9b30952c,
0xcc814544, 0xaf5ebd09, 0xbee3d004, 0xde334afd, 0x660f2807,
0x192e4bb3,
0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb, 0x5579c0bd,
0x1a60320a,
0xd6a100c6, 0x402c7279, 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8,
0xdb3222f8,
0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab, 0x323db5fa,
0xfd238760,
0x53317b48, 0x3e00df82, 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e,
0xdf1769db,
0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573, 0x695b27b0,
0xbbca58c8,
0xe1ffa35d, 0xb8f011a0, 0x10fa3d98, 0xfd2183b8, 0x4afcb56c,
0x2dd1d35b,
0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790, 0xe1ddf2da,
0xa4cb7e33,
0x62fb1341, 0xcee4c6e8, 0xef20cada, 0x36774c01, 0xd07e9efe,
0x2bf11fb4,
0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, 0xd08ed1d0,
0xafc725e0,
0x8e3c5b2f, 0x8e7594b7, 0x8ff6e2fb, 0xf2122b64, 0x8888b812,
0x900df01c,
0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad, 0x2f2f2218,
0xbe0e1777,
0xea752dfe, 0x8b021fa1, 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6,
0xce89e299,
0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, 0x165fa266,
0x80957705,
0x93cc7314, 0x211a1477, 0xe6ad2065, 0x77b5fa86, 0xc75442f5,
0xfb9d35cf,
0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, 0x00250e2d,
0x2071b35e,
0x226800bb, 0x57b8e0af, 0x2464369b, 0xf009b91e, 0x5563911d,
0x59dfa6aa,
0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5, 0x83260376,
0x6295cfa9,
0x11c81968, 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052,
0x9a532915,
0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x08ba6fb5,
0x571be91f,
0xf296ec6b, 0x2a0dd915, 0xb6636521, 0xe7b9f9b6, 0xff34052e,
0xc5855664,
0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a
},
{
0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, 0xad6ea6b0,
0x49a7df7d,
0x9cee60b8, 0x8fedb266, 0xecaa8c71, 0x699a17ff, 0x5664526c,
0xc2b19ee1,
0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e, 0x3f54989a,
0x5b429d65,
0x6b8fe4d6, 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6,
0xf0255dc1,
0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, 0x09686b3f,
0x3ebaefc9,
0x3c971814, 0x6b6a70a1, 0x687f3584, 0x52a0e286, 0xb79c5305,
0xaa500737,
0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8, 0xb03ada37,
0xf0500c0d,
0xf01c1f04, 0x0200b3ff, 0xae0cf51a, 0x3cb574b2, 0x25837a58,
0xdc0921bd,
0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701, 0x3ae5e581,
0x37c2dadc,
0xc8b57634, 0x9af3dda7, 0xa9446146, 0x0fd0030e, 0xecc8c73e,
0xa4751e41,
0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331, 0x4e548b38,
0x4f6db908,
0x6f420d03, 0xf60a04bf, 0x2cb81290, 0x24977c79, 0x5679b072,
0xbcaf89af,
0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e, 0x5512721f,
0x2e6b7124,
0x501adde6, 0x9f84cd87, 0x7a584718, 0x7408da17, 0xbc9f9abc,
0xe94b7d8c,
0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, 0xef1c1847,
0x3215d908,
0xdd433b37, 0x24c2ba16, 0x12a14d43, 0x2a65c451, 0x50940002,
0x133ae4dd,
0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b, 0x043556f1,
0xd7a3c76b,
0x3c11183b, 0x5924a509, 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c,
0x1e153c6e,
0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, 0x771fe71c,
0x4e3d06fa,
0x2965dcb9, 0x99e71d0f, 0x803e89d6, 0x5266c825, 0x2e4cc978,
0x9c10b36a,
0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, 0xf2f74ea7,
0x361d2b3d,
0x1939260f, 0x19c27960, 0x5223a708, 0xf71312b6, 0xebadfe6e,
0xeac31f66,
0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28, 0xc332ddef,
0xbe6c5aa5,
0x65582185, 0x68ab9802, 0xeecea50f, 0xdb2f953b, 0x2aef7dad,
0x5b6e2f84,
0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, 0x13cca830,
0xeb61bd96,
0x0334fe1e, 0xaa0363cf, 0xb5735c90, 0x4c70a239, 0xd59e9e0b,
0xcbaade14,
0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e, 0x648b1eaf,
0x19bdf0ca,
0xa02369b9, 0x655abb50, 0x40685a32, 0x3c2ab4b3, 0x319ee9d5,
0xc021b8f7,
0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8, 0xf837889a,
0x97e32d77,
0x11ed935f, 0x16681281, 0x0e358829, 0xc7e61fd6, 0x96dedfa1,
0x7858ba99,
0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696, 0xcdb30aeb,
0x532e3054,
0x8fd948e4, 0x6dbc3128, 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61,
0xee7c3c73,
0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0, 0x45eee2b6,
0xa3aaabea,
0xdb6c4f15, 0xfacb4fd0, 0xc742f442, 0xef6abbb5, 0x654f3b1d,
0x41cd2105,
0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, 0xcf62a1f2,
0x5b8d2646,
0xfc8883a0, 0xc1c7b6a3, 0x7f1524c3, 0x69cb7492, 0x47848a0b,
0x5692b285,
0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00, 0x58428d2a,
0x0c55f5ea,
0x1dadf43e, 0x233f7061, 0x3372f092, 0x8d937e41, 0xd65fecf1,
0x6c223bdb,
0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e, 0xa6078084,
0x19f8509e,
0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc,
0x800bcadc,
0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, 0xdb73dbd3,
0x105588cd,
0x675fda79, 0xe3674340, 0xc5c43465, 0x713e38d8, 0x3d28f89e,
0xf16dff20,
0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7
},
{
0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, 0x411520f7,
0x7602d4f7,
0xbcf46b2e, 0xd4a20068, 0xd4082471, 0x3320f46a, 0x43b7d4b7,
0x500061af,
0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840, 0x4d95fc1d,
0x96b591af,
0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0,
0x31cb8504,
0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, 0x28507825,
0x530429f4,
0x0a2c86da, 0xe9b66dfb, 0x68dc1462, 0xd7486900, 0x680ec0a4,
0x27a18dee,
0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6, 0xaace1e7c,
0xd3375fec,
0xce78a399, 0x406b2a42, 0x20fe9e35, 0xd9f385b9, 0xee39d7ab,
0x3b124e8b,
0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, 0x3a6efa74,
0xdd5b4332,
0x6841e7f7, 0xca7820fb, 0xfb0af54e, 0xd8feb397, 0x454056ac,
0xba489527,
0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b, 0x55a867bc,
0xa1159a58,
0xcca92963, 0x99e1db33, 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c,
0x9029317c,
0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3, 0x95c11548,
0xe4c66d22,
0x48c1133f, 0xc70f86dc, 0x07f9c9ee, 0x41041f0f, 0x404779a4,
0x5d886e17,
0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564, 0x257b7834,
0x602a9c60,
0xdff8e8a3, 0x1f636c1b, 0x0e12b4c2, 0x02e1329e, 0xaf664fd1,
0xcad18115,
0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922, 0x85b2a20e,
0xe6ba0d99,
0xde720c8c, 0x2da2f728, 0xd0127845, 0x95b794fd, 0x647d0862,
0xe7ccf5f0,
0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, 0x0a476341,
0x992eff74,
0x3a6f6eab, 0xf4f8fd37, 0xa812dc60, 0xa1ebddf8, 0x991be14c,
0xdb6e6b0d,
0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804, 0xf1290dc7,
0xcc00ffa3,
0xb5390f92, 0x690fed0b, 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b,
0xd9155ea3,
0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb, 0x37392eb3,
0xcc115979,
0x8026e297, 0xf42e312d, 0x6842ada7, 0xc66a2b3b, 0x12754ccc,
0x782ef11c,
0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350, 0x1a6b1018,
0x11caedfa,
0x3d25bdd8, 0xe2e1c3c9, 0x44421659, 0x0a121386, 0xd90cec6e,
0xd5abea2a,
0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe, 0x9dbc8057,
0xf0f7c086,
0x60787bf8, 0x6003604d, 0xd1fd8346, 0xf6381fb0, 0x7745ae04,
0xd736fccc,
0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, 0x77a057be,
0xbde8ae24,
0x55464299, 0xbf582e61, 0x4e58f48f, 0xf2ddfda2, 0xf474ef38,
0x8789bdc2,
0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9, 0x7aeb2661,
0x8b1ddf84,
0x846a0e79, 0x915f95e2, 0x466e598e, 0x20b45770, 0x8cd55591,
0xc902de4c,
0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e, 0xb77f19b6,
0xe0a9dc09,
0x662d09a1, 0xc4324633, 0xe85a1f02, 0x09f0be8c, 0x4a99a025,
0x1d6efe10,
0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169, 0xdcb7da83,
0x573906fe,
0xa1e2ce9b, 0x4fcd7f52, 0x50115e01, 0xa70683fa, 0xa002b5c4,
0x0de6d027,
0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5, 0xf0177a28,
0xc0f586e0,
0x006058aa, 0x30dc7d62, 0x11e69ed7, 0x2338ea63, 0x53c2dd94,
0xc2c21634,
0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, 0x6f05e409,
0x4b7c0188,
0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9, 0x1ac15bb4,
0xd39eb8fc,
0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4, 0x1e50ef5e,
0xb161e6f8,
0xa28514d9, 0x6c51133c, 0x6fd5c7e7, 0x56e14ec4, 0x362abfce,
0xddc6c837,
0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0
},
{
0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, 0x5cb0679e,
0x4fa33742,
0xd3822740, 0x99bc9bbe, 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e,
0xc700c47b,
0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, 0x5748ab2f,
0xbc946e79,
0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d, 0xd5730a1d,
0x4cd04dc6,
0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304, 0xa1fad5f0,
0x6a2d519a,
0x63ef8ce2, 0x9a86ee22, 0xc089c2b8, 0x43242ef6, 0xa51e03aa,
0x9cf2d0a4,
0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6, 0x2826a2f9,
0xa73a3ae1,
0x4ba99586, 0xef5562e9, 0xc72fefd3, 0xf752f7da, 0x3f046f69,
0x77fa0a59,
0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, 0xe990fd5a,
0x9e34d797,
0x2cf0b7d9, 0x022b8b51, 0x96d5ac3a, 0x017da67d, 0xd1cf3ed6,
0x7c7d2d28,
0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c, 0xe029ac71,
0xe019a5e6,
0x47b0acfd, 0xed93fa9b, 0xe8d3c48d, 0x283b57cc, 0xf8d56629,
0x79132e28,
0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, 0x15056dd4,
0x88f46dba,
0x03a16125, 0x0564f0bd, 0xc3eb9e15, 0x3c9057a2, 0x97271aec,
0xa93a072a,
0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319, 0x7533d928,
0xb155fdf5,
0x03563482, 0x8aba3cbb, 0x28517711, 0xc20ad9f8, 0xabcc5167,
0xccad925f,
0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991, 0xea7a90c2,
0xfb3e7bce,
0x5121ce64, 0x774fbe32, 0xa8b6e37e, 0xc3293d46, 0x48de5369,
0x6413e680,
0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166, 0xb39a460a,
0x6445c0dd,
0x586cdecf, 0x1c20c8ae, 0x5bbef7dd, 0x1b588d40, 0xccd2017f,
0x6bb4e3bb,
0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5, 0x72eacea8,
0xfa6484bb,
0x8d6612ae, 0xbf3c6f47, 0xd29be463, 0x542f5d9e, 0xaec2771b,
0xf64e6370,
0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, 0x4040cb08,
0x4eb4e2cc,
0x34d2466a, 0x0115af84, 0xe1b00428, 0x95983a1d, 0x06b89fb4,
0xce6ea048,
0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8, 0x611560b1,
0xe7933fdc,
0xbb3a792b, 0x344525bd, 0xa08839e1, 0x51ce794b, 0x2f32c9b7,
0xa01fbac9,
0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, 0x1a908749,
0xd44fbd9a,
0xd0dadecb, 0xd50ada38, 0x0339c32a, 0xc6913667, 0x8df9317c,
0xe0b12b4f,
0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, 0xbf97222c,
0x15e6fc2a,
0x0f91fc71, 0x9b941525, 0xfae59361, 0xceb69ceb, 0xc2a86459,
0x12baa8d1,
0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442, 0xe0ec6e0e,
0x1698db3b,
0x4c98a0be, 0x3278e964, 0x9f1f9532, 0xe0d392df, 0xd3a0342b,
0x8971f21e,
0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, 0xdf359f8d,
0x9b992f2e,
0xe60b6f47, 0x0fe3f11d, 0xe54cda54, 0x1edad891, 0xce6279cf,
0xcd3e7e6f,
0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299, 0xf523f357,
0xa6327623,
0x93a83531, 0x56cccd02, 0xacf08162, 0x5a75ebb5, 0x6e163697,
0x88d273cc,
0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614, 0xe6c6c7bd,
0x327a140a,
0x45e1d006, 0xc3f27b9a, 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2,
0x35bdd2f6,
0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b, 0x53113ec0,
0x1640e3d3,
0x38abbd60, 0x2547adf0, 0xba38209c, 0xf746ce76, 0x77afa1c5,
0x20756060,
0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c,
0x02fb8a8c,
0x01c36ae4, 0xd6ebe1f9, 0x90d4f869, 0xa65cdea0, 0x3f09252d,
0xc208e69f,
0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6
}
};

uint[] P;
uint[,] S;

public Blowfish(byte[] key)


{
short i;
short j;
short k;
uint data;
uint datal;
uint datar;

P = _P.Clone() as uint[];
S = _S.Clone() as uint[,];

j = 0;
for (i = 0; i < N + 2; ++i)
{
data = 0x00000000;
for (k = 0; k < 4; ++k)
{
data = (data << 8) | key[j];
j++;
if (j >= key.Length)
{
j = 0;
}
}
P[i] = P[i] ^ data;
}

datal = 0x00000000;
datar = 0x00000000;

for (i = 0; i < N + 2; i += 2)
{
Encipher(ref datal, ref datar);
P[i] = datal;
P[i + 1] = datar;
}

for (i = 0; i < 4; ++i)


{
for (j = 0; j < 256; j += 2)
{
Encipher(ref datal, ref datar);

S[i, j] = datal;
S[i, j + 1] = datar;
}
}
}

private uint F(uint x)


{
ushort a;
ushort b;
ushort c;
ushort d;
uint y;

d = (ushort)(x & 0x00FF);


x >>= 8;
c = (ushort)(x & 0x00FF);
x >>= 8;
b = (ushort)(x & 0x00FF);
x >>= 8;
a = (ushort)(x & 0x00FF);

y = S[0, a] + S[1, b];


y = y ^ S[2, c];
y = y + S[3, d];

return y;
}

public void Encipher(byte[] data, int length)


{
uint xl, xr;
if ((length % 8) != 0)
throw new Exception("Invalid Length");
for (int i = 0; i < length; i += 8)
{

xl = (uint)((data[i] << 24) | (data[i + 1] << 16) | (data[i + 2] << 8) |


data[i + 3]);
xr = (uint)((data[i + 4] << 24) | (data[i + 5] << 16) | (data[i + 6] <<
8) | data[i + 7]);
Encipher(ref xl, ref xr);

data[i] = (byte)(xl >> 24);


data[i + 1] = (byte)(xl >> 16);
data[i + 2] = (byte)(xl >> 8);
data[i + 3] = (byte)(xl);
data[i + 4] = (byte)(xr >> 24);
data[i + 5] = (byte)(xr >> 16);
data[i + 6] = (byte)(xr >> 8);
data[i + 7] = (byte)(xr);
}
}

private void Encipher(ref uint xl, ref uint xr)


{
uint Xl;
uint Xr;
uint temp;
short i;

Xl = xl;
Xr = xr;

for (i = 0; i < N; ++i)


{
Xl = Xl ^ P[i];
Xr = F(Xl) ^ Xr;

temp = Xl;
Xl = Xr;
Xr = temp;
}

temp = Xl;
Xl = Xr;
Xr = temp;

Xr = Xr ^ P[N];
Xl = Xl ^ P[N + 1];

xl = Xl;
xr = Xr;
}

public void Decipher(byte[] data, int length)


{
uint xl, xr;
if ((length % 8) != 0)
throw new Exception("Invalid Length");
for (int i = 0; i < length; i += 8)
{

xl = (uint)((data[i] << 24) | (data[i + 1] << 16) | (data[i + 2] << 8) |


data[i + 3]);
xr = (uint)((data[i + 4] << 24) | (data[i + 5] << 16) | (data[i + 6] <<
8) | data[i + 7]);
Decipher(ref xl, ref xr);

data[i] = (byte)(xl >> 24);


data[i + 1] = (byte)(xl >> 16);
data[i + 2] = (byte)(xl >> 8);
data[i + 3] = (byte)(xl);
data[i + 4] = (byte)(xr >> 24);
data[i + 5] = (byte)(xr >> 16);
data[i + 6] = (byte)(xr >> 8);
data[i + 7] = (byte)(xr);
}
}

private void Decipher(ref uint xl, ref uint xr)


{
uint Xl;
uint Xr;
uint temp;
short i;

Xl = xl;
Xr = xr;

for (i = N + 1; i > 1; --i)


{
Xl = Xl ^ P[i];
Xr = F(Xl) ^ Xr;

temp = Xl;
Xl = Xr;
Xr = temp;
}

temp = Xl;
Xl = Xr;
Xr = temp;

Xr = Xr ^ P[1];
Xl = Xl ^ P[0];

xl = Xl;
xr = Xr;
}
}
public class BlowfishStream : Stream
{
class CBState : IAsyncResult
{
internal AsyncCallback callback;
internal object state;
internal byte[] buffer;
internal IAsyncResult result;
internal CBState(AsyncCallback callback, object state, byte[] buffer)
{
this.callback = callback;
this.state = state;
this.buffer = buffer;
}
#region IAsyncResult Members

public object AsyncState


{
get
{
return state;
}
}

public bool CompletedSynchronously


{
get
{
return result.CompletedSynchronously;
}
}

public System.Threading.WaitHandle AsyncWaitHandle


{
get
{
return result.AsyncWaitHandle;
}
}

public bool IsCompleted


{
get
{
return result.IsCompleted;
}
}

#endregion
}

public enum Target


{
Encrypted,
Normal
};

Stream stream;
Blowfish bf;
Target target;

BlowfishStream(Stream stream, Blowfish bf, Target target)


{
this.stream = stream;
this.bf = bf;
this.target = target;
}

public override bool CanRead


{
get { return stream.CanRead; }
}

public override bool CanSeek


{
get { return stream.CanSeek; }
}

public override bool CanWrite


{
get { return stream.CanWrite; }
}

public override long Length


{
get { return stream.Length; }
}

public override long Position


{
get { return stream.Position; }
set { stream.Position = value; }
}

public override void Flush()


{
stream.Flush();
}

public override int Read(byte[] buffer, int offset, int count)


{
int bytesRead = stream.Read(buffer, offset, count);
if (target == Target.Normal)
bf.Encipher(buffer, bytesRead);
else
bf.Decipher(buffer, bytesRead);
return bytesRead;
}

public override void Write(byte[] buffer, int offset, int count)


{
if (target == Target.Normal)
bf.Decipher(buffer, count);
else
bf.Encipher(buffer, count);
stream.Write(buffer, offset, count);
}

public override IAsyncResult BeginRead(byte[] buffer, int offset, int count,


AsyncCallback callback, object state)
{
CBState cbs = new CBState(callback, state, buffer);
cbs.result = base.BeginRead(buffer, offset, count, new
AsyncCallback(ReadComplete), cbs);
return cbs;
}

public override int EndRead(IAsyncResult asyncResult)


{
CBState cbs = (CBState)asyncResult.AsyncState;
int bytesRead = base.EndRead(cbs.result);
if (target == Target.Normal)
bf.Encipher(cbs.buffer, bytesRead);
else
bf.Decipher(cbs.buffer, bytesRead);
return bytesRead;
}

private void ReadComplete(IAsyncResult result)


{
CBState cbs = (CBState)result.AsyncState;
cbs.callback(cbs);
}

public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count,


AsyncCallback callback, object state)
{
if (target == Target.Normal)
bf.Decipher(buffer, count);
else
bf.Encipher(buffer, count);
return base.BeginWrite(buffer, offset, count, callback, state);
}

public override long Seek(long offset, SeekOrigin origin)


{
return stream.Seek(offset, origin);
}

public override void SetLength(long value)


{
stream.SetLength(value);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data;

using MySql.Data.MySqlClient;

namespace fnt_Blowfish_Alicia
{
class CLS_DATABASE
{
CLS_FUNCTIONS gf = new CLS_FUNCTIONS();

public Dictionary<string, string> _FIELD = new Dictionary<string, string>();


public string[] _RECORDS;

private string _JOIN_TABLE = "";

public bool open_connection()


{
bool ret_val = false;

string server_name = CLS_GLOBALS._SERVER_NAME;


string server_uid = CLS_GLOBALS._SERVER_UID;
string server_password = CLS_GLOBALS._SERVER_PASSWORD;
string server_db = CLS_GLOBALS._SERVER_DB;

CLS_GLOBALS._ERR_DB_MESSAGE = "";

CLS_GLOBALS._CONNECTION_STRING = "SERVER=" + server_name + ";" +


"UID=" + server_uid + ";" +
"PASSWORD=" + server_password + ";" +
"DATABASE=" + server_db;

CLS_GLOBALS._OBJ_CONN.ConnectionString = CLS_GLOBALS._CONNECTION_STRING;

try
{
CLS_GLOBALS._OBJ_CONN.Open();
ret_val = true;
}
catch (Exception err)
{
CLS_GLOBALS._ERR_DB_MESSAGE = err.Message;
gf.notify_as_error(CLS_GLOBALS._ERR_DB_MESSAGE);
ret_val = false;
}

return ret_val;
}
public void close_connection()
{

CLS_GLOBALS._OBJ_COMM.Dispose();
CLS_GLOBALS._OBJ_READER.Dispose();
CLS_GLOBALS._OBJ_CONN.Dispose();
}
public bool _save(string param_table_name)
{
bool ret_val = false;

CLS_GLOBALS._ERR_DB_MESSAGE = "";

string field_collections = "";


string values_collections = "";

foreach (string _field in _FIELD.Keys)


{
field_collections += _field + ",";
values_collections += _FIELD[_field] + ",";
}

field_collections = field_collections.Substring(0, field_collections.Length -


1);
values_collections = values_collections.Substring(0,
values_collections.Length - 1);
values_collections = "(" + values_collections + ")";

string query = "INSERT INTO " + param_table_name + " (" + field_collections +


") VALUES " + values_collections;

CLS_GLOBALS._OBJ_COMM.Connection = CLS_GLOBALS._OBJ_CONN;
CLS_GLOBALS._OBJ_COMM.CommandText = query;

int affected_rows = 0;

try
{
affected_rows = CLS_GLOBALS._OBJ_COMM.ExecuteNonQuery();
}
catch (Exception err)
{
MessageBox.Show(query + err.Message);
CLS_GLOBALS._ERR_DB_MESSAGE = err.Message;
ret_val = false;
}

if (affected_rows > 0)
{
ret_val = true;
}
else
{
ret_val = false;
}

_FIELD.Clear();

return ret_val;
}

public bool save_photo(string param_table_name, string param_photo_field, string


param_rec_id, byte[] ImageData)
{
bool ret_val = false;

CLS_GLOBALS._OBJ_COMM.Parameters.Add("@Image", MySqlDbType.Blob);
CLS_GLOBALS._OBJ_COMM.Parameters["@Image"].Value = ImageData;

string query = "UPDATE " + param_table_name + " SET " + param_photo_field +


"=@Image WHERE id=" + param_rec_id;

CLS_GLOBALS._OBJ_COMM.CommandText = query;

int affected_rows = 0;

try
{
affected_rows = CLS_GLOBALS._OBJ_COMM.ExecuteNonQuery();
}
catch (Exception err)
{
MessageBox.Show(query + err.Message);
CLS_GLOBALS._ERR_DB_MESSAGE = err.Message;
ret_val = false;
}

if (affected_rows > 0)
{
ret_val = true;
}
else
{
ret_val = false;
}

CLS_GLOBALS._OBJ_COMM.Parameters.Clear();

return ret_val;
}
public bool _save_multiple_records(string param_table_name, string param_values)
{
bool ret_val = false;

CLS_GLOBALS._ERR_DB_MESSAGE = "";

string field_collections = "";


string values_collections = "";

foreach (string _field in _FIELD.Keys)


{
field_collections += _field + ",";
}

values_collections = param_values;
field_collections = field_collections.Substring(0, field_collections.Length -
1);
values_collections = values_collections.Substring(0,
values_collections.Length - 1);

string query = "INSERT INTO " + param_table_name + " (" + field_collections +


") VALUES " + values_collections;

CLS_GLOBALS._OBJ_COMM.Connection = CLS_GLOBALS._OBJ_CONN;
CLS_GLOBALS._OBJ_COMM.CommandText = query;

int affected_rows = 0;

try
{
affected_rows = CLS_GLOBALS._OBJ_COMM.ExecuteNonQuery();
}
catch (Exception err)
{
MessageBox.Show(query + err.Message);
CLS_GLOBALS._ERR_DB_MESSAGE = err.Message;
ret_val = false;
}

if (affected_rows > 0)
{
ret_val = true;
}
else
{
ret_val = false;
}

_FIELD.Clear();

return ret_val;
}

public bool _update(string param_table_name, string param_condition)


{
bool ret_val = false;

CLS_GLOBALS._ERR_DB_MESSAGE = "";
string field_collections = "";

foreach (string _field in _FIELD.Keys)


{
field_collections += _field + "=" + _FIELD[_field] + ",";

field_collections = field_collections.Substring(0, field_collections.Length -


1);

string query = "UPDATE " + param_table_name + " SET " + field_collections +


param_condition;

CLS_GLOBALS._OBJ_COMM.Connection = CLS_GLOBALS._OBJ_CONN;
CLS_GLOBALS._OBJ_COMM.CommandText = query;

int affected_rows = 0;

try
{
affected_rows = CLS_GLOBALS._OBJ_COMM.ExecuteNonQuery();
}
catch (Exception err)
{
MessageBox.Show(query + err.Message);
CLS_GLOBALS._ERR_DB_MESSAGE = err.Message;
ret_val = false;
}

if (affected_rows > 0)
{
ret_val = true;
}
else
{
ret_val = false;
}

_FIELD.Clear();

return ret_val;
}

public bool _delete(string param_table_name, string param_condition)


{
bool ret_val = false;

CLS_GLOBALS._ERR_DB_MESSAGE = "";
string query = "DELETE FROM " + param_table_name + " " + param_condition;

CLS_GLOBALS._OBJ_COMM.Connection = CLS_GLOBALS._OBJ_CONN;
CLS_GLOBALS._OBJ_COMM.CommandText = query;

int affected_rows = 0;

try
{
affected_rows = CLS_GLOBALS._OBJ_COMM.ExecuteNonQuery();
}
catch (Exception err)
{
MessageBox.Show(query + err.Message);
CLS_GLOBALS._ERR_DB_MESSAGE = err.Message;
ret_val = false;
}

if (affected_rows > 0)
{
ret_val = true;
}
else
{
ret_val = false;
}

return ret_val;
}

public void _join_table(string[] param_table_name, string param_join_type,


string[] param_index1, string[] param_index2)
{
_JOIN_TABLE = "";

string join_text = "";


int i = 0;

foreach (string table_name in param_table_name)


{
join_text += param_join_type + " JOIN " + table_name + " ON " +
param_index1[i] + "=" + param_index2[i] + " ";
i++;
}

_JOIN_TABLE = join_text;

public void _load_data(string param_table_name, string param_condition, ListView


lv)
{
lv.Clear();
CLS_GLOBALS._ERR_DB_MESSAGE = "";

int num_column = 0;
string field_collections = "";

lv.Columns.Add(" NO/#", 60, HorizontalAlignment.Left);

foreach (string _field in _FIELD.Keys)


{
//gf.notify_as_info(_field);
string field_value = _FIELD[_field]; //fieldName-WidthSize-Align
string[] broken_field = field_value.Split('-');

string column_caption = broken_field[0];


int column_size = int.Parse(broken_field[1]);
string column_align = broken_field[2];

switch (column_align)
{
case "L":
lv.Columns.Add(column_caption, column_size,
HorizontalAlignment.Left);
break;
case "R":
lv.Columns.Add(column_caption, column_size,
HorizontalAlignment.Right);
break;
case "C":
lv.Columns.Add(column_caption, column_size,
HorizontalAlignment.Center);
break;
}

field_collections += _field + ",";


num_column++;
}

field_collections = field_collections.Substring(0, field_collections.Length -


1);

string query = "SELECT " + field_collections + " FROM " + param_table_name +


" " + _JOIN_TABLE + param_condition;
// MessageBox.Show(query);
try
{
int i = 1;

CLS_GLOBALS._OBJ_COMM.CommandText = query;
CLS_GLOBALS._OBJ_COMM.Connection = CLS_GLOBALS._OBJ_CONN;

CLS_GLOBALS._OBJ_READER = CLS_GLOBALS._OBJ_COMM.ExecuteReader();

DataTable dt = new DataTable();

dt.Load(CLS_GLOBALS._OBJ_READER);
foreach (DataRow row in dt.Rows)
{
string[] row_data = new string[num_column];
byte j = 0;

for (j = 0; j <= num_column - 1; j++)


{
row_data[j] = row[j].ToString();
}

ListViewItem item1 = new ListViewItem(i + ".");

foreach (string x_data in row_data)


{

item1.SubItems.Add(x_data);
}

lv.Items.AddRange(new ListViewItem[] { item1 });

i++;
}

}
catch (Exception err)
{
MessageBox.Show(query + err.Message);
CLS_GLOBALS._ERR_DB_MESSAGE = err.Message;

_FIELD.Clear();
_JOIN_TABLE = "";

public void _get_data(string param_table_name, string param_condition)


{

CLS_GLOBALS._ERR_DB_MESSAGE = "";

int num_column = 0;
string field_collections = "";

foreach (string _field in _FIELD.Keys)


{
field_collections += _field + ",";
num_column++;
}

field_collections = field_collections.Substring(0, field_collections.Length -


1);
string query = "SELECT " + field_collections + " FROM " + param_table_name +
" " + _JOIN_TABLE + param_condition;

try
{
int i = 0;

CLS_GLOBALS._OBJ_COMM.CommandText = query;
CLS_GLOBALS._OBJ_COMM.Connection = CLS_GLOBALS._OBJ_CONN;

CLS_GLOBALS._OBJ_READER = CLS_GLOBALS._OBJ_COMM.ExecuteReader();

DataTable dt = new DataTable();

dt.Load(CLS_GLOBALS._OBJ_READER);

int rec_count = dt.Rows.Count;

_RECORDS = new string[rec_count];

foreach (DataRow row in dt.Rows)


{
byte j = 0;

for (j = 0; j <= num_column - 1; j++)


{

_RECORDS[i] += row[j].ToString() + "|";

i++;
}

}
catch (Exception err)
{
MessageBox.Show(query + err.Message);
CLS_GLOBALS._ERR_DB_MESSAGE = err.Message;

_FIELD.Clear();
_JOIN_TABLE = "";
}
public byte[] _get_image_data(string param_table_name, string param_fld_name,
string param_rec_id)
{
byte[] ret_val = null;

string query = "SELECT " + param_fld_name + " FROM " + param_table_name + "
WHERE id=" + param_rec_id;

CLS_GLOBALS._OBJ_COMM.CommandText = query;
CLS_GLOBALS._OBJ_COMM.Connection = CLS_GLOBALS._OBJ_CONN;

CLS_GLOBALS._OBJ_READER = CLS_GLOBALS._OBJ_COMM.ExecuteReader();
CLS_GLOBALS._OBJ_READER.Read();

if (CLS_GLOBALS._OBJ_READER[0].ToString() != string.Empty)
{
ret_val = (byte[])CLS_GLOBALS._OBJ_READER[0];
}

CLS_GLOBALS._OBJ_READER.Dispose();

return ret_val;
}

public string _DB_GENERATE_TR(string s_type)


{
string tr_no = "";
int rec_count = 0;
string rec_number = "";

string fld_name = "s_no";

fld_name = "MAX(RIGHT(" + fld_name + ",6))";

_FIELD[fld_name] = "";

_get_data("tbl_a_series", "WHERE s_type='" + s_type + "'");

int ub = _RECORDS.GetUpperBound(0);

if (_RECORDS[0] == null) { return tr_no; }

if (ub >= 0)
{
string[] row_info = _RECORDS[0].Split('|');

if (row_info[0] != string.Empty)
{
rec_count = int.Parse(row_info[0]);
}

rec_count++;

rec_number = rec_count.ToString();
rec_number = rec_number.PadLeft(6, '0');

tr_no = rec_number;

Array.Clear(_RECORDS, 0, _RECORDS.Length);
_FIELD.Clear();

return tr_no;

public bool save_to_journal(string[] param_details, string[] param_acct_no,


double[] col_dr, double[] col_cr, string param_date)
{
bool ret_val = false;

int i = 0;

string collections = "";

string ref_no = "J-" + _DB_GENERATE_TR("Journals");

foreach (string acct_no in param_acct_no)


{

if (!string.IsNullOrEmpty(acct_no))
{
string values = "";

string details = "'" + param_details[i] + "',";


string l_acct_no = acct_no + ",";
string l_col_dr = col_dr[i].ToString() + ",";
string l_col_cr = col_cr[i].ToString() + ",";
string l_ref_no = "'" + ref_no + "',";
string s_date = "'" + param_date + "'";

values = details + l_acct_no + l_col_dr + l_col_cr + l_ref_no +


s_date;

collections += "(" + values + "),";


}

i++;

_FIELD.Clear();

_FIELD["details"] = "";
_FIELD["fk_opex_acct_no"] = "";
_FIELD["col_dr"] = "";
_FIELD["col_cr"] = "";
_FIELD["ref_no"] = "";
_FIELD["j_date"] = "";

bool d_save = _save_multiple_records("tbl_journals", collections);

_FIELD.Clear();

_FIELD["s_no"] = "'" + ref_no + "'";


_FIELD["s_type"] = "'Journals'";

bool save_series = _save("tbl_a_series");

bool result = d_save && save_series;

if (result)
{
ret_val = true;

}
else
{
ret_val = false;

return ret_val;
}

}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing;

using System.Data;

namespace fnt_Blowfish_Alicia
{
class CLS_FUNCTIONS
{

private string str_msg = "\n\nPlease Click OK button or press the Enter key on
your keyboard to continue.";

public void show_report(dynamic rpt_viewer, ListView lv, string path, string[]


param_name, string[] param_values, bool ommit_last_row)
{
rpt_viewer._PARAM_RPT_PATH = path;
rpt_viewer._PARAM_RPT_PARAMS_NAMES = param_name;
rpt_viewer._PARAM_RPT_PARAMS_VALUES = param_values;

DataTable dt = new DataTable();

int i = 0;

int columns = lv.Columns.Count;

dt.Columns.Add("item_no");

for (i = 1; i < columns; i++)


{
dt.Columns.Add("item" + i);
}

string[] values = new string[columns];


int rows_count = lv.Items.Count - 1;
int row_inc = 1;

foreach (ListViewItem xitem in lv.Items)


{
values[0] = xitem.Text.Trim();

for (i = 1; i < columns; i++)


{
values[i] = xitem.SubItems[i].Text.Trim();
}

dt.Rows.Add(values);

row_inc++;

if (ommit_last_row)
{
if (row_inc > rows_count)
{
break;
}
}

rpt_viewer._PARAM_DT = dt;
rpt_viewer.ShowDialog();
}

public string Cdate(string param_s_date)


{
DateTime f_date = DateTime.Parse(param_s_date);
string r_date = f_date.ToString("yyyy-MM-dd");

return r_date;
}
public string Cdate_month_first(string param_s_date)
{
DateTime f_date = DateTime.Parse(param_s_date);
string r_date = f_date.ToString("MM/dd/yyyy");

return r_date;
}
public string Ctime(string param_s_time, byte time_format)
{
DateTime f_date = DateTime.Parse(param_s_time);
string r_date = "";

if (time_format == 24)
{
r_date = f_date.ToString("HH:mm:ss");
}
else
{
r_date = f_date.ToString("hh:mm:ss tt");
}

return r_date;

public double Cnum(string param_s_amount)


{
double r_value = 0;
bool result = (double.TryParse(param_s_amount, out r_value));

return r_value;

public string format_number(string param_s_number)


{
double s_num = this.Cnum(param_s_number);
var value = String.Format("{0:N2}", s_num); // 1,234,567.00

return value;
}

public void notify_as_info(string param_msg)


{
MessageBox.Show(param_msg + str_msg, "Information", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}

public void notify_as_error(string param_msg)


{
MessageBox.Show(param_msg + str_msg, "Error", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
public void notify_as_warning(string param_msg)
{
MessageBox.Show(param_msg + str_msg, "Warning", MessageBoxButtons.OK,
MessageBoxIcon.Warning);
}

public void clear_textboxes(dynamic[] param_txt)


{
foreach (dynamic l_txt in param_txt)
{
l_txt.Text = "";
}
}
public void clear_textboxes_with_values(dynamic[] param_txt, string value)
{
foreach (dynamic l_txt in param_txt)
{
l_txt.Text = value;
}
}
public void send_focus(KeyEventArgs e, dynamic param_obj)
{
if (e.KeyCode == Keys.Enter)
{
param_obj.Focus();
}

}
public void set_bgc_focus(TextBox param_txt, byte param_focus)
{
if (param_focus == 1) //means received the focus
{
param_txt.BackColor = Color.SkyBlue;
}
else
{
param_txt.BackColor = Color.White;
}
}

public void caps_lock(TextBox param_txt)


{
param_txt.Text = param_txt.Text.ToUpper();
}

public void load_data_to_controls(int param__l_bound, int param__u_bound,


dynamic[] param_controls, string[] param__edit_data)
{
int i = 0;

for (i = param__l_bound; i <= param__u_bound; i++)


{
param_controls[i].Text = param__edit_data[i];
}
}

public void load_data_to_controls_updated(dynamic[] param_controls, string[]


param__edit_data)
{
int i = 0;

foreach (string s_data in param__edit_data)


{
param_controls[i].Text = s_data;
i++;
}

public string _generate_tr_no()


{

DateTime f_date = DateTime.Now;


string year = f_date.Year.ToString();
string day = f_date.Day.ToString();
string hour = f_date.Hour.ToString();
string min = f_date.Minute.ToString();
string sec = f_date.Second.ToString();
string time = hour + min + sec;

year = year.Substring(2, 2);

string tr_no = year + day + time;

return tr_no;

private string clean_string(string param_text, string param_char)


{
string text = param_text;
text = text.Replace(param_char, string.Empty);

return text;
}

public void clean_txt_input(TextBox param_txt)


{

param_txt.Text = clean_string(param_txt.Text.Trim(), "~");

}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
using System.Data;

namespace fnt_Blowfish_Alicia
{
class CLS_GLOBALS
{

public static string _SERVER_NAME = "localhost";


public static string _SERVER_UID = "root";
public static string _SERVER_PASSWORD = "admin";
public static string _SERVER_DB = "file_management_alicia";
public static string _SERVER_DATE_TIME = "";

public static string _CONNECTION_STRING = "";

public static MySqlConnection _OBJ_CONN = new MySqlConnection();


public static MySqlCommand _OBJ_COMM = new MySqlCommand();
public static MySqlDataReader _OBJ_READER;
public static MySqlTransaction _OBJ_TRANSACT;

public static string _ERR_DB_MESSAGE = "";

public static string _USER_ID = "";


public static string _USER_NAME = "";
public static string _USER_TYPE = "";
public static string _USER_HUB = "";

public static string _START_DATE = "";


public static string _END_DATE = "";

public static string _VERSION = "2.2";

}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing;

namespace fnt_Blowfish_Alicia
{
class CLS_LISTVIEW
{
CLS_FUNCTIONS gf = new CLS_FUNCTIONS();

public void add_header_style(DrawListViewColumnHeaderEventArgs e)


{

StringFormat strFormat = new StringFormat();

switch (e.Header.TextAlign)
{
case HorizontalAlignment.Left:
strFormat.Alignment = StringAlignment.Near;
break;
case HorizontalAlignment.Right:
strFormat.Alignment = StringAlignment.Far;
break;

case HorizontalAlignment.Center:
strFormat.Alignment = StringAlignment.Center;
break;
}

e.DrawBackground();
e.Graphics.FillRectangle(Brushes.AliceBlue, e.Bounds);
Font headerFont = new Font("Segoe UI", 10, FontStyle.Regular);

e.Graphics.DrawString(e.Header.Text, headerFont, Brushes.Black, e.Bounds,


strFormat);
}

public void add_item_style(DrawListViewItemEventArgs e)


{
e.DrawDefault = true;
}
/*
public void make_lv_header(string[] h_name, byte[] t_align, int[] h_width,
ListView l_view)
{
l_view.Columns.Clear();

byte i = 0;
foreach (string joe in h_name)
{

switch (t_align[i])
{
case 1:
l_view.Columns.Add(joe, h_width[i], HorizontalAlignment.Left);
break;
case 2:
l_view.Columns.Add(joe, h_width[i], HorizontalAlignment.Right);
break;
case 3:
l_view.Columns.Add(joe, h_width[i], HorizontalAlignment.Center);
break;
}

i++;
}
}
* */

public void make_lv_header(string[,] h_details, ListView l_view)


{
l_view.Columns.Clear();

int col_size = h_details.GetLength(0);

for (int i = 0; i < col_size; i++)


{
HorizontalAlignment alignment = HorizontalAlignment.Left;

string h_name = h_details[i, 0];


int h_width = int.Parse(h_details[i, 1]);
string h_align = h_details[i, 2];

switch (h_align)
{
case "L":
alignment = HorizontalAlignment.Left;
break;
case "R":
alignment = HorizontalAlignment.Right;
break;
case "C":
alignment = HorizontalAlignment.Center;
break;
}

l_view.Columns.Add(h_name, h_width, alignment);


}

public void clear_lv_data(ListView lv)


{
lv.Columns.Clear();
lv.Items.Clear();
}
public void arrange_lv_item_no(ListView lv)
{
int i = 1;

foreach (ListViewItem xitem in lv.Items)


{
//arrange numbering
xitem.Text = i.ToString() + ". ";
i++;

}
}

public void get_lv_sum_per_item_with_target_col(ListView lv, int[] cols, int


target_col)
{
foreach (ListViewItem xitem in lv.Items)
{
double sum = 0;

foreach (int col in cols)


{
sum += gf.Cnum(xitem.SubItems[col].Text.Trim());
}

xitem.SubItems[target_col].Text = gf.format_number(sum.ToString());
}
}

public void get_lv_diff_per_item_with_target_col(ListView lv, int[] cols_1, int[]


cols_2, int target_col)
{
foreach (ListViewItem xitem in lv.Items)
{
double sum1 = 0;
double sum2 = 0;
double diff = 0;

foreach (int col in cols_1)


{
sum1 += gf.Cnum(xitem.SubItems[col].Text.Trim());
}
foreach (int col in cols_2)
{
sum2 += gf.Cnum(xitem.SubItems[col].Text.Trim());
}
diff = sum1 - sum2;

xitem.SubItems[target_col].Text = gf.format_number(diff.ToString());
}
}

public int get_lv_total_row_count(ListView lv)


{
int r_value = 0;
if (lv.Items.Count > 0)
{
r_value = lv.Items.Count;
}

return r_value;
}

public int get_lv_total_row_count_w_criteria(ListView lv, int col_index, string


criteria)
{
int r_value = 0;

foreach (ListViewItem xitem in lv.Items)


{
if (xitem.SubItems[col_index].Text.Trim() == criteria)
{
r_value++;
}
}

return r_value;
}

public double get_lv_total_col_sum(ListView lv, int col_index)


{
double r_value = 0;

foreach (ListViewItem xitem in lv.Items)


{
r_value += gf.Cnum(xitem.SubItems[col_index].Text.Trim());
}

return r_value;
}

public double get_lv_total_col_sum_w_criteria(ListView lv, int col_index, string


criteria, int col_sum_index)
{
double r_value = 0;

foreach (ListViewItem xitem in lv.Items)


{
if (xitem.SubItems[col_index].Text.Trim() == criteria)
{
r_value += gf.Cnum(xitem.SubItems[col_sum_index].Text.Trim());
}
}

return r_value;
}

public int get_lv_total_checked_count(ListView lv)


{
int r_value = 0;

r_value = lv.CheckedItems.Count;

return r_value;
}
public int get_lv_total_checked_count_w_criteria(ListView lv, int col_index,
string criteria)
{
int r_value = 0;

foreach (ListViewItem xitem in lv.CheckedItems)


{
if (xitem.SubItems[col_index].Text.Trim() == criteria)
{
r_value++;
}
}

return r_value;
}
public double get_lv_total_checked_col_sum(ListView lv, int col_index)
{
double r_value = 0;

foreach (ListViewItem xitem in lv.CheckedItems)


{
r_value += gf.Cnum(xitem.SubItems[col_index].Text.Trim());
}

return r_value;
}

public double get_lv_total_checked_col_sum_w_criteria(ListView lv, int col_index,


string criteria, int col_sum_index)
{
double r_value = 0;

foreach (ListViewItem xitem in lv.CheckedItems)


{
if (xitem.SubItems[col_index].Text.Trim() == criteria)
{
r_value += gf.Cnum(xitem.SubItems[col_sum_index].Text.Trim());
}
}

return r_value;
}

public void format_lv_content_to_number(ListView lv, int[] cols)


{
foreach (ListViewItem xitem in lv.Items)
{
foreach (int col in cols)
{
xitem.SubItems[col].Text =
gf.format_number(xitem.SubItems[col].Text.Trim()).ToString();
}

}
}

public void format_lv_content_to_time(ListView lv, int col_index, byte


time_format)
{
foreach (ListViewItem xitem in lv.Items)
{

xitem.SubItems[col_index].Text =
gf.Ctime(xitem.SubItems[col_index].Text.Trim(), time_format);

}
}
public void format_lv_content_to_date(ListView lv, int col_index)
{
foreach (ListViewItem xitem in lv.Items)
{

xitem.SubItems[col_index].Text =
gf.Cdate_month_first(xitem.SubItems[col_index].Text.Trim());

}
}

public string get_column_item(ListView lv, int item_index, int col_index)


{

string r_value = "";

r_value = lv.Items[item_index].SubItems[col_index].Text.Trim();

return r_value;
}

public void remove_lv_item(ListView lv)


{
lv.Items[lv.FocusedItem.Index].Remove();
arrange_lv_item_no(lv);
}

public void populate_lv(string[] lv_values, ListView lv)


{
ListViewItem xitem = new ListViewItem("S");

foreach (string values in lv_values)


{
xitem.SubItems.Add(values);
}

lv.Items.AddRange(new ListViewItem[] { xitem });

public void change_item_color(ListView param_lv, int param_item_index, Color


param_color)
{
param_lv.Items[param_item_index].ForeColor = param_color;
}

public void change_item_color_with_criteria(ListView lv, int col_index, string


criteria, Color clr)
{
int i = 1;

foreach (ListViewItem xitem in lv.Items)


{
if (xitem.SubItems[col_index].Text.Trim() == criteria)
{
xitem.ForeColor = clr;
}

}
}
public void check_all(ListView lv)
{

foreach (ListViewItem xitem in lv.Items)


{
xitem.Checked = true;
}
}
public void uncheck_all(ListView lv)
{

foreach (ListViewItem xitem in lv.Items)


{
xitem.Checked = false;
}
}
public void insert_lv_row(ListView lv, int row_index)
{
ListViewItem item1 = new ListViewItem("");

for (int j = 1; j < lv.Columns.Count; j++)


{
item1.SubItems.Add("");
}

lv.Items.Insert(row_index, item1);
}

public void add_row_totals(ListView lv, int[] cols, Color color)


{
if (lv.Items.Count > 0)
{
int row_index = lv.Items.Count;

insert_lv_row(lv, row_index);

foreach (int xcol in cols)


{
lv.Items[row_index].SubItems[xcol].Text =
gf.format_number(get_lv_total_col_sum(lv, xcol).ToString());
}

lv.Items[row_index].ForeColor = color;
}

}
public bool is_exist(ListView lv, int param_col, string param_data)
{
bool r_value = false;

foreach (ListViewItem xitem in lv.Items)


{
if (xitem.SubItems[param_col].Text.Trim() == param_data)
{
r_value = true;
break;
}
}

return r_value;
}

public void format_lv_arrangements(ListView lv, int[] skip_index, int


col_criteria, int[] cols_sum, Color color)
{
if (lv.Items.Count > 0)
{

string row_data = lv.Items[0].SubItems[col_criteria].Text.Trim();

int i = 0;

for (i = 1; i <= lv.Items.Count - 1; i++)


{
string next_row_data =
lv.Items[i].SubItems[col_criteria].Text.Trim();

if (row_data != next_row_data)
{
row_data = next_row_data;

this.insert_lv_row(lv, i);
this.change_item_color(lv, i, color);
}

this.insert_lv_row(lv, i);
this.change_item_color(lv, i, color);

string prev_ = "";


double[] total = new double[cols_sum.Length];

int item_no = 1;

int indx = 0;

foreach (ListViewItem xitem in lv.Items)


{

if (prev_ == string.Empty)
{

prev_ = xitem.SubItems[col_criteria].Text.Trim();

indx = 0;
foreach (int cols in cols_sum)
{
total[indx] +=
gf.Cnum(xitem.SubItems[cols_sum[indx]].Text.Trim());
indx++;
}

xitem.Text = item_no.ToString() + ".";


item_no++;
}
else
{

if (xitem.Text.Trim() != string.Empty)
{

indx = 0;
foreach (int cols in cols_sum)
{
total[indx] +=
gf.Cnum(xitem.SubItems[cols_sum[indx]].Text.Trim());
indx++;
}

if (xitem.SubItems[col_criteria].Text.Trim() == prev_)
{
for (int j = 0; j < lv.Columns.Count; j++)
{
bool bln_skip = false;

for (int k = 0; k < skip_index.Length; k++)


{
if (j == skip_index[k])
{
bln_skip = true;
break;
}

if (bln_skip)
{
xitem.SubItems[j].Text =
xitem.SubItems[j].Text.Trim();
}
else
{
xitem.SubItems[j].Text = "";
}

}
else
{
prev_ = xitem.SubItems[col_criteria].Text.Trim();

xitem.Text = item_no.ToString() + ".";


item_no++;
}
}
else
{
indx = 0;
foreach (int cols in cols_sum)
{
xitem.SubItems[cols_sum[indx]].Text = "" +
gf.format_number(total[indx].ToString()) + "";
total[indx] = 0;
indx++;
}

}//end of main if else

}//end of for loop

}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace fnt_Blowfish_Alicia
{
public partial class frm_changepassword : Form
{
public frm_changepassword()
{
InitializeComponent();
}

private void btn_exit_Click(object sender, EventArgs e)


{
Close();
}

private void frm_changepassword_Load(object sender, EventArgs e)


{
CancelButton = btn_exit;
}

private void btn_login_Click(object sender, EventArgs e)


{
string dbpassword = Properties.Settings.Default.userpassword;
string current = txt_current.Text.Trim();
string newpass = txt_new.Text.Trim();
string confirm = txt_confirm.Text.Trim();

if (dbpassword != current)
{
MessageBox.Show("Enter your correct current password.");
txt_current.Clear();
txt_current.Focus();
}
else if (newpass == string.Empty)
{
MessageBox.Show("Enter your new password.");
txt_new.Clear();
txt_new.Focus();
}
else if (newpass != confirm)
{
MessageBox.Show("Enter your confirm your password.");
txt_confirm.Clear();
txt_confirm.Focus();
}
else
{
Properties.Settings.Default.userpassword = newpass;
Properties.Settings.Default.Save();
}
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace fnt_Blowfish_Alicia
{
public partial class frm_login : Form
{
public frm_login()
{
InitializeComponent();
}

private void btn_exit_Click(object sender, EventArgs e)


{
Application.ExitThread();
}

private void frm_login_Load(object sender, EventArgs e)


{
CancelButton = btn_exit;
}

private void btn_login_Click(object sender, EventArgs e)


{
string username = txt_username.Text.Trim();
string password = txt_password.Text.Trim();

string dbusername = Properties.Settings.Default.username;


string dbpassword = Properties.Settings.Default.userpassword;

if (username == dbusername && password == dbpassword)


{
this.Hide();
frm_main frm = new frm_main();
frm.ShowDialog();
}
else
{
MessageBox.Show("Invalid username or password. Please try again.");
txt_username.Clear();
txt_password.Clear();
txt_username.Focus();
}
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using System.IO;

namespace fnt_Blowfish_Alicia
{

public partial class frm_main : Form


{
private CLS_DATABASE db = new CLS_DATABASE();
private CLS_FUNCTIONS gf = new CLS_FUNCTIONS();
private CLS_LISTVIEW lv = new CLS_LISTVIEW();

private const string myKey = "1234";


private long m_originalLength;
public frm_main()
{
InitializeComponent();
lv_data.DrawColumnHeader += new DrawListViewColumnHeaderEventHandler((sender,
e) => lv.add_header_style(e));
lv_data.DrawItem += new DrawListViewItemEventHandler((sender, e) =>
lv.add_item_style(e));
}
public void load_files()
{
db._FIELD["id"] = " -0-L";
db._FIELD["file_name"] = "File Name-450-L";
db._FIELD["s_date"] = "Date Uploaded-200-L";

db._load_data("tbl_files","", lv_data);
}
private void login()
{
Cursor = Cursors.WaitCursor;
this.Enabled = false;

CLS_GLOBALS._SERVER_NAME = "localhost";

if (!db.open_connection())
{
gf.notify_as_error("Cannot connect to server. System will terminate.
Please contact the programmer.");
Close();
return;

Cursor = Cursors.Arrow;
this.Enabled = true;
}

private void Form1_Load(object sender, EventArgs e)


{
login();
load_files();

//m_originalLength = 0;
//encryptFile();
// decryptfile();

private void btn_encrypt_Click(object sender, EventArgs e)


{
// encryptFile();
}

private void btn_decrypt_Click(object sender, EventArgs e)


{
// decryptfile();
}

private void btn_upload_Click(object sender, EventArgs e)


{
frm_upload frm = new frm_upload();
frm.ShowDialog();
}

private void btn_download_Click(object sender, EventArgs e)


{

if (lv_data.SelectedItems.Count > 0)
{
string id =
lv_data.Items[lv_data.FocusedItem.Index].SubItems[1].Text.Trim();

CLS_GLOBALS._OBJ_COMM.CommandText = "SELECT * FROM tbl_files WHERE id=" +


id;

CLS_GLOBALS._OBJ_READER = CLS_GLOBALS._OBJ_COMM.ExecuteReader();

CLS_GLOBALS._OBJ_READER.Read();

string file_name = CLS_GLOBALS._OBJ_READER[1].ToString();

byte[] buffer = null;


buffer = (byte[])CLS_GLOBALS._OBJ_READER.GetValue(2);

m_originalLength = long.Parse(CLS_GLOBALS._OBJ_READER[3].ToString());

CLS_GLOBALS._OBJ_COMM.Dispose();
CLS_GLOBALS._OBJ_READER.Dispose();

Blowfish alg = new Blowfish(Encoding.Unicode.GetBytes(myKey));

alg.Decipher(buffer, buffer.Length);
FileStream stream = new FileStream(Application.StartupPath +
"\\data\\decrypted_" + file_name, FileMode.Create);
stream.Write(buffer, 0, (int)m_originalLength); //Dangerous casting -
Write in chunks.
stream.Close();

System.Diagnostics.Process.Start("explorer.exe", Application.StartupPath
+ "\\data");

}
else
{
gf.notify_as_info("Please select an item from the list.");
}

private void btn_exit_Click(object sender, EventArgs e)


{
CLS_GLOBALS._OBJ_READER.Dispose();
CLS_GLOBALS._OBJ_COMM.Dispose();
CLS_GLOBALS._OBJ_CONN.Dispose();

Close();
}

private void toolStripButton3_Click(object sender, EventArgs e)


{
load_files();
}

private void btn_scan_Click(object sender, EventArgs e)


{
frm_scan frm = new frm_scan();
frm.ShowDialog();
}

private async void btn_delete_Click(object sender, EventArgs e)


{
if (lv_data.SelectedItems.Count > 0)
{
string id =
lv_data.Items[lv_data.FocusedItem.Index].SubItems[1].Text.Trim();

if (MessageBox.Show("Are you sure that you want to delete this entry?",


"Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{

Cursor = Cursors.WaitCursor;
this.Enabled = false;

if (db._delete("tbl_files", "WHERE id=" + id))


{
load_files();
}
else
{
gf.notify_as_error("There was an error in deleting the record.");
}

Cursor = Cursors.Arrow;
this.Enabled = true;
}

}
else
{
gf.notify_as_info("Please select an item to be deleted from the list.");
}
}

private void frm_main_FormClosed(object sender, FormClosedEventArgs e)


{
Application.ExitThread();
}

private void btn_changepassword_Click(object sender, EventArgs e)


{
frm_changepassword frm = new frm_changepassword();
frm.ShowDialog();
}

/*
private void decryptfile()
{

FileStream originalStream = File.OpenRead(@"encrypted.png");

Blowfish alg = new Blowfish(Encoding.Unicode.GetBytes(myKey));

Byte[] buffer = new byte[originalStream.Length];


originalStream.Read(buffer, 0, buffer.Length);
originalStream.Close();

alg.Decipher(buffer, buffer.Length);
FileStream stream = new FileStream(@"decrypted.png", FileMode.Create);
stream.Write(buffer, 0, (int)m_originalLength); //Dangerous casting - Write in
chunks.
stream.Close();

private void encryptFile()


{

FileStream originalStream = File.OpenRead(@"c:\noc.png"); //Change to your


file name

Blowfish alg = new Blowfish(Encoding.Unicode.GetBytes(myKey));


m_originalLength = originalStream.Length;
//Byte[] buffer = new byte[originalStream.Length + (originalStream.Length %
8)];
Byte[] buffer = new byte[originalStream.Length + (8 - (originalStream.Length %
8))];
originalStream.Read(buffer, 0, buffer.Length);
originalStream.Close();
alg.Encipher(buffer, buffer.Length);
FileStream stream = new FileStream(@"encrypted.png", FileMode.Create);
stream.Write(buffer, 0, buffer.Length);
stream.Close();

MessageBox.Show(m_originalLength.ToString());

}
* */

}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using MySql.Data.MySqlClient;

using WIA;
using System.Runtime.InteropServices;
using System.IO;

namespace fnt_Blowfish_Alicia
{

public partial class frm_scan : Form


{

private const string myKey = "1234";


private long m_originalLength;
string path = "";

private CLS_DATABASE db = new CLS_DATABASE();


private CLS_FUNCTIONS gf = new CLS_FUNCTIONS();

DeviceManager dm = new DeviceManager();


public frm_scan()
{
InitializeComponent();
}

private void frm_scan_Load(object sender, EventArgs e)


{
for (int i = 1; i <= dm.DeviceInfos.Count; i++)
{
if (dm.DeviceInfos[i].Type == WiaDeviceType.ScannerDeviceType)
{
comboBox1 .Items.Add (dm.DeviceInfos [i].Properties
["Name"].get_Value ());

}
}

if (comboBox1.Items.Count > 0)
{
comboBox1.SelectedIndex = 0;
}
}

private async void button1_Click(object sender, EventArgs e)


{

if (comboBox1.Items.Count > 0)
{
Cursor = Cursors.WaitCursor;
this.Enabled = false;

var available_scanner = dm.DeviceInfos[1];


var device = available_scanner.Connect();
var scanner_item = device.Items[1];

var imgfile = (ImageFile)scanner_item.Transfer(FormatID.wiaFormatJPEG);

path = @Application.StartupPath + "\\scan\\scanImg.jpg";

if (File.Exists(path))
{
File.Delete(path);
}
imgfile.SaveFile(path);

pictureBox1.ImageLocation = path;

Cursor = Cursors.Arrow;
this.Enabled = true;
}
else
{
gf.notify_as_info("Please select scanner.");
}

private void btn_upload_Click(object sender, EventArgs e)


{
if (pictureBox1.Image != null)
{
string file_name = path;

Cursor = Cursors.WaitCursor;
this.Enabled = false;

FileStream originalStream = File.OpenRead(@file_name); //Change to your


file name

Blowfish alg = new Blowfish(Encoding.Unicode.GetBytes(myKey));


m_originalLength = originalStream.Length;
//Byte[] buffer = new byte[originalStream.Length + (originalStream.Length
% 8)];
Byte[] buffer = new byte[originalStream.Length + (8 -
(originalStream.Length % 8))];
originalStream.Read(buffer, 0, buffer.Length);
originalStream.Close();
alg.Encipher(buffer, buffer.Length);

string param_f_name = Path.GetFileName(file_name);

if (save_data_byte(param_f_name, buffer, m_originalLength))


{
FileStream stream = new FileStream(@Application.StartupPath +
"\\data\\encrypted_" + param_f_name, FileMode.Create);
stream.Write(buffer, 0, buffer.Length);
stream.Close();

gf.notify_as_info("File has been successfully uploaded and


encrypted.");

System.Diagnostics.Process.Start("explorer.exe",
Application.StartupPath + "\\data");

frm_main frm = (frm_main)Application.OpenForms["frm_main"];


frm.load_files();

Close();
}
else
{
gf.notify_as_warning("Please try again.");
}

//FileStream stream = new FileStream(@"encrypted.png", FileMode.Create);


//stream.Write(buffer, 0, buffer.Length);
// stream.Close();

Cursor = Cursors.Arrow;
this.Enabled = true;
}
else{
gf.notify_as_info ("No scanned image to be uploaded/encrypted.");
}
}

private bool save_data_byte(string file_name, byte[] byte_data, long file_size)


{
bool ret_val = false;

CLS_GLOBALS._OBJ_COMM.Parameters.Add("@byte_data", MySqlDbType.Blob);
CLS_GLOBALS._OBJ_COMM.Parameters["@byte_data"].Value = byte_data;
string query = "INSERT INTO tbl_files
(file_name,file_content,file_size,s_date) VALUES ('" + file_name + "',@byte_data," +
file_size + ",NOW())";

CLS_GLOBALS._OBJ_COMM.CommandText = query;

int affected_rows = 0;

try
{
affected_rows = CLS_GLOBALS._OBJ_COMM.ExecuteNonQuery();
}
catch (Exception err)
{
MessageBox.Show(query + err.Message);
CLS_GLOBALS._ERR_DB_MESSAGE = err.Message;
ret_val = false;
}

if (affected_rows > 0)
{
ret_val = true;
}
else
{
ret_val = false;
}

CLS_GLOBALS._OBJ_COMM.Parameters.Clear();

return ret_val;
}

}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using System.IO;

using MySql.Data.MySqlClient;

namespace fnt_Blowfish_Alicia
{
public partial class frm_upload : Form
{
private CLS_DATABASE db = new CLS_DATABASE();
private CLS_FUNCTIONS gf = new CLS_FUNCTIONS();

private const string myKey = "1234";


private long m_originalLength;
public frm_upload()
{
InitializeComponent();
}

private void btn_open_file_Click(object sender, EventArgs e)


{
OpenFileDialog dlg = new OpenFileDialog();
//dlg.Filter = "Text files (*.txt)|*.txt";
dlg.ShowDialog();

txt_file_name.Clear();

if (dlg.FileName != string.Empty)
{
txt_file_name.Text = dlg.FileName;

// string text = File.ReadAllText(@dlg.FileName, Encoding.UTF8);

string text = txt_file_name.Text;

dlg.Dispose();
}

private async void btn_upload_Click(object sender, EventArgs e)


{
string file_name = txt_file_name.Text.Trim();

if (file_name != string.Empty)
{

Cursor = Cursors.WaitCursor;
this.Enabled = false;

FileStream originalStream = File.OpenRead(@file_name); //Change to your


file name

Blowfish alg = new Blowfish(Encoding.Unicode.GetBytes(myKey));


m_originalLength = originalStream.Length;
Byte[] buffer = new byte[originalStream.Length + (8 -
(originalStream.Length % 8))];
originalStream.Read(buffer, 0, buffer.Length);
originalStream.Close();
alg.Encipher(buffer, buffer.Length);

string param_f_name= Path.GetFileName (file_name );

if (save_data_byte(param_f_name, buffer, m_originalLength))


{
FileStream stream = new FileStream(@Application.StartupPath +
"\\data\\encrypted_" + param_f_name, FileMode.Create);
stream.Write(buffer, 0, buffer.Length);
stream.Close();
gf.notify_as_info("File has been successfully uploaded and
encrypted.");
System.Diagnostics.Process.Start("explorer.exe",
Application.StartupPath + "\\data");
frm_main frm = (frm_main)Application.OpenForms["frm_main"];
frm.load_files();

Close();
}
else
{
gf.notify_as_warning("Please try again.");
}

//FileStream stream = new FileStream(@"encrypted.png", FileMode.Create);


//stream.Write(buffer, 0, buffer.Length);
// stream.Close();

Cursor = Cursors.Arrow;
this.Enabled = true;

}
else
{
MessageBox.Show("Please select file to be uploaded.");
}

private bool save_data_byte(string file_name, byte[] byte_data,long file_size)


{
bool ret_val = false;

CLS_GLOBALS._OBJ_COMM.Parameters.Add("@byte_data", MySqlDbType.Blob);
CLS_GLOBALS._OBJ_COMM.Parameters["@byte_data"].Value = byte_data;

string query = "INSERT INTO tbl_files


(file_name,file_content,file_size,s_date) VALUES ('" + file_name + "',@byte_data,"
+file_size + ",NOW())";

CLS_GLOBALS._OBJ_COMM.CommandText = query;

int affected_rows = 0;

try
{
affected_rows = CLS_GLOBALS._OBJ_COMM.ExecuteNonQuery();
}
catch (Exception err)
{
MessageBox.Show(query + err.Message);
CLS_GLOBALS._ERR_DB_MESSAGE = err.Message;
ret_val = false;
}

if (affected_rows > 0)
{
ret_val = true;
}
else
{
ret_val = false;
}

CLS_GLOBALS._OBJ_COMM.Parameters.Clear();

return ret_val;
}

}
}

You might also like