CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Page 2 of 5 FirstFirst 12345 LastLast
Results 16 to 30 of 66
  1. #16
    Join Date
    Jun 2010
    Location
    Germany
    Posts
    2,675

    Re: how can i encrypt a file?

    Quote Originally Posted by katy_price View Post
    sorry what do you mean by this? do i have to change something in the code.
    I don't think you should need to change something in the code. (But maybe something actually got changed on the program's way to you and you may need to revert that.) As I already said above, that shouldn't happen when the program is invoked without command line parameters. Or are you actually invoking it with some parameters when that happens? If so, please tell me what they are, as exact as possible, so I can debug that problem myself. I feel obliged to correct that bug if it is one, since it's my program.

    i dont actually understand this program. how do i decrypt the file. plus i get the exception so really i can't use it.
    I already posted a command line to encrypt a file in post #12. Maybe you got confused by "test.txt.encrypted"? That's just a file name with an unusually long file name extension. Assuming .cry as the extension for the encrypted file (which is non-standard as well but looks more familiar), the command line to encrypt the file test.txt would look like this:

    Code:
    cryptex1 encrypt My123Password test.txt test.cry
    To decryt the file again, you would use something like:

    Code:
    cryptex1 decrypt My123Password test.cry test_decrypted.txt
    Clear now?

    i think i would like to use this one though because i understand what its doing, i just don't know how to implement it into my program and make it work the way i need it to.
    I really don't like that idea but if you insist on it... I assume your app is no real-life app anyway.

    i want to separate the encrypt and decrypt sections, i want to put the encrypt code in a separate program and use the decrypt code in my actuall login program.
    The algorithm used in that program uses some sort of "built-in key" that is the same for both encryption and decryption. But beyond that, what makes up a symmetric encryption, this algorithm also uses the identical program code for both encryption and decryption. Therefore it can be called something like a "super-symmetrical encryption" but that term doesn't really exist.

    i dont know how to change the code so it encrytps and decrypts the whole text in a file.
    This algorithm is used much the same like the algorithm we already discussed in our earlier thread. You just use a binary NOT instead of addition and subtraction for both encryption and decryption.

    To apply the algorithm to an entire file it's best to see the data as a sequence of bytes instead of a string, i.e. a binary file rather than a text file. I usually don't recommend that, but if the files are not too large you can make your life easier by reading the entire file into a single array<Byte>, apply the binary NOT to each and every single byte and finally write it back. That's all.
    I was thrown out of college for cheating on the metaphysics exam; I looked into the soul of the boy sitting next to me.

    This is a snakeskin jacket! And for me it's a symbol of my individuality, and my belief... in personal freedom.

  2. #17
    Join Date
    Nov 2010
    Posts
    139

    Re: how can i encrypt a file?

    Quote Originally Posted by Eri523 View Post
    Oops! You were both quicker than me...

    I was so confident that there was no bug in the simple part of the code that checks this that I didn't test this case in the first place.
    i ran your program but the command window closes straightaway. i have tried using system("PAUSE"); so i can see what message is showing but that doesnt work, however i can just make out what it says just before it closes.
    Code:
     Console::WriteLine("Usage: CryptEx1 <encrypt|decrypt> <password> <input file> <output file>");
    .

    i still actually dont understand how this would work with my program. i understand the encryption part, because then i will have an encrypted file for my program to decrypt. but how will the decryption part of this code work in my program? my program is meant to be used to open and decrypt the file when the user logs in with their enrolled username and password. i cant see how this decryption in this program will work in my program as my program is not run on console
    Last edited by katy_price; December 21st, 2010 at 11:07 PM.

  3. #18
    Join Date
    Nov 2010
    Posts
    139

    Re: how can i encrypt a file?

    i debugged your program and it doesnt go past this section of code.
    Code:
      if (args->Length != 4 || String::Compare(args[0], "encrypt", true) && String::Compare(args[0], "decrypt", true)) {
        Console::WriteLine("Usage: CryptEx1 <encrypt|decrypt> <password> <input file> <output file>");
      return 1;
      }
    i can't type anything in the command window.

    i dont know if i am explaining what i want correctly. basically all i want to show is that my program can, when a user logs in, open and decrypt a file that was encrypted. lets say i encrypt a file using this code. Then if a user wants to view the content of that file then they would need to use my program to do it, they will need to enter their username and password. the file will then open and appear to them in the decyprted mode (readable) as my program would have decrypted it when they entered their correct credentials (which was stored in the database when they enrolled). i dont want console use my program uses winforms. i can understand erypting it using the command line but the user will be the one to decrypt it using my login program. the only reason i am using encryting it is to make sure the file content is not readable in other apps. is what i want to do possible?? if you have any other ideas on how i can go about doing this please say. thanks.

    p.s the only reason why i'm suggesting i need two programs is because i dont know if what i want to do is possible if i have just my Login program doing both the encryption and decryption. because the file would only they be encrypted during the course of run time just like the decrypted file, if i'm wrong please say.
    Last edited by katy_price; December 21st, 2010 at 11:05 PM.

  4. #19
    Join Date
    Apr 2008
    Posts
    118

    Re: how can i encrypt a file?

    You are using the program incorrectly.

    This is a "command line" or "console" program. You run it by opening a "command line" or "console". If you're using some kind of Windows, I expect the command line is tucked away under accessories or something similar. If you can't find it, you can run "command" directly in whatever Windows uses these days to let you run commands. Probably something like that windows key and "r", unless the ability to run commands of your choice has been revoked in the latest version. I wouldn't be surprised.

    Once you have a command window (it will probably be a window with a black background and white text, with something like "C:\" and a little flashing cursor), you can start typing.

    Then, if you change directory using the "cd" command to wherever you put the program you made, you can run it by typing

    "CryptEx1 <encrypt|decrypt> <password> <input file> <output file>"

    where you have a choice between encrypt and decrypt, and have to fill in the rest. For example, you might type exactly the following:

    CryptEx1 encrypt yourPassword fileToEncrypt.txt nameOfOutputFile.txt

    That would encrypt, with the password "yourPassword" the file called "fileToEncrypt.txt" and create a file called "nameOfOutputFile.txt" which would be the encrypted file.


    However, you don't want a console driven program. That's fine, but I think you need to think more about what you DO want.

    As I see it, your decrypt programme needs to do the following:

    Confirm password is correct.
    Fetch name of file from user.
    Open file.
    Read in and apply decryption.
    Display file.

    If the whole purpose is just to show that you can do this, then you don't need to use "real" encryption and you can just hardcode the acceptable password and login into your code. It's not very safe, but if this is just an exercise in reading and manipulating data, then actually using a hardcore encryption library and protecting the password is not important. You can just do something very simple to the file. If it's a text file, you could just remove every space and put some other character in there that's not used elsewhere in the text file, and call that your encryption. This would remove completely the need to use the encryption libraries you're struggling with.

    So now, your encryption code reads something like this:

    Get name of file from user.
    Open file, read in a character.
    If character is " ", change to "&#172;"
    Write out character to new file.
    When read all characters, close files.

    Your decryption code is something like this:

    Get name of file from user.
    Ask user for password.
    If password is not correct, end here.
    Open file, read in a character.
    If character is "&#172;", change to " "
    Write out character to new file.
    When read all characters, close files.
    Open new file and display text to user.
    Last edited by Moschops; December 22nd, 2010 at 09:28 AM.

  5. #20
    Join Date
    Jun 2010
    Location
    Germany
    Posts
    2,675

    Re: how can i encrypt a file?

    Thanks for jumping in, Moschops. I am already close to desperation while trying to find even more ways to explain the simple task of invoking a command line tool...

    Your assumptions about the Windows command shell are mainly correct except that the command shell nowadays is called cmd instead of command. While command actually is still available, it has severe drawbacks, just to mention the lack of long filename support now.

    Katy, system("pause"); actually is of limited use in this program because its main() function has a total of four exit points (all these return statements) instead of one. Actually it uses the console only to output error messages, so if the program finishes and nocthing went wrong, you'll see no console output coming from it at all.

    Actually, you can use that command line tool from your application, either using system() with an appropriately constructed command string (which has the disadvantage of opening a console window), ShellExecute() or any .NET-style equivalent, which probably exists, I just don't know it.

    But especially because of the fact that this program uses the console to only output error messages, it shoulcn't be too difficult to port it into a C++ function (or method) that encapsulates all that crypto stuff.
    Last edited by Eri523; December 22nd, 2010 at 09:42 AM.
    I was thrown out of college for cheating on the metaphysics exam; I looked into the soul of the boy sitting next to me.

    This is a snakeskin jacket! And for me it's a symbol of my individuality, and my belief... in personal freedom.

  6. #21
    Join Date
    Apr 2008
    Posts
    118

    Re: how can i encrypt a file?

    I will not begin my monologue about how the kids are taught to code at school these days starting at the level of a GUI instead of a command line. This is not the time or place Thanks for correcting my mistakes regarding the renaming of "command" to "cmd". I haven't been forced to use Windows since the days of WinXP so I'm a bit out of touch.

    I forgot to ask; Katy, is this an exercise for educational purposes, or do you need to actually make something to use? If you actually need to make something work, can you not just zip the file up using a password? That would solve all your problems in an effective, free and portable way.

  7. #22
    Join Date
    Nov 2010
    Posts
    139

    Re: how can i encrypt a file?

    Quote Originally Posted by Moschops View Post
    You are using the program incorrectly.

    So now, your encryption code reads something like this:

    Get name of file from user.
    Open file, read in a character.
    If character is " ", change to "&#172;"
    Write out character to new file.
    When read all characters, close files.

    Your decryption code is something like this:

    Get name of file from user.
    Ask user for password.
    If password is not correct, end here.
    Open file, read in a character.
    If character is "&#172;", change to " "
    Write out character to new file.
    When read all characters, close files.
    Open new file and display text to user.
    this is too simple. i would like to use the code i posted in post #13 . i just wanted help incorporating the decryption part in my program as it uses command too. i am not going to bother ask a user for a file, i am going to use a default filename of my choice that i specify in my program to decrypt. (this file will already need to be encrypted), which i would have done in a seperate program. the username and password that the user enrolled with will be the key to open and view the file content (providing they enter the name and password they enrolled with. i am running out of time i cant now fit in users choosing their own file name they wish to encrypt (however this would be done during enrollement) and then login would be to dercypt (the key would be their username and password). this would be ideal so each user would have their own files they want to encrypt and decrypt to view them. if any off you have any suggestions on how i can do this quickly please say. bearing in mind i am still new to programming and may need some examples preferably ones that i can integrate in my program. thanks


    if i was to use the file name the user enters during enrollment how would the file remain encrypted if the user edits it? in essence what i want to do during the enrollment stage is this:
    Open the file to be masked as input.
    Open an output file.
    Loop reading the input file a character at a time.
    Mask each character read and write it to the output file.
    When EOF is reached on input:
    Close both files.
    Delete the original file.
    Rename the output file as the original.

    all this using the program posted in post 13.

    i dont know what to do for decryption - login stage
    Last edited by katy_price; December 22nd, 2010 at 11:17 AM.

  8. #23
    Join Date
    Jun 2010
    Location
    Germany
    Posts
    2,675

    Re: how can i encrypt a file?

    Quote Originally Posted by Moschops View Post
    I haven't been forced to use Windows since the days of WinXP so I'm a bit out of touch.
    I'm actually using XP (Pro SP3) myself here right now, and the transition from command to cmd has already been done there.

    Although the zip encryption isn't really secure either, using it looks like a really elegant idea to me here. I, myself, don't know how to zip and unzip files programmatically without using 3rd-party tools, however.

    Katy, if the encryption itself is not part of the assignment (please be honest... ) and you're really short of time, I'm willing to do the port of the sample program into a C++ function for you. You will then see how similar the two actually are. (Actually, the laziest way to port it would be to simply rename the main() function and remove/comment the console output statements, but then it would have an interface that wouldn't be really appropriate for an easy-to-handle C++ function.)

    I'm not willing to promise anything more for now, though.
    I was thrown out of college for cheating on the metaphysics exam; I looked into the soul of the boy sitting next to me.

    This is a snakeskin jacket! And for me it's a symbol of my individuality, and my belief... in personal freedom.

  9. #24
    Join Date
    Apr 2008
    Posts
    118

    Re: how can i encrypt a file?

    Quote Originally Posted by Eri523 View Post

    Although the zip encryption isn't really secure either, using it looks like a really elegant idea to me here.
    The latest version has some pretty serious AES options and is now approved for use by various quite serious chaps. It does still have the less secure options too, though.

  10. #25
    Join Date
    Nov 2010
    Posts
    139

    Re: how can i encrypt a file?

    [QUOTE=Eri523;1987893]
    Katy, if the encryption itself is not part of the assignment (please be honest... ) QUOTE]

    it is a part of the assignment, how i do it is another matter. like i said it would make sense to have each user enter their own file they wish to encrypt during the enrollment process. somehow i will need to link the username and password the user enters to the file they wish to encrypt. so when they log in with that user name the file they entered during enrollment will be opened in a decrypt mode so they can view and edit its contents.....all this instead of having a default file name which i put in my program and open in decrypted mode. doing it this way would mean i would have to have two prgrams one to encrypt and my login program to decrypt, this file would then be availble to all users who enrolled and login. has i would only have one file (specified in the program itself).
    Last edited by katy_price; December 22nd, 2010 at 11:59 AM.

  11. #26
    Join Date
    Jun 2010
    Location
    Germany
    Posts
    2,675

    Re: how can i encrypt a file?

    Quote Originally Posted by Moschops View Post
    The latest version has some pretty serious AES options and is now approved for use by various quite serious chaps. It does still have the less secure options too, though.
    Thanks for the update.

    Quote Originally Posted by katy_price View Post
    it is a part of the assignment, how i do it is another matter.
    So, do you want a port of the sample program? If using it would be considered cheating be aware though that many teachers are prepared to find out if students copied something from the net.

    like i said it would make sense to have each user enter their own file they wish to encrypt during the enrollment process. somehow i will need to link the username and password the user enters to the file they wish to encrypt.
    Why not simply make the file name part of the user record in your database?

    all this instead of having a default file name which i put in my program and open in decrypted mode. doing it this way would mean i would have to have two prgrams one to encrypt and my login program to decrypt, this file would then be availble to all users who enrolled and login. has i would only have one file (specified in the program itself).
    If having a single file shared by all users wouldn't be a problem (I don't know what it is to be used for at all), then why not? Note that this would prevent you from generating the encryption key from the user's passowrd. You either would need to hard-code the key (not really recommended in real life, as stated above) or store it in some other central place.

    Would using separate programs for encryption and decryption be a problem? If not, they could share common encryption/decryption code by simple copy and paste or they could share a common compilation unit containing the code, but that may require some advanced project settings.
    I was thrown out of college for cheating on the metaphysics exam; I looked into the soul of the boy sitting next to me.

    This is a snakeskin jacket! And for me it's a symbol of my individuality, and my belief... in personal freedom.

  12. #27
    Join Date
    Nov 2010
    Posts
    139

    Re: how can i encrypt a file?

    Quote Originally Posted by Eri523 View Post
    So, do you want a port of the sample program?
    yes please, i don't know whats best...or safer. have one default file and all users can open and decrypt it when they log in (each having their own username and password) or have each user have their own specified files. which idea so you think is better in terms of design?

    Why not simply make the file name part of the user record in your database?
    oh yea, lol. and then have them enter it again during login? i think this way will require alot of coding. with error handling etc. i think i will just have a default file name and every user can have access to it.

    You either would need to hard-code the key (not really recommended in real life, as stated above) or store it in some other central place
    .
    which one is the easiest to do lol? and what do you mean by central place a database?

    If not, they could share common encryption/decryption code by simple copy and paste or they could share a common compilation unit containing the code.
    sorry but i dont know what you mean by this? any how, i've decided to have two programs one to encrypt and then my login program will open and decrypt the file when a user logs in. il need to specify the file path in my program. i just need some help with how to code the two processes (encryption/decryption). however i do think the simple encryption/decryption code i posted in post 13 is the best, i kinda understand what its doing, i just need to know how to integrate it into my program can you help in that way?
    Last edited by katy_price; December 22nd, 2010 at 05:18 PM.

  13. #28
    Join Date
    Jun 2010
    Location
    Germany
    Posts
    2,675

    Re: how can i encrypt a file?

    Quote Originally Posted by katy_price View Post
    yes please [...]
    Ok, here it goes:

    Code:
    // CryptEx2.cpp: Hauptprojektdatei.
    // Cryptography example, encapsulating the crypto functionality in a single function
    
    #include "stdafx.h"
    
    using namespace System;
    using namespace System::IO;
    using namespace System::Security::Cryptography;
    
    /* The crypto function
    
       The argument bMode determines whether to encrypt (true) or decrypt.
    
       The return value indicates success (true) or failure. Of course this is the absolute
       minimum of status information possible (except no status information at all).
    */
    
    bool Crypt(String ^strInputFileName, String ^strOutputFileName, String ^strPassword, bool bMode)
    {
      // Create key from password:
    
      // Salt array simply copied from
      // http://msdn.microsoft.com/en-us/library/system.security.cryptography.rfc2898derivebytes.aspx:
      array<Byte>^ abSalt = gcnew array<Byte>{0x00,0x01,0x02,0x03,0x04,0x05,0x06,0xF1,0xF0,0xEE,0x21,0x22,0x45};
      Rfc2898DeriveBytes ^keygen = gcnew Rfc2898DeriveBytes(strPassword, abSalt);
      array<unsigned char> ^achKey = keygen->GetBytes(32);  // Key length: 32 bytes
    
      // Create crypto algorithm object, set the key and create crypto transformer:
    
      AesManaged ^cryptalg = gcnew AesManaged();
      array<unsigned char> ^achIV = gcnew array<unsigned char>(16);
      Array::Clear(achIV, 0, achIV->Length);  // Set up all-zero initialization vector
      cryptalg->IV = achIV;  // ... not sure why this is required or whether it's really a good idea... :o
      cryptalg->Key = achKey;
      ICryptoTransform ^cryptrans;
      if (bMode)  // Encrypt
        cryptrans = cryptalg->CreateEncryptor();
      else  // Decrypt
        cryptrans = cryptalg->CreateDecryptor();
    
      // Open files:
    
      FileStream ^fInput;
      try {
        fInput = gcnew FileStream(strInputFileName, FileMode::Open, FileAccess::Read);
      }
      catch (...) {
        return false;
      }
      FileStream ^fOutput = gcnew FileStream(strOutputFileName, FileMode::Create, FileAccess::Write);
    
      // Create crypto stream (filter) attached to the input file:
    
      CryptoStream ^cryptstream = gcnew CryptoStream(fInput, cryptrans, CryptoStreamMode::Read);
    
      // Process (i.e. encrypt or decrypt) data while copying from input file to output file:
    
      try {
        cryptstream->CopyTo(fOutput);
      }
      catch (...) {
        return false;
      }
    
      // Close all streams involved:
    
      cryptstream->Close();
      fOutput->Close();
      fInput->Close();
    
      // That's all folks.
    
      return true;
    }
    
    int main(array<System::String ^> ^args)
    {
      // Validate command line arguments:
    
      if (args->Length != 4 || String::Compare(args[0], "encrypt", true) && String::Compare(args[0], "decrypt", true)) {
        Console::WriteLine("Usage: CryptEx2 <encrypt|decrypt> <password> <input file> <output file>");
        return 1;
      }
    
      // Call the do-all crypto function:
    
      bool bCryptMode = !String::Compare(args[0], "encrypt", true);
      if (!Crypt(args[2], args[3], args[1], bCryptMode)) {
        Console::WriteLine("Some sort of error happened during encryption/decryption... :o");
        return 1;
      }
    
      return 0;
    }
    The changes are simple, aren't they?

    At first sight it might look easier to have wrapped the entire body of Crypt() into a single catch-all. I decided against that because that way it's easier to change the function to give more detailed status information. The consequence of this is, however, that not everything is caught, in particular failure to open the output file, the most likely reason of wich IMO are insufficient access permissions. So you should either take care that this doesn't happen in the first place or catch possible exceptions outside of Crypt() to avoid risking your app being terminated due to an uncaught exception.

    i don't know whats best...or safer.
    Of course it's safest to rely on industry standard crypto technology, developed for you by people who know what they're doing. Provided, of course, that you're not required to know in detail what's going on inside the crypto black-box.

    have one default file and all users can open and decrypt it when they log in (each having their own username and password) or have each user have their own specified files. which idea so you think is better in terms of design?
    That's not a matter of design. It's a matter of whether it's appropriate that all users share the same data.

    Why not simply make the file name part of the user record in your database?
    oh yea, lol. and then have them enter it again during login?
    Not necessairily. You could have them pick the file during enrollment and leave its name unchanged later. Of course I don't know whether that's appropriate in your scenario. If you actually want them to be able to change the chosen file, that doesn't necessairily need to be done during login. If it's rarely needed you can bury it deeply within some menu hierachy or the like...

    i think i will just have a default file name and every user can have access to it.
    Again, that depends on whether it's appropriate to have them share a single common file.

    You either would need to hard-code the key (not really recommended in real life, as stated above) or store it in some other central place.
    which one is the easiest to do lol?
    Of course hard-coding the key is the simplest solution, and if security isn't really a concern you may decide to do that.

    and what do you mean by central place a database?
    Especially I don't mean the user database if they all share a common file and hence need a common key. Of course, the most central place of all would be hard-coding the key in your app, and whether this really is an option depends on your security needs. Another possible option would be to store it in an application-specific configuration file, but that may open up a whole new can of worms... (You probably already have seen that I'm involved in an extensive thread about this around here... )

    If not, they could share common encryption/decryption code by simple copy and paste or they could share a common compilation unit containing the code.
    sorry but i dont know what you mean by this?
    If you don't understand this, probably the best option is copy-paste. But then you need to take care that the two programs that are used always use the same crypto code and, in case it is hard-coded inside the programs, the same key.

    however i do think the simple encryption/decryption code i posted in post 13 is the best, i kinda understand what its doing, i just need to know how to integrate it into my program can you help in that way?
    As what you're writing apparently is no real-life app you have the choice between all the crypto approaches discussed around here. I think I can recall at least four off the top of my head. Essentially, it seems to be mainly a matter of personal taste...
    I was thrown out of college for cheating on the metaphysics exam; I looked into the soul of the boy sitting next to me.

    This is a snakeskin jacket! And for me it's a symbol of my individuality, and my belief... in personal freedom.

  14. #29
    Join Date
    Jun 2010
    Location
    Germany
    Posts
    2,675

    Re: how can i encrypt a file?

    Quote Originally Posted by katy_price View Post
    hi, i have tried to run your code on its own in vs 2010 and the command window comes up and disappears right away. what is it supposed to do?
    I'm really out of ideas how I might explain how to use this simple command line app.

    i still dont get how i can put this in my winforms app thats my issue. i jus wanted a encrypt function in a program that encypts the content of a file and then a function in my program that decrypts the content of the same file when a user logs in.
    Maybe you should simply extract the Crypt() function from the second sample program, use it the way its interface suggests to use it and see what happens?

    i wanted you to help me convert the simple code in post #13 so that i can achieve this.
    So I'd suggest that you first make an attempt of your own to port the crypt algorithm from post #13 into your program. If you can't even do this I don't know what to do anymore either.

    I have offered you a black-box crypto solution (except the fact that you can look into the box and have the opportunity to understand what it does) and all you have to do is use it.

    the code you have seems a bit complicated and involves the command window. i mean like when in your code does the file name go? i dont get how this will work in my program at all.
    The Crypt() function has no relation to the command line whatsoever. It takes two file names (input and output file) and I have tried to pick the parameter names so that their usage is obvious, at least after reading the comment that precedes the function definition.

    I'm really starting to run out of ideas how to explain all this any further...
    I was thrown out of college for cheating on the metaphysics exam; I looked into the soul of the boy sitting next to me.

    This is a snakeskin jacket! And for me it's a symbol of my individuality, and my belief... in personal freedom.

  15. #30
    Join Date
    Nov 2010
    Posts
    139

    Re: how can i encrypt a file?

    Quote Originally Posted by Eri523 View Post
    It takes two file names (input and output file) and I have tried to pick the parameter names so that their usage is obvious
    ok sorry think i'm a bit slow lol. do you mean i have to put my filenames in here

    Code:
     // Open files:
    
      FileStream ^fInput;
      try {
        fInput = gcnew FileStream("john.txt", FileMode::Open, FileAccess::Read);
      }
      catch (...) {
        return false;
      }
      FileStream ^fOutput = gcnew FileStream("can.txt", FileMode::Create, FileAccess::Write);
    like i've put john.txt, am i required to have the full path? anyway this is still weird for me how do i serparate the dercyption code from the encryption as they are supposed to be in separate programs. also if it doesnt involve the console why does it say console::writeline?
    Last edited by katy_price; December 22nd, 2010 at 10:15 PM.

Page 2 of 5 FirstFirst 12345 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured