I actually made it worked on Xcode.
1. I created new Xcode project with the above demo file as main.cpp
2. Copy Paste "Only" the cpp and header files from cryptopp master
branch.
3. Removed datatest.cpp, bench1.cpp, bench2.cpp, test.cpp, validat1.cpp,
validat2.cpp and validat3.cpp from target.
4. Then Ran.
On Saturday, August 20, 2016 at 11:49:05 PM UTC+5:30, Prakhar Jain wrote:
>
> >(and try single step debugging on your programs to see where the code
> jumps).
> Can you tell me which IDE to choose. Unfortunately I don't have Microsoft
> Visual Studio and I am working on Mac OS X.
> I have tried using Xcode. I included the include files and linked the
> library object files. Now, when I use debugger, I go through include files
> but I want to go inside cpp files and check how actually that function or
> code that's being called is working. From a high level, I am getting a
> picture of how objects are working, but to know the working of those
> classes I need to go further inside.
>
> I am also cool with Command Line gdb tool. How can I create demo program
> that runs through all the cpp files while debugging? For this I need to
> compile only "required files" in my separate project. This will be head
> ache since we are not using the compiled library object file
> i.e. libryptopp.a. Do you have any structure for compiling of the files
> required for any demo program. Here's one demo program that I have written:
>
> #include "osrng.h"
> #include <iostream>
> #include <string>
> #include <cstdlib>
> #include "cryptlib.h"
> #include "hex.h"
> #include "filters.h"
> #include "des.h"
> #include "modes.h"
>
> using namespace CryptoPP;
> using namespace std;
>
> int main(int argc, const char * argv[]) {
> AutoSeededRandomPool prng;
>
> byte key[DES::KEYLENGTH];
>
> prng.GenerateBlock(key, sizeof(key));
> string encoded;
>
> StringSource(key, sizeof(key), true, new HexEncoder(new
> StringSink(encoded)));
> cout << "Key:\n" << encoded << endl;
> /* Test Data
> P = 4E6F772069732074 68652074696D6520 666F7220616C6C20
> C = 3FA40E8A984D4815 6A271787AB8883F9 893D51EC4B563B53
> */
> string plaintext, ciphertext, recovered;
> plaintext = "Now is the time for all ";
>
>
> try
> {
> cout << "plain text: " << plaintext << endl;
> encoded.clear();
> StringSource(plaintext, true, new HexEncoder(new
> StringSink(encoded)));
> cout << "plain text:\n" << encoded << endl;
>
> ECB_Mode<DES>::Encryption e;
> e.SetKey(key, sizeof(key));
>
> StringSource(plaintext, true, new StreamTransformationFilter(e,
> new
> StringSink(ciphertext),CryptoPP::BlockPaddingSchemeDef::BlockPaddingScheme::NO_PADDING));
> }
> catch(const CryptoPP::Exception& e)
> {
> cerr << e.what() << endl;
> exit(1);
> }
>
> encoded.clear();
> StringSource(ciphertext, true, new HexEncoder(new
> StringSink(encoded)));
> cout << "ciphertext:\n" << encoded << endl;
>
> try
> {
> ECB_Mode< DES >::Decryption d;
> d.SetKey(key, sizeof(key));
>
> StringSource(ciphertext, true, new StreamTransformationFilter(d,
> new StringSink(recovered),
> CryptoPP::BlockPaddingSchemeDef::BlockPaddingScheme::NO_PADDING));
>
> }
> catch(const CryptoPP::Exception& e)
> {
> cerr << e.what() << endl;
> exit(1);
> }
>
> cout << "recovered text\n" << recovered << endl;
>
> return 0;
> }
>
>
>
>
>
>
> On Sunday, August 7, 2016 at 12:37:09 AM UTC+5:30, jean-pierre.muench
> wrote:
>>
>> I haven't yet heard anything about Crypto++ participating in GSoC 2017.
>>
>> For contributions:
>>
>> 1. Make sure to have at least a rough idea of what is where,
>> preferably play around with all different types of primitives to
>> understand
>> the organization (and try single step debugging on your programs to see
>> where the code jumps).
>> 2. Pick something to implement, either from the Issues page on GitHub
>> or by picking some other cryptographic scheme you want to see in the
>> library.
>> 3. Fork the library (create a new branch in your repo?) on GitHub and
>> do your modifications.
>> 4. If there are things that are beyond your skills (like "where is
>> XYZ?" or "how should I do ABC?", "how should I design DEF?"), ask here
>> again.
>> 5. Don't forget to implement the test cases. Bonus points if you also
>> try multiple compilers.
>> 6. Make a pull request (PR) over on GitHub and maybe a post here
>> again.
>> 7. If everything looks good and all tests pass and look
>> well-implemented, Jeff will probably merge the PR.
>>
>> For selecting topics: If you haven't done anything related to crypto
>> before, I strongly recommend against implementing low-level primitives
>> (e.g. ciphers and hashes) and rather suggest trying your luck on something
>> more high level, where you'd basically just orchestrate library calls.
>>
>> If you have made good advancements and you're doing something low-level,
>> also consider contacting Jeff off-list so he can quickly advise you where
>> and how to test your new code on Big Endian machines.
>>
>> That should be about it.
>>
>> BR
>>
>> JPM
>>
>> Am 04.08.2016 um 11:18 schrieb Prakhar Jain:
>>
>> Will crypto++ be a part of GSoC 2017?
>> also, I would like to contribute to crypto++. any idea on how to start?
>> --
>> --
>> You received this message because you are subscribed to the "Crypto++
>> Users" Google Group.
>> To unsubscribe, send an email to [email protected].
>> More information about Crypto++ and this group is available at
>> http://www.cryptopp.com.
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Crypto++ Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>>
--
--
You received this message because you are subscribed to the "Crypto++ Users"
Google Group.
To unsubscribe, send an email to [email protected].
More information about Crypto++ and this group is available at
http://www.cryptopp.com.
---
You received this message because you are subscribed to the Google Groups
"Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.