>(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] 
> <javascript:>.
> 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] <javascript:>.
> 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.

Reply via email to